簡體   English   中英

Zend Framework 2 - URL的多個模塊

[英]Zend Framework 2 - Multiple modules by URL

我目前正在使用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模塊的重點,我很驚訝它似乎沒有開箱即用。 任何人都知道這是怎么做的,或者可能是一個示例/教程的鏈接?

目前看來路由器在每個模塊內而不是整個應用程序中,我原以為它應該如何完成......我猜你有一個應用程序模塊可以進行路由和全局的東西,注入依賴關系,什么不是,然后其他模塊的不同的東西,如游戲,帳戶,留言板,論壇等。

一旦我弄清楚了,我可以制作一個Github示例應用程序,因為我知道其他人對此感到好奇。

編輯@ 24/11/2011:我已經在貢獻者論壇上看到了EvanDotPro的帖子,他們談到他們不想做ZF1模塊/控制器/動作的做事方式而且沒有那么多對它的需求。 他實際上寫了一個例子,讓它運行這樣的東西,但說它不能100%工作。 因此,任何遇到這篇文章的人都在尋找更多的信息並且更精明一點,那就是它: https://github.com/EvanDotPro/EdpMagicRoutehttps://github.com/EvanDotPro/EdpMagicRoute (如果它仍然存在於閱讀本書!)

要更改路由,您需要編輯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'
    )
)

你可以看到我添加/ [:模塊和deafults和約束

您可以在module \\ config \\ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM