Esempio n. 1
0
 /**
  * Fires the script in module/$module/package/$script.php and its events.
  *
  * @param  string $bundle
  * @param  string $script
  *
  * @throws BundleNotFoundException
  * @return bool
  */
 protected function firePackageManager($bundleName, $script)
 {
     $bundle = $this->jarves->getBundle($bundleName);
     if ($bundle) {
         $namespace = $bundle->getNamespace();
     } else {
         if (class_exists($bundleName)) {
             $reflection = new \ReflectionClass($bundleName);
             $namespace = $reflection->getNamespaceName();
         } else {
             throw new BundleNotFoundException(sprintf('Bundle `%s` not found.', $bundleName));
         }
     }
     $packageManagerClass = $namespace . '\\PackageManger';
     if (class_exists($packageManagerClass)) {
         $packageManager = new $packageManagerClass($this->jarves);
         if ($packageManager instanceof ContainerAwareInterface) {
             $packageManager->setContainer($this->jarves->getContainer());
         }
         if (method_exists($packageManager, $script)) {
             $packageManager->{$script}();
         } else {
             $this->jarves->getLogger()->debug(sprintf('PackageManager of Bundle `%s` does not have the method `%s`', $bundle, $script));
         }
     } else {
         $this->jarves->getLogger()->debug(sprintf('PackageManager class `%s` of Bundle `%s` does not exist', $packageManagerClass, $bundleName));
     }
     return true;
 }