2

在每个大型应用程序中都有一个 ADMIN 部分。
在这种情况下,当不使用 ZF 时,我通常将所有管理内容放在一个单独的目录中,并采取额外的安全措施(例如添加基于 .htaccess 的身份验证和/或第二次登录等)。这也使得文件树中的文件是什么非常明显。

如何在 ZF 中实现相同的设计?或者是否有任何创建管理部分的最佳实践?
我应该在路由器级别执行吗(如果 url 中有“admin”,那么我使用不同的 index.php/bootstrap 文件....)
我想最简单的方法就是使用控制器来处理所有的管理内容,但我有太多了。所以我有几个管理控制器与常规应用程序控制器并排。它在我的控制器目录中弄得一团糟——哪个控制器是管理员,哪个不是?

4

3 回答 3

4

我已经把它作为一个模块完成了。除了 Brett Bender 提供的模块链接,请参阅我提供的链接中的第 12.3.2.2 节。

于 2009-04-26T03:17:47.823 回答
0

我通常为整个管理系统创建一个单独的“应用程序”文件夹 - 包含它自己的控制器和视图目录以及静态内容的公共目录。管理部门通常对访问管理等关键事项有不同的要求,并且可能在许多其他方面与实际应用程序有所不同。因此,我认为完全分离源代码是个好主意。不过,一些源代码仍然很常见。示例包括库文件夹和数据库模型。

在决定管理实用程序应在何处可用时,此方法还为您提供了更大的灵活性。您可以使用 apache 别名指令将其放在同一域的子目录中,或者将其放在单独的虚拟主机上。全取决于你。

于 2009-04-26T01:49:21.000 回答
0

您应该使用 ZF 的模块进行检查。你可以有一个默认模块来包含非管理员的东西,以及一个管理模块来包含所有管理的东西。使用默认模块不会更改您当前的 URL,并且管理模块 URL 看起来像server.com/admin/controllername/actionname/params. 这将解决您的控制器都在同一个地方并且变得混乱的问题。此外,您可以在模型中进行子类化Zend_Controller_Action和创建Master_Controller以保持共享功能。然后只需创建一个Admin_Controller扩展主控制器以实现共享管理功能,并让您的管理模块中的每个控制器都对其进行子类化。您可以使用类似的结构在其他模块中组织共享的非管理员功能。

Zend Framework - 模块化目录结构

于 2009-04-26T02:42:45.567 回答