init
This commit is contained in:
20
vendor/phar-io/manifest/src/values/Application.php
vendored
Normal file
20
vendor/phar-io/manifest/src/values/Application.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class Application extends Type {
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isApplication() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
65
vendor/phar-io/manifest/src/values/ApplicationName.php
vendored
Normal file
65
vendor/phar-io/manifest/src/values/ApplicationName.php
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class ApplicationName {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* ApplicationName constructor.
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @throws InvalidApplicationNameException
|
||||
*/
|
||||
public function __construct($name) {
|
||||
$this->ensureIsString($name);
|
||||
$this->ensureValidFormat($name);
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function isEqual(ApplicationName $name) {
|
||||
return $this->name === $name->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @throws InvalidApplicationNameException
|
||||
*/
|
||||
private function ensureValidFormat($name) {
|
||||
if (!preg_match('#\w/\w#', $name)) {
|
||||
throw new InvalidApplicationNameException(
|
||||
sprintf('Format of name "%s" is not valid - expected: vendor/packagename', $name),
|
||||
InvalidApplicationNameException::InvalidFormat
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private function ensureIsString($name) {
|
||||
if (!is_string($name)) {
|
||||
throw new InvalidApplicationNameException(
|
||||
'Name must be a string',
|
||||
InvalidApplicationNameException::NotAString
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
57
vendor/phar-io/manifest/src/values/Author.php
vendored
Normal file
57
vendor/phar-io/manifest/src/values/Author.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class Author {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @var Email
|
||||
*/
|
||||
private $email;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param Email $email
|
||||
*/
|
||||
public function __construct($name, Email $email) {
|
||||
$this->name = $name;
|
||||
$this->email = $email;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Email
|
||||
*/
|
||||
public function getEmail() {
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return sprintf(
|
||||
'%s <%s>',
|
||||
$this->name,
|
||||
$this->email
|
||||
);
|
||||
}
|
||||
}
|
||||
43
vendor/phar-io/manifest/src/values/AuthorCollection.php
vendored
Normal file
43
vendor/phar-io/manifest/src/values/AuthorCollection.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class AuthorCollection implements \Countable, \IteratorAggregate {
|
||||
/**
|
||||
* @var Author[]
|
||||
*/
|
||||
private $authors = [];
|
||||
|
||||
public function add(Author $author) {
|
||||
$this->authors[] = $author;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Author[]
|
||||
*/
|
||||
public function getAuthors() {
|
||||
return $this->authors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function count() {
|
||||
return count($this->authors);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return AuthorCollectionIterator
|
||||
*/
|
||||
public function getIterator() {
|
||||
return new AuthorCollectionIterator($this);
|
||||
}
|
||||
}
|
||||
56
vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php
vendored
Normal file
56
vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class AuthorCollectionIterator implements \Iterator {
|
||||
/**
|
||||
* @var Author[]
|
||||
*/
|
||||
private $authors = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $position;
|
||||
|
||||
public function __construct(AuthorCollection $authors) {
|
||||
$this->authors = $authors->getAuthors();
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
$this->position = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function valid() {
|
||||
return $this->position < count($this->authors);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function key() {
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Author
|
||||
*/
|
||||
public function current() {
|
||||
return $this->authors[$this->position];
|
||||
}
|
||||
|
||||
public function next() {
|
||||
$this->position++;
|
||||
}
|
||||
}
|
||||
48
vendor/phar-io/manifest/src/values/BundledComponent.php
vendored
Normal file
48
vendor/phar-io/manifest/src/values/BundledComponent.php
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
use PharIo\Version\Version;
|
||||
|
||||
class BundledComponent {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @var Version
|
||||
*/
|
||||
private $version;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param Version $version
|
||||
*/
|
||||
public function __construct($name, Version $version) {
|
||||
$this->name = $name;
|
||||
$this->version = $version;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Version
|
||||
*/
|
||||
public function getVersion() {
|
||||
return $this->version;
|
||||
}
|
||||
}
|
||||
43
vendor/phar-io/manifest/src/values/BundledComponentCollection.php
vendored
Normal file
43
vendor/phar-io/manifest/src/values/BundledComponentCollection.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class BundledComponentCollection implements \Countable, \IteratorAggregate {
|
||||
/**
|
||||
* @var BundledComponent[]
|
||||
*/
|
||||
private $bundledComponents = [];
|
||||
|
||||
public function add(BundledComponent $bundledComponent) {
|
||||
$this->bundledComponents[] = $bundledComponent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BundledComponent[]
|
||||
*/
|
||||
public function getBundledComponents() {
|
||||
return $this->bundledComponents;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function count() {
|
||||
return count($this->bundledComponents);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BundledComponentCollectionIterator
|
||||
*/
|
||||
public function getIterator() {
|
||||
return new BundledComponentCollectionIterator($this);
|
||||
}
|
||||
}
|
||||
56
vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php
vendored
Normal file
56
vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class BundledComponentCollectionIterator implements \Iterator {
|
||||
/**
|
||||
* @var BundledComponent[]
|
||||
*/
|
||||
private $bundledComponents = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $position;
|
||||
|
||||
public function __construct(BundledComponentCollection $bundledComponents) {
|
||||
$this->bundledComponents = $bundledComponents->getBundledComponents();
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
$this->position = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function valid() {
|
||||
return $this->position < count($this->bundledComponents);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function key() {
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BundledComponent
|
||||
*/
|
||||
public function current() {
|
||||
return $this->bundledComponents[$this->position];
|
||||
}
|
||||
|
||||
public function next() {
|
||||
$this->position++;
|
||||
}
|
||||
}
|
||||
42
vendor/phar-io/manifest/src/values/CopyrightInformation.php
vendored
Normal file
42
vendor/phar-io/manifest/src/values/CopyrightInformation.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class CopyrightInformation {
|
||||
/**
|
||||
* @var AuthorCollection
|
||||
*/
|
||||
private $authors;
|
||||
|
||||
/**
|
||||
* @var License
|
||||
*/
|
||||
private $license;
|
||||
|
||||
public function __construct(AuthorCollection $authors, License $license) {
|
||||
$this->authors = $authors;
|
||||
$this->license = $license;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return AuthorCollection
|
||||
*/
|
||||
public function getAuthors() {
|
||||
return $this->authors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return License
|
||||
*/
|
||||
public function getLicense() {
|
||||
return $this->license;
|
||||
}
|
||||
}
|
||||
47
vendor/phar-io/manifest/src/values/Email.php
vendored
Normal file
47
vendor/phar-io/manifest/src/values/Email.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class Email {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $email;
|
||||
|
||||
/**
|
||||
* @param string $email
|
||||
*
|
||||
* @throws InvalidEmailException
|
||||
*/
|
||||
public function __construct($email) {
|
||||
$this->ensureEmailIsValid($email);
|
||||
|
||||
$this->email = $email;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->email;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
*
|
||||
* @throws InvalidEmailException
|
||||
*/
|
||||
private function ensureEmailIsValid($url) {
|
||||
if (filter_var($url, \FILTER_VALIDATE_EMAIL) === false) {
|
||||
throw new InvalidEmailException;
|
||||
}
|
||||
}
|
||||
}
|
||||
75
vendor/phar-io/manifest/src/values/Extension.php
vendored
Normal file
75
vendor/phar-io/manifest/src/values/Extension.php
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
use PharIo\Version\Version;
|
||||
use PharIo\Version\VersionConstraint;
|
||||
|
||||
class Extension extends Type {
|
||||
/**
|
||||
* @var ApplicationName
|
||||
*/
|
||||
private $application;
|
||||
|
||||
/**
|
||||
* @var VersionConstraint
|
||||
*/
|
||||
private $versionConstraint;
|
||||
|
||||
/**
|
||||
* @param ApplicationName $application
|
||||
* @param VersionConstraint $versionConstraint
|
||||
*/
|
||||
public function __construct(ApplicationName $application, VersionConstraint $versionConstraint) {
|
||||
$this->application = $application;
|
||||
$this->versionConstraint = $versionConstraint;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ApplicationName
|
||||
*/
|
||||
public function getApplicationName() {
|
||||
return $this->application;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return VersionConstraint
|
||||
*/
|
||||
public function getVersionConstraint() {
|
||||
return $this->versionConstraint;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isExtension() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ApplicationName $name
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isExtensionFor(ApplicationName $name) {
|
||||
return $this->application->isEqual($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ApplicationName $name
|
||||
* @param Version $version
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isCompatibleWith(ApplicationName $name, Version $version) {
|
||||
return $this->isExtensionFor($name) && $this->versionConstraint->complies($version);
|
||||
}
|
||||
}
|
||||
20
vendor/phar-io/manifest/src/values/Library.php
vendored
Normal file
20
vendor/phar-io/manifest/src/values/Library.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class Library extends Type {
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isLibrary() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
42
vendor/phar-io/manifest/src/values/License.php
vendored
Normal file
42
vendor/phar-io/manifest/src/values/License.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class License {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @var Url
|
||||
*/
|
||||
private $url;
|
||||
|
||||
public function __construct($name, Url $url) {
|
||||
$this->name = $name;
|
||||
$this->url = $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Url
|
||||
*/
|
||||
public function getUrl() {
|
||||
return $this->url;
|
||||
}
|
||||
}
|
||||
138
vendor/phar-io/manifest/src/values/Manifest.php
vendored
Normal file
138
vendor/phar-io/manifest/src/values/Manifest.php
vendored
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
use PharIo\Version\Version;
|
||||
|
||||
class Manifest {
|
||||
/**
|
||||
* @var ApplicationName
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @var Version
|
||||
*/
|
||||
private $version;
|
||||
|
||||
/**
|
||||
* @var Type
|
||||
*/
|
||||
private $type;
|
||||
|
||||
/**
|
||||
* @var CopyrightInformation
|
||||
*/
|
||||
private $copyrightInformation;
|
||||
|
||||
/**
|
||||
* @var RequirementCollection
|
||||
*/
|
||||
private $requirements;
|
||||
|
||||
/**
|
||||
* @var BundledComponentCollection
|
||||
*/
|
||||
private $bundledComponents;
|
||||
|
||||
public function __construct(ApplicationName $name, Version $version, Type $type, CopyrightInformation $copyrightInformation, RequirementCollection $requirements, BundledComponentCollection $bundledComponents) {
|
||||
$this->name = $name;
|
||||
$this->version = $version;
|
||||
$this->type = $type;
|
||||
$this->copyrightInformation = $copyrightInformation;
|
||||
$this->requirements = $requirements;
|
||||
$this->bundledComponents = $bundledComponents;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ApplicationName
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Version
|
||||
*/
|
||||
public function getVersion() {
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Type
|
||||
*/
|
||||
public function getType() {
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return CopyrightInformation
|
||||
*/
|
||||
public function getCopyrightInformation() {
|
||||
return $this->copyrightInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return RequirementCollection
|
||||
*/
|
||||
public function getRequirements() {
|
||||
return $this->requirements;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BundledComponentCollection
|
||||
*/
|
||||
public function getBundledComponents() {
|
||||
return $this->bundledComponents;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isApplication() {
|
||||
return $this->type->isApplication();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isLibrary() {
|
||||
return $this->type->isLibrary();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isExtension() {
|
||||
return $this->type->isExtension();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ApplicationName $application
|
||||
* @param Version|null $version
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isExtensionFor(ApplicationName $application, Version $version = null) {
|
||||
if (!$this->isExtension()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @var Extension $type */
|
||||
$type = $this->type;
|
||||
|
||||
if ($version !== null) {
|
||||
return $type->isCompatibleWith($application, $version);
|
||||
}
|
||||
|
||||
return $type->isExtensionFor($application);
|
||||
}
|
||||
}
|
||||
32
vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php
vendored
Normal file
32
vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class PhpExtensionRequirement implements Requirement {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $extension;
|
||||
|
||||
/**
|
||||
* @param string $extension
|
||||
*/
|
||||
public function __construct($extension) {
|
||||
$this->extension = $extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->extension;
|
||||
}
|
||||
}
|
||||
31
vendor/phar-io/manifest/src/values/PhpVersionRequirement.php
vendored
Normal file
31
vendor/phar-io/manifest/src/values/PhpVersionRequirement.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
use PharIo\Version\VersionConstraint;
|
||||
|
||||
class PhpVersionRequirement implements Requirement {
|
||||
/**
|
||||
* @var VersionConstraint
|
||||
*/
|
||||
private $versionConstraint;
|
||||
|
||||
public function __construct(VersionConstraint $versionConstraint) {
|
||||
$this->versionConstraint = $versionConstraint;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return VersionConstraint
|
||||
*/
|
||||
public function getVersionConstraint() {
|
||||
return $this->versionConstraint;
|
||||
}
|
||||
}
|
||||
14
vendor/phar-io/manifest/src/values/Requirement.php
vendored
Normal file
14
vendor/phar-io/manifest/src/values/Requirement.php
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
interface Requirement {
|
||||
}
|
||||
43
vendor/phar-io/manifest/src/values/RequirementCollection.php
vendored
Normal file
43
vendor/phar-io/manifest/src/values/RequirementCollection.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class RequirementCollection implements \Countable, \IteratorAggregate {
|
||||
/**
|
||||
* @var Requirement[]
|
||||
*/
|
||||
private $requirements = [];
|
||||
|
||||
public function add(Requirement $requirement) {
|
||||
$this->requirements[] = $requirement;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Requirement[]
|
||||
*/
|
||||
public function getRequirements() {
|
||||
return $this->requirements;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function count() {
|
||||
return count($this->requirements);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return RequirementCollectionIterator
|
||||
*/
|
||||
public function getIterator() {
|
||||
return new RequirementCollectionIterator($this);
|
||||
}
|
||||
}
|
||||
56
vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php
vendored
Normal file
56
vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class RequirementCollectionIterator implements \Iterator {
|
||||
/**
|
||||
* @var Requirement[]
|
||||
*/
|
||||
private $requirements = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $position;
|
||||
|
||||
public function __construct(RequirementCollection $requirements) {
|
||||
$this->requirements = $requirements->getRequirements();
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
$this->position = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function valid() {
|
||||
return $this->position < count($this->requirements);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function key() {
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Requirement
|
||||
*/
|
||||
public function current() {
|
||||
return $this->requirements[$this->position];
|
||||
}
|
||||
|
||||
public function next() {
|
||||
$this->position++;
|
||||
}
|
||||
}
|
||||
60
vendor/phar-io/manifest/src/values/Type.php
vendored
Normal file
60
vendor/phar-io/manifest/src/values/Type.php
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
use PharIo\Version\VersionConstraint;
|
||||
|
||||
abstract class Type {
|
||||
/**
|
||||
* @return Application
|
||||
*/
|
||||
public static function application() {
|
||||
return new Application;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Library
|
||||
*/
|
||||
public static function library() {
|
||||
return new Library;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ApplicationName $application
|
||||
* @param VersionConstraint $versionConstraint
|
||||
*
|
||||
* @return Extension
|
||||
*/
|
||||
public static function extension(ApplicationName $application, VersionConstraint $versionConstraint) {
|
||||
return new Extension($application, $versionConstraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isApplication() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isLibrary() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isExtension() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
47
vendor/phar-io/manifest/src/values/Url.php
vendored
Normal file
47
vendor/phar-io/manifest/src/values/Url.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PharIo\Manifest.
|
||||
*
|
||||
* (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PharIo\Manifest;
|
||||
|
||||
class Url {
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $url;
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
*
|
||||
* @throws InvalidUrlException
|
||||
*/
|
||||
public function __construct($url) {
|
||||
$this->ensureUrlIsValid($url);
|
||||
|
||||
$this->url = $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->url;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
*
|
||||
* @throws InvalidUrlException
|
||||
*/
|
||||
private function ensureUrlIsValid($url) {
|
||||
if (filter_var($url, \FILTER_VALIDATE_URL) === false) {
|
||||
throw new InvalidUrlException;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user