3

随着我们公司开始使用 Zend Framework 作为我们大多数项目的基础框架,我们希望在所有项目中共享一些通用元素。我谈论的事情如下:

  • 模型的实现(基于学说2)
  • 模型的 RBAC,包括用户、组、角色模型
  • 用于 ajax 后端接口的基于 xml 的模板引擎
  • (你的名字)...

基本上,所有的事情都要“上轨道”然后开始。打包这些组件的最佳方式是什么?我看到两种可能性:

作为模块

我们将必要的功能作为单独的模块包含到模块文件夹中。

临:

  • 我们可以设置路由和执行代码,这对很多模块都有好处(想象一下:一个paypal模块需要某种回调url。如果我们的模块可以自己设置,不需要“项目开发者”的配置) .
  • 我们可以提供开箱即用的真实功能(如用户管理)
  • 我们有一个引导程序来设置自动加载和教义等。

缺点:

  • 不好的地方?干扰用户项目
  • 在项目之间共享有点困难(git子模块而不是类路径)

在库文件夹中

我们将它放在库文件夹中并将类路径指向它。

临:

  • 清洁溶液
  • 跨项目共享

缺点:

  • Bootstrap 必须被显式调用
  • 没有直接的路由或动作 - 一切都必须通过具体项目代理

那么,你如何解决这个问题?您将可重复使用的通用材料放在 zf 的什么位置?

4

1 回答 1

1

我认为你应该同时使用这两种方法。

在开发“类库”代码时,如“基础设施”类和其他可重用的东西(如 ZF 自己的组件、Doctrine 2 的组件等),您可以将它们放入库目录中。(或它自己完全独立的项目)

在开发实际的 ZF 模块(例如 auth 模块)时,围绕 ZF 模块结构格式化代码。

我认为通过使用这种方法,您可以获得列出的所有好处,而几乎没有任何缺点:)

作为另一个想法,如果您将架构部分开发为“服务”,您甚至可以让它们作为自己的 Web 服务端点运行。

于 2011-07-15T10:41:52.957 回答