private function getDefinitionFiles() { $definitions = Autoloader::instance()->getDefinitions(); $files = []; foreach ($definitions as $definition) { $files[] = Autoloader::instance()->getFilename($definition); } return array_unique($files); }
public function test_tokenizer() { Autoloader::instance()->exposePrivates('Sledgehammer\\Core\\PropertyPath', 'Sledgehammer\\Core\\PropertyPath_Tester'); $string = PropertyPath::T_STRING; $dot = PropertyPath::T_DOT; $arrow = PropertyPath::T_ARROW; $bracketOpen = PropertyPath::T_BRACKET_OPEN; $bracketClose = PropertyPath::T_BRACKET_CLOSE; $parentheses = PropertyPath::T_PARENTHESES; $optional = PropertyPath::T_OPTIONAL; $this->assertSame(PropertyPath_Tester::tokenize('any'), array(array($string, 'any'))); $this->assertSame(PropertyPath_Tester::tokenize('any?'), array(array($string, 'any'), array($optional, '?'))); $this->assertSame(PropertyPath_Tester::tokenize('any1.any2'), array(array($string, 'any1'), array($dot, '.'), array($string, 'any2'))); $this->assertSame(PropertyPath_Tester::tokenize('any->property[element]->method()'), array(array($string, 'any'), array($arrow, '->'), array($string, 'property'), array($bracketOpen, '['), array($string, 'element'), array($bracketClose, ']'), array($arrow, '->'), array($string, 'method'), array($parentheses, '()'))); }
<?php /** * Install a PEAR package into the /verdor/pear/ folder. */ namespace Sledgehammer\Core; use Sledgehammer\Core\Debug\Autoloader; use Sledgehammer\Core\Debug\ErrorHandler; require __DIR__ . '/../bootstrap.php'; ErrorHandler::instance()->html = false; ErrorHandler::instance()->cli = true; Autoloader::instance()->importFolder(__DIR__ . '/classes'); if ($argc < 2) { echo ' Usage: php ' . $argv[0] . " [channel] [channel/]package[-version] ...\n "; echo " Examples:\n"; echo ' php ' . $argv[0] . " pear.phpunit.de/PHPUnit\n"; echo ' php ' . $argv[0] . " PhpDocumentor\n"; echo ' php ' . $argv[0] . " pear.doctrine-project.org DoctrineORM CouchDB-alpha DoctrineCommon-2.1.2\n"; echo "\n"; exit(1); } $targets = array('php' => \Sledgehammer\PATH . 'vendor/pear/php', 'data' => \Sledgehammer\PATH . 'vendor/pear/data', 'script' => \Sledgehammer\PATH . 'vendor/pear/script', 'bin' => \Sledgehammer\PATH . 'vendor/pear/bin', 'doc' => \Sledgehammer\PATH . 'vendor/pear/docs', 'www' => APP_DIR . 'vendor/pear/www'); $pear = new PearInstaller($targets); $pear->on('channelAdded', function ($sender, $domain, $channel) { echo 'Channel "' . $domain . '" loaded. (' . count($channel['packages']) . " packages)\n"; }); $pear->on('installed', function ($sender, $package, $version) { echo ' ' . $package . ' [' . $version . "] installed.\n"; }); unset($argv[0]);
/** * Get the configured autoloader instance. * * @return Autoloader */ private function getAutoLoader() { if ($this->autoLoader === null) { return Autoloader::instance(); } return $this->autoLoader; }
/** * Analize all known classes and validate if all classes are available. */ public function test_known_classes() { $definitions = Autoloader::instance()->getDefinitions(); $files = []; foreach ($definitions as $definition) { $files[] = Framework::$autoloader->getFilename($definition); } $analyzer = new PhpAnalyzer(); foreach (array_unique($files) as $filename) { $analyzer->open($filename); } // Check all used definitions (implements, extends, new, catch, etc) $failed = false; foreach (array_keys($analyzer->usedDefinitions) as $definition) { if (in_array($definition, ['Throwable'])) { continue; } if ($this->tryGetInfo($analyzer, $definition) == false) { $failed = true; } } if ($failed == false) { $this->assertTrue(true, 'All ' . count($analyzer->usedDefinitions) . ' definitions are found'); } }