Zend Framework 2真实世界的应用程序文件结构

5 php zend-framework2

我刚刚开始使用ZF2,我对Zend Skeleton Application非常困惑.在目前的情况下,URl看起来像:

http://localhost/zf2/public/
Run Code Online (Sandbox Code Playgroud)

对于名为Application的模块,它看起来像:

http://localhost/zf2/public/Application/
Run Code Online (Sandbox Code Playgroud)

并且操作在模块名称之后.我想用管理面板用户面板创建一个CMS .这就是为什么我希望用户的URL如下:

http://localhost/zf2
Run Code Online (Sandbox Code Playgroud)

对于管理员喜欢:

http://localhost/zf2/admin/Module Name/Actions
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,我该如何创建这样的URL?

dua*_*mon 1

您的 url 示例看起来像是您混淆了公共目录和控制器路由。您通常不应该有这样的网址:

http://localhost/zf2/public/
Run Code Online (Sandbox Code Playgroud)

相反,您通常应该使用虚拟主机。有多种方法可以做到这一点,但如果您想要一个命名虚拟主机,通常可以归结为自定义端口或自定义主机条目。那么您的公开网址将类似于以下两个选项之一:

http://localhost:9000/
Run Code Online (Sandbox Code Playgroud)

或者

http://myapp.local/
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 PHP 5.4,在您的开发环境中,到目前为止启动主机最简单的方法是使用 PHP 5.4 内置服务器。您可以在项目根目录的命令行上像这样启动它(这使得公共目录成为本地主机端口 9000 上临时 Web 服务器的 Web 根目录):

php -S localhost:9000 -t public
Run Code Online (Sandbox Code Playgroud)

整理好 Web 服务器配置后,Skeleton 应用程序将自动解释您的 url 路由(默认情况下),如下所示:

http://localhost:9000/some-module/some-controller/some-action
Run Code Online (Sandbox Code Playgroud)

如果您想将 Skeleton 应用程序中 IndexController 上的默认 indexAction 放入完整的文字路径中,则如下所示:

http://localhost:9000/application/index/index
Run Code Online (Sandbox Code Playgroud)