3

モジュール固有のルートをいくつか作成する必要がありますが、ルートでモジュール名を明示的に言及する必要はありません。現在、モジュールごとに個別の構成ファイル (MODULE/configs/module.ini) があり、モジュールのブートストラップでこれらのルートを Zend Framework にプッシュしています。INI ファイルにはルート情報が含まれていますが、ルート内にモジュール名が記載されています。例えば

routes.contents.route = "Contents/(.*)"
routes.contents.defaults.module = コンテンツ
routes.contents.defaults.controller = index
routes.contents.defaults.action = index
+ルートに関するその他の詳細。

モジュール名 ("Contents") がルートに明示的に記載されていることがわかります。私が欲しいのは、ルートでモジュール名の後の部分に言及するだけで、ルートの前にモジュール名が自動的に追加されることです。したがって、後でモジュールの名前を CMS に変更する場合、すべてのルートを「CMS/xxxx」に変更する必要はありません。

4

1 に答える 1

0

指定する「ルート」は、任意のものにすることができます。Zend Frameworkがそれに一致する場合、以下に設定されたデフォルトに基づいてルートを実行します。

resources.router.routes.products.regex = "somethingawesome/(.*)"
resources.router.routes.products.defaults.module = "ModuleName"
resources.router.routes.products.defaults.controller = "awesome"
resources.router.routes.products.defaults.action = "cool"

上記の「ルート」は、-mysite.com/somethingawesome/whateverの正規表現一致を使用して、モジュールにルーティングします:ModuleName、コントローラーAwesomeController.php、coolAction()を実行します

この正規表現内で実行できる一致は他にもたくさんありますが、文字列「somethingawesome」は完全にあなた次第です。それはあなたがURLで何を一致させたいか、そしてあなたがそれをどこに送りたいかについてのすべてです。

于 2010-11-23T16:06:56.570 に答える