Exemple #1
0
 /**
  * @param string $name
  * @return Package
  */
 public function get($name)
 {
     if (!isset($this->cached[$name])) {
         $builder = new PackageBuilder();
         $package = new Package($name);
         $object = $this->getObject();
         $funcName = $this->getFunctionName($name);
         if (!method_exists($object, $funcName)) {
             throw new \Exception("Package '{$name}' is not defined");
         }
         $builder->setup($package);
         call_user_func([$object, $funcName], $builder);
         $this->cached[$name] = $package;
     }
     return $this->cached[$name];
 }
 /**
  * @param string $name
  * @return Package
  */
 public function get($name)
 {
     if (!isset($this->cached[$name])) {
         $path = Utils::getClassPath($name);
         $fullClassName = Utils::getFullClassName($name);
         $package = new Package($name);
         $builder = new PackageBuilder();
         $this->cached[$name] = $package;
         $builder->setup($package);
         if (!is_file($path) || !is_readable($path)) {
             throw new \Exception("Can't load file '{$path}'");
         }
         /** @noinspection PhpIncludeInspection */
         require_once $path;
         /** @noinspection PhpUndefinedMethodInspection */
         $fullClassName::get($builder);
     }
     return $this->cached[$name];
 }
 public function test_sanity()
 {
     $p = new Package('a');
     $b = new PackageBuilder();
     $b->setup($p);
     $b->package('n');
     $b->style('s');
     $b->script('b');
     $b->inscribe('1');
     $this->assertEquals(['n'], $p->Requires->get());
     $this->assertEquals(['s'], $p->Styles->get());
     $this->assertEquals(['b'], $p->Scripts->get());
     $this->assertEquals(['1'], $p->Inscribed->get());
 }
 public function setUp()
 {
     PackageBuilder::setTestMode(true);
 }
 public function setUp()
 {
     $this->clean();
     PackageBuilder::setTestMode(false);
     Config::instance()->logConfig()->setLogStream(new VoidStream());
 }