4

私は現在GitのZendFrameworkSkeletonアプリケーションを使用しており、そのモジュール部分を利用して、次のようにURLで変更可能な多数のモジュールを作成しようとしています。

http://localhost/application/index/index/
http://localhost/guestbook/index/index/
http://localhost/forum/index/index/

また、将来の拡張のために、そこでも言語をどのように使用しますか?

http://localhost/en/application/index/index/
http://localhost/de/application/index/index/
http://localhost/en/forum/index/index/

これがZF2モジュールのほぼすべてのポイントだと思っていたのですが、箱から出してすぐに機能しないように思われることに驚いています。誰かがこれがどのように行われるのか、あるいはおそらくそれの例/チュートリアルへのリンクを知っていますか?

現時点では、ルーターはアプリケーション全体ではなく、各モジュール内にあるように見えます。これは、どのように実行する必要があるかを考えていました...ルーティングを実行するアプリケーションモジュールが1つあると推測しています。グローバルなもの、依存関係を注入するもの、そしてゲーム、アカウント、ゲストブック、フォーラムなどのさまざまなもののための他のモジュール。

それを理解したら、他の人がそれに興味を持っていることを知っているので、Githubのサンプルアプリケーションを作成できます。

編集@24/11/2011:それ以来、寄稿者フォーラムでEvanDotProによる投稿に出くわしました。彼らは、ZF1モジュール/コントローラー/アクションの方法で物事をやりたくないと話していて、それほど多くはありませんでした。それに対する需要。彼は実際にこのようなものを実行する例を書きましたが、100%は機能しなかったと言いました。したがって、この投稿に出くわしてより多くの情報を探していて、もう少し精通している人は、これがそれです:(これhttps://github.com/EvanDotPro/EdpMagicRouteを読んだ時点でまだ存在している場合!)

4

3 に答える 3

4

ルーティングを変更するには、Application/confid/module.config.php を編集する必要があります。そこを見つけて変更します

'options' => array(
    'route' => '/[:module/[:controller[/:action]]]', 
    'constraints' => array(
        'module' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*'
    ), 
    'defaults' => array(
        'module' => 'Application', 
        'controller' => 'index', 
        'action' => 'index'
    )
)

/[:module とデフォルトと制約を追加したことがわかります

于 2012-02-15T07:48:03.880 に答える
4

github https://github.com/akrabat/zf2-tutorial + pdf で説明付きの 良い例を見つけましたhttp://akrabat.com/wp-content/uploads/Getting-Started-with-Zend-Framework-2.pdf

于 2011-11-17T17:15:42.117 に答える
1

module\Application\config の下にある module.config.php ファイルで「 child_routes 」属性を使用できます

'routes' => array(
        'application' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/application',
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Index',
                    'action'        => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'default' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '/[:controller[/:action]]',
                        'constraints' => array(
                            'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                        ),
                        'defaults' => array(
                        ),
                    ),
                ),
            ),
        ),
    ),

その後、localhost/application/index/index を実行できます

于 2015-06-20T07:20:43.603 に答える