Mercurial > hg > isophonics-drupal-site
view vendor/phar-io/manifest/src/values/ApplicationName.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
<?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 ); } } }