私はPhalcon phpを使用しています。私はmulti modules architectureを使ってみる必要があります。私はフロントエンドとバックエンドを持っています。フロントエンドアプリはデフォルトのモジュールです。しかし、私は他のモジュールについて何かを理解していません。バックエンドにコントローラーが10個あり、バックエンドモジュールのすべてのルートを定義する必要があります。他のモジュールのPhalconマルチモジュールルート
0
A
答えて
2
すべてのあなたのコントローラ/アクションの組み合わせを一致させるために50+異なるルートを定義する必要はありません。 Phalconが提供する既定のルートを使用することができます。
これはあなたのニーズに合った例です。私はあなたの正確なプロジェクト構造が何であるか分かりません。しかし、あなたが提供した例から、次のように試してみてください:
$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
私はあなたと同じシナリオを使用しています。すべての可能なルートを定義する必要はありません。ここに私のルートであり、彼らは私がCMSエリアに必要なもののために普遍的なものである:あなたのバックエンドルートの
// 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'
]);
関連する問題
- 1. 他のモジュールのノードイベントエフェクタ
- 2. 他のモジュールのMavenモジュールのプロパティ
- 3. Phalcon on PHP7?
- 4. Phalconインストールエラー - Ubuntu
- 5. 他のモジュールを実行するVBAモジュール
- 6. Phalconによるブログアーカイブ
- 7. 私のモジュールの他のモジュールのヘルパーをmagentoで呼び出す
- 8. Netbeansプラットフォームのアクセス他のモジュールのDTD
- 9. Rubyモジュール内の他のメソッドへのアクセス
- 10. Phalcon PHPマルチモジュール名前空間の定義
- 11. Phalcon、モデル、どのようにAction_onカスケードセットヌル?
- 12. Phalconからのメールを送信
- 13. 他のモジュールへの大量インポート接続?
- 14. 他のモジュールからのメッセージを取得
- 15. パペット - 他のモジュールマニフェストによるモジュールのインストール
- 16. 他のモジュールからsymfonyモジュール設定にアクセスする
- 17. Phalconマルチモジュール - ボルトが作動しない
- 18. モジュールをRubyの他のモジュールに含めることは可能ですか?
- 19. Pythonモジュール、同じパッケージ内の他のモジュールを参照していますか?
- 20. Globals.jsモジュールにグローバル変数を置き、他のモジュールにアクセスする方法は?
- 21. 新しいDrupalモジュールで有効になっている他のモジュールを検出
- 22. どのように他のモジュールからの私のangularJSアプリケーションで
- 23. Magentoの、他のモジュールにグリッド行のリンクを連結
- 24. 複数の選択された行をphalconで削除する
- 25. 他のモジュールに依存するpython distutilsパッケージコードの例?
- 26. 他のモジュールのフィールドをSugarCRM Dashletに組み込む
- 27. 他のルビファイルのモジュールからメソッドを呼び出す方法
- 28. 他人のモジュールを編集するための適切なプロトコル
- 29. Play 2.0 vs. Play 1.2.5-RC1 + CRUD +その他のモジュール
- 30. dev_appserverでgaeutilitiesやその他のモジュールをインポートする
あなたの答えはありがたいです。コントローラーの操作などについて、これらのパラメーター1、2、3は何ですか?私は理解していません。 – John
https://docs.phalconphp.com/en/latest/reference/routing.htmlをチェックしてください - 詳細については...それはルートの地図のようなものです - どの部分に名前を付けるかを定義します。たとえば、1はコントローラで、最初の部分「/([a-zA-Z \ - ] +)/」から取得されます。ルートを記述するにはいくつかの方法があります。 –
@BorisDelevのリンクをチェックしてください。PhalconルーターがどのようにURLを翻訳するのかを説明しています – Timothy