Exemplo n.º 1
0
 private function getDefinitionFiles()
 {
     $definitions = Autoloader::instance()->getDefinitions();
     $files = [];
     foreach ($definitions as $definition) {
         $files[] = Autoloader::instance()->getFilename($definition);
     }
     return array_unique($files);
 }
Exemplo n.º 2
0
 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, '()')));
 }
Exemplo n.º 3
0
<?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]);
Exemplo n.º 4
0
 /**
  * Get the configured autoloader instance.
  *
  * @return Autoloader
  */
 private function getAutoLoader()
 {
     if ($this->autoLoader === null) {
         return Autoloader::instance();
     }
     return $this->autoLoader;
 }
Exemplo n.º 5
0
 public function donttest_entire_codebase()
 {
     $loader = new Autoloader(\Sledgehammer\PATH);
     $loader->importFolder(\Sledgehammer\PATH, array('matching_filename' => false, 'mandatory_definition' => false, 'mandatory_superclass' => false, 'one_definition_per_file' => false, 'detect_accidental_output' => false));
     // Import all
     //
     $analyzer = new PhpAnalyzer();
     $this->analyzeDirectory($analyzer, \Sledgehammer\PATH);
     // Check all used definitions
     $failed = false;
     foreach (array_keys($analyzer->usedDefinitions) as $definition) {
         if ($this->tryGetInfo($analyzer, $definition) == false) {
             $failed = true;
         }
     }
     if ($failed == false) {
         $this->assertTrue(true, 'All ' . count($analyzer->usedDefinitions) . ' definitions are found');
     }
 }