Ich benutze Phalcon PHP. Ich muss versuchen, die multi modules architecture zu verwenden. Ich habe ein Frontend und Backend. Die Frontend-App ist das Standardmodul. Aber ich verstehe nichts über die anderen Module. Wenn ich 50 Controller im Backend mit 10 Aktionen von Controllern habe, muss ich alle Routen für das Backend-Modul definieren?Phalcon Multi Modul Routen für andere Module
0
A
Antwort
2
Für Ihre Backend-Routen, die Sie nicht über 50 verschiedene Routen definieren, müssen alle Controller/Action-Kombinationen entsprechen. Sie können sich hauptsächlich an die von Phalcon bereitgestellten Standardrouten halten.
Dies ist ein Beispiel, das Ihren Anforderungen entsprechen könnte. Ich bin mir nicht sicher, was Ihre genaue Projektstruktur ist. Aber ausgehend von dem von Ihnen bereitgestellten Beispiel versuchen Sie Folgendes:
$router = new Phalcon\Mvc\Router();
// set the defaults, so Phalcon knows where to start and where to fall back to
$router->setDefaultModule('frontend');
$router->setDefaultNamespace('Apps\Frontend\Controllers');
$router->setDefaultAction("index");
$router->setDefaultController("index");
$router->removeExtraSlashes(true);
/* ----------------------------------------------------- */
/* ------------------ FRONTEND ROUTES ------------------ */
/* ----------------------------------------------------- */
$router->add('/([a-zA-Z\-]+)/([a-zA-Z\-]+)/:params', [
'module' => 'frontend',
'namespace' => 'Apps\Frontend\Controllers',
'controller' => 1,
'action' => 2,
'params' => 3
]);
/* ----------------------------------------------------- */
/* ------------------ BACKEND ROUTES ------------------- */
/* ----------------------------------------------------- */
// to keep your routes.php file clean,
// you can create a separate router group for your backend routes.
$backend = new Phalcon\Mvc\Router\Group();
$backend->setPrefix('/backend');
// for a backend route with a controller
$backend->add('/([a-zA-Z\-]+)', [
'module' => 'backend',
'namespace' => 'Apps\Backend\Controllers',
'controller' => 1,
'action' => 'index'
]);
// for a backend route with a controller/action
$backend->add('/([a-zA-Z\-]+)/([a-zA-Z\-]+)', [
'module' => 'backend',
'namespace' => 'Apps\Backend\Controllers',
'controller' => 1,
'action' => 2
]);
// for a backend route with a controller/action/parameter
$backend->add('/([a-zA-Z\-]+)/([a-zA-Z\-]+)/:params', [
'module' => 'backend',
'namespace' => 'Apps\Backend\Controllers',
'controller' => 1,
'action' => 2,
'params' => 3
]);
// add your backend routes to the main router.
$router->mount($backend);
0
Ich benutze das gleiche Szenario wie Sie. Es müssen nicht alle möglichen Routen definiert werden. Hier sind meine Wege und sie sind universell für alles, was ich im CMS-Bereich benötigen:
// Frontend routes
// ....
// CMS Routes
$router->add('/cms', [
'module' => 'backend',
'controller' => 'admin',
'action' => 'login'
]);
$router->add('/cms/:controller/:action/([0-9]+)/:params', [
'module' => 'backend',
'controller' => 1,
'action' => 2,
'id' => 3,
'params' => 4
])->setName('backend-full');
$router->add('/cms/:controller/:action', [
'module' => 'backend',
'controller' => 1,
'action' => 2
])->setName('backend-short');
$router->add('/cms/:controller', [
'module' => 'backend',
'controller' => 1,
'action' => 'index'
]);
Verwandte Themen
- 1. Phalcon PHP Multi Modul Namensraum Definition
- 2. Phalcon Multi-Modul gemeinsames Modell Magie Getter funktioniert nicht
- 3. Single-Modul vs Multi-Module Maven-Projekt
- 4. GWT Multi-Module für separate HTML-Seiten?
- 5. Wie konfiguriere ich benutzerdefinierte Routen in Phalcon?
- 6. Android Testabdeckung Bericht für Multi-Modul-App
- 7. Packing Multi-Plattform-Multi-Modul Maven-Projekt
- 8. Maven Multi Modul Jenkins Projekt
- 9. Module jeweils andere lokale Objekte
- 10. Frühling Boot-Multi-Modul servletDispatchers
- 11. Maven Multi-Module-Projekte mit SVN
- 12. Standardstruktur für Multi-Modul Java Maven Projekt
- 13. Maven Multi-Modul-Projekt und Jenkins
- 14. Phalcon Mehrfachmodul funktioniert nicht
- 15. Puppet - Modul über andere Modul-Manifeste installieren
- 16. Maven Multi-Modul-Projekt kann Geschwister-Modul nicht finden
- 17. Phalcon REST - cmoore4/phalcon-rest
- 18. Frühlings-Boot-MVC Multi-Modul Executeable jar
- 19. cobertura on maven multi Modul Projekt
- 20. Maven kann keine Abhängigkeit für das Modul in derselben Multi-Modul-Projekt
- 21. Multi-Modul Maven-Projekt und Steg: Lauf
- 22. Python Namenskonventionen für Module
- 23. Unterstützt monotouch Multi-Datei-Assemblies durch Module?
- 24. Maven: OSGI, Bundles und Multi-Module-Projekte
- 25. Änderungen im Multi-Modul Maven-Projekt übernehmen
- 26. Multi-Modul-Projekte in Swift
- 27. Multi-Modul-Projekt - Assembly-Plugin
- 28. Konfigurieren UI-Router für mehrere Module
- 29. Multi-Projekt erstellen und Module mit Webpack dynamisch laden
- 30. Python-Modul-Import funktioniert für eine Datei, schlägt für andere
danke für Ihre Antwort. Was ist theses Parameter 1, 2, 3 für die Controller-Aktion usw. Ich verstehe nicht – John
Überprüfen Sie https://docs.phalconphp.com/en/latest/reference/routing.html - für weitere Informationen darüber ... aber es ist so etwas wie eine Karte der Route - Sie definieren, welchen Teil - wie man es nennt. Zum Beispiel ist 1 der Controller und wird vom ersten Teil "/ ([a-zA-Z \ -] +) /" abgerufen. Es gibt ein paar Möglichkeiten, Ihre Routen zu beschreiben. –
Überprüfen Sie den Link @BorisDelev zur Verfügung gestellt, es erklärt, wie der Phalcon-Router eine bestimmte URL übersetzt – Timothy