2016-03-28 11 views
0

Ich möchte mit mehreren Modulen arbeiten. Deshalb habe ich über den phalcon Befehl frontend und backend Module erstellt. So verwenden Sie diesen Befehl phalcon module frontend Ich hatte eine Linie in config.phpPhalcon Mehrfachmodul funktioniert nicht

'modulesDir'  => APP_PATH . '/app/modules/', 

Nach dem Gebrauch schreiben diesen Befehl I Phalcon docs folgen gestartet - nach dieser docs musste ich neue Module registrieren, indem Sie diesen Code hinzufügen: (Ich habe dies in index.php)

$application->registerModules(
     array(
     'frontend' => function ($di) use ($view) { 
      $di->setShared('view', function() use ($view) { 
      $view->setViewsDir('../apps/frontend/views/'); 
      return $view; 
      }); 
     }, 
     'backend' => function ($di) use ($view) { 
      $di->setShared('view', function() use ($view) { 
      $view->setViewsDir('../apps/backend/views/'); 
      return $view; 
      }); 
     } 
    ) 
); 

Nachdem dieses acctions ich routes Modul standardmäßig aktualisiert getan - frontend.

schließlich nach, dass ich erhalten diese Mitteilung:

IndexController handler class cannot be loaded 

In Index Controller habe ich namespace Application\Frontend\Controllers;

Was soll ich reparieren oder verbessern, um es richtig funktioniert? Vielen Dank im Voraus.

+0

Was ist der Dateiname des Indexcontroller:

$loader->registerNamespaces(array( 'Application\Modules' => $config->app->modulesDir, )); 

Und ich denke, sollte Ihr Controller-Namespace sein? ich meine indexController.php oder IndexController.php sollte es IndexController.php sein hier ist das Repo, die Phalcon Befehl Werkzeug greifen für Multi-Modul-MVC. Schau dir RegisterModules function und Modules.php in jedem Modul an https://github.com/phalcon/mvc/tree/master/multiple –

+0

Kannst du mir git Quellen anbieten um zu sehen wo das Problem liegen könnte? –

+0

Ansonsten kann ich fertige mehrere Module verwenden, aber ich benutze Phalcon-Befehle - alles sollte gut gehen. Aus Neugier möchte ich wissen, warum es einen Fehler zurückgibt. – betty39johnson

Antwort

0

Sieht so aus, als müssten Sie die Standardrouten aktualisieren. Werfen Sie einen Blick auf diesen Code:

$di->set('router', function() { 

    $router = new Router(false); 
    $router->setUriSource(\Phalcon\Mvc\Router::URI_SOURCE_SERVER_REQUEST_URI); 
    $router->removeExtraSlashes(true); 

    $router->setDefaultModule('frontend'); 

    /** 
    * Default routes 
    */ 
    $router->add('/:module/:controller/:action/:params', [ 
     'module' => 1, 
     'controller' => 2, 
     'action' => 3, 
     'params' => 4 
    ]); 
    $router->add('/:module/:controller', [ 
     'module' => 1, 
     'controller' => 2, 
     'action' => 'index' 
    ]); 
    $router->add('/:module', [ 
     'module' => 1, 
     'controller' => 'index', 
     'action' => 'index' 
    ]); 
    $router->add('/', [ 
     'action' => 'index', 
     'controller' => 'index' 
    ]); 
}); 

Auch Laders überprüfen:

namespace Application\Modules\Frontend\Controllers;