getBundle() public method

public getBundle ( string $bundleName ) : Symfony\Component\HttpKernel\Bundle\BundleInterface | null
$bundleName string
return Symfony\Component\HttpKernel\Bundle\BundleInterface | null
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;
 }
Ejemplo n.º 2
0
 /**
  * @ApiDoc(
  *  section="Bundle Editor",
  *  description="Creates a new CRUD object window class"
  * )
  *
  * @Rest\RequestParam(name="class", requirements=".*", strict=true, description="The PHP class name")
  * @Rest\RequestParam(name="bundle", requirements=".*", strict=true, description="The bundle name")
  * @Rest\RequestParam(name="force", requirements=".*", default="false", description="Overwrites existing")
  *
  * @Rest\Put("/admin/system/bundle/editor/window")
  *
  * @param ParamFetcher $paramFetcher
  *
  * @return bool
  * @throws FileAlreadyExistException
  */
 public function createWindowAction(ParamFetcher $paramFetcher)
 {
     $class = $paramFetcher->get('class');
     $bundle = $paramFetcher->get('bundle');
     $force = filter_var($paramFetcher->get('force'), FILTER_VALIDATE_BOOLEAN);
     if (substr($class, 0, 1) != '\\') {
         $class = '\\' . $class;
     }
     if (class_exists($class) && !$force) {
         $reflection = new \ReflectionClass($class);
         throw new FileAlreadyExistException(sprintf('Class already exist in %s', $reflection->getFileName()));
     }
     $actualPath = str_replace('\\', '/', substr($class, 1)) . '.php';
     $actualPath = $this->jarves->getBundleDir($bundle) . $actualPath;
     if (file_exists($actualPath) && !$force) {
         throw new FileAlreadyExistException(sprintf('File already exist, %s', $actualPath));
     }
     $sourcecode = "<?php\n\n";
     $bundle = $this->jarves->getBundle($bundle);
     $lSlash = strrpos($class, '\\');
     $class2Name = $lSlash !== -1 ? substr($class, $lSlash + 1) : $class;
     $parentClass = '\\Jarves\\Admin\\ObjectCrud';
     $namespace = ucfirst($bundle->getNamespace()) . substr($class, 0, $lSlash);
     if (substr($namespace, -1) == '\\') {
         $namespace = substr($namespace, 0, -1);
     }
     $sourcecode .= "namespace {$namespace};\n \n";
     $sourcecode .= 'class ' . $class2Name . ' extends ' . $parentClass . " {\n\n";
     $sourcecode .= "}\n";
     $fs = $this->localFilesystem;
     $result = $fs->write($actualPath, $sourcecode);
     $this->reconfigureJarves();
     return $result;
 }
Ejemplo n.º 3
0
 /**
  * @ApiDoc(
  *  section="Backend",
  *  description="Prints the javascript file content of $bundle and $code."
  * )
  *
  * @Rest\QueryParam(name="bundle", requirements=".+", strict=true, description="The bundle name")
  * @Rest\QueryParam(name="code", requirements=".+", strict=true, description="Slash separated entry point path")
  * @Rest\QueryParam(name="onLoad", requirements=".+", strict=true, description="onLoad id")
  * @Rest\Get("/admin/backend/custom-js")
  *
  * @param ParamFetcher $paramFetcher
  *
  * @return string javascript
  */
 public function getCustomJsAction(ParamFetcher $paramFetcher)
 {
     $bundle = $paramFetcher->get('bundle');
     $code = $paramFetcher->get('code');
     $onLoad = $paramFetcher->get('onLoad');
     $module = preg_replace('[^a-zA-Z0-9_-]', '', $bundle);
     $code = preg_replace('[^a-zA-Z0-9_-]', '', $code);
     $onLoad = preg_replace('[^a-zA-Z0-9_-]', '', $onLoad);
     $bundle = $this->jarves->getBundle($module);
     $file = $bundle->getPath() . '/Resources/public/admin/js/' . $code . '.js';
     if (!file_exists($file)) {
         $content = "contentCantLoaded_" . $onLoad . "('{$file}');\n";
     } else {
         $content = file_get_contents($file);
         $content .= "\n";
         $content .= "contentLoaded_" . $onLoad . '();' . "\n";
     }
     $response = new Response($content);
     $response->headers->set('Content-Type', 'text/javascript');
     return $response;
 }