Jarves\Jarves::getBundle PHP Method

getBundle() public method

public getBundle ( string $bundleName ) : Symfony\Component\HttpKernel\Bundle\BundleInterface | null
$bundleName string
return Symfony\Component\HttpKernel\Bundle\BundleInterface | null
    public function getBundle($bundleName)
    {
        if (false !== ($slash = strpos($bundleName, '/'))) {
            $bundleName = substr($bundleName, 0, $slash);
        }
        foreach ($this->getBundles() as $bundle) {
            if (strtolower($bundle->getName()) == strtolower($bundleName) || $this->getShortBundleName($bundle->getName()) == strtolower($bundleName) || get_class($bundle) == $bundleName) {
                return $bundle;
            }
        }
        if (class_exists($bundleName)) {
            $reflection = new \ReflectionClass($bundleName);
            if ($reflection->implementsInterface('Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface')) {
                return $reflection->newInstance();
            }
        }
        return null;
    }

Usage Example

Ejemplo 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;
 }
All Usage Examples Of Jarves\Jarves::getBundle