make() public méthode

Make a new scaffolding document
public make ( string $requestedClass, string $viewName ) : boolean
$requestedClass string The requested class, with full qualifier ie Myapp\Site\Controller\Foobar
$viewName string The name of the view linked to this controller
Résultat boolean True on success, false otherwise
Exemple #1
0
 public function execute()
 {
     // Backend or frontend?
     $section = $this->input->get('frontend', false) ? 'site' : 'admin';
     $view = $this->getViewName($this->input);
     // Let's force the use of the Magic Factory
     $container = Container::getInstance($this->component, array('factoryClass' => 'FOF30\\Factory\\MagicFactory'));
     $container->factory->setSaveScaffolding(true);
     // plural / singular
     $view = $container->inflector->singularize($view);
     $classname = $container->getNamespacePrefix($section) . 'Controller\\' . ucfirst($view);
     $scaffolding = new ControllerBuilder($container);
     $scaffolding->setSection($section);
     if (!$scaffolding->make($classname, $view)) {
         throw new \RuntimeException("An error occurred while creating the Controller class");
     }
 }
Exemple #2
0
 /**
  * Create a new Controller object
  *
  * @param   string  $viewName  The name of the view we're getting a Controller for.
  * @param   array   $config    Optional MVC configuration values for the Controller object.
  *
  * @return  Controller
  */
 public function controller($viewName, array $config = array())
 {
     $controllerClass = $this->container->getNamespacePrefix($this->getSection()) . 'Controller\\' . ucfirst($viewName);
     try {
         return $this->createController($controllerClass, $config);
     } catch (ControllerNotFound $e) {
     }
     $controllerClass = $this->container->getNamespacePrefix($this->getSection()) . 'Controller\\' . ucfirst($this->container->inflector->singularize($viewName));
     try {
         $controller = $this->createController($controllerClass, $config);
     } catch (ControllerNotFound $e) {
         // Do I have to create and save the class file? If not, let's rethrow the exception
         if (!$this->saveControllerScaffolding) {
             throw $e;
         }
         $scaffolding = new ControllerBuilder($this->container);
         // Was the scaffolding successful? If so let's call ourself again, otherwise throw a not found exception
         if ($scaffolding->make($controllerClass, $viewName)) {
             $controller = $this->controller($viewName, $config);
         } else {
             throw $e;
         }
     }
     return $controller;
 }