【问题标题】:Joomla like component architecture.. Starting from scratchJoomla 类似组件架构.. 从头开始
【发布时间】:2011-05-16 20:07:56
【问题描述】:

块引用

已编辑:

http://blog.fedecarg.com/2008/06/28/a-modular-approach-to-web-development/

上述方法是我正在寻找的。那么是否有可用的 php 框架允许我为我的代码创建像上面这样的模块化结构?

已编辑:

块引用

我想知道哪个是目前最好的 php 框架,它是 100% 模块化的,如 joomla 组件架构。

在 joomla 中,您只需在“components”目录下上传一组文件,即可向 joomla 添加“任何”类型的复杂功能。

我想从头开始开发 php 应用程序,并且我希望我的所有应用程序都具有 与 joomla 的组件架构相同的易用性。所以我目前正在寻找一个 php 框架。

那么,如果我想执行上述操作,最好的方法是什么?

我应该选择像codeignitor或zend之类的php框架吗?但是你看,即使使用它们,假设如果我必须创建一个新函数,我必须将文件上传到至少 3 个目录,即控制器、模型和视图。但是你在 joomla 中看到,我所要做的就是将所有文件上传到一个名为“components”的目录中,然后自动处理其余的文件

那么最好的前进方式是什么?

香提

【问题讨论】:

  • 最好的方法是下载 Joomla 并查看他们的源代码以了解他们是如何做到的。
  • 这是我的第一个想法。但我想完全剥离 joomla 并只使用必要的部分。非常喜欢joomla的组件结构,也想给MY产品的用户同样的方便。

标签: php model-view-controller frameworks joomla


【解决方案1】:

Joomla 是一个 CMS 系统 AFAIK,因此您无法真正将 PHP 框架与它进行比较。

在模块化方面 Zend Framework 具有出色的优秀、易于实现的模块结构。

您认为要向 joomla 添加复杂的功能,您需要以正确的结构上传文件,joomla 会为您完成,只要您为 ZF 以正确的结构创建模块文件,它也可以工作..... .

【讨论】:

  • Martswite 所以要在使用zend框架时添加新功能,我们需要将文件添加到模型、视图和控制器文件夹不是吗?或者我们只需要将文件上传到某个“插件”目录?
【解决方案2】:

您的问题与我的问题相同。但那是4个月前的事了。 我试图找出如何创建这样的模块化系统。经过一番搜索,我了解到我们应该有一个像你说的“组件”这样的目录,并将模块的每个数据都放在里面。但是我们应该如何使用它们呢?简单 !。只需创建一个处理程序(php 文件)来控制您的安装、卸载、定位、设置。事实上,我只解决了其中的 3 个。定位太难了,我想是的,我从来没有做过。

如果您想要我的解释示例,请告诉我创建它。我发给你。 :)

【讨论】:

  • MahanGM,现在可以在 php 框架中使用吗?或者你是怎么做到的?
  • 是的。我不知道其他人为什么这么努力!?。模块化就是这么简单。如果您认为我在谈论(编程工程规则和结构),那是对的,但我产生了自己的方式。我同意 PurplePilot。他告诉了你需要的一切。
【解决方案3】:

好吧,我认为您正在将苹果与异国情调的恶魔水果或其他东西进行比较。 您正在将模块添加到 cms 并从名声中得到相同的结果。 它不像这样工作。 您正在谈论的 mvc 结构(模型 - 视图 - 控制器)很有意义,可以帮助您保持代码井井有条并保持良好的类一致性。 它是一种设计模式,已经发展成为事实上的标准,并被几乎所有框架采用。

zend 框架可能是最适合您的方式。 它的布局引擎和东西并不像人们希望的那样快,但它具有出色的模块化特性。您甚至可以部分重载核心类以满足您在“模块”中的需求。 只有抽象类不起作用(它们应该如何工作?),这就是为什么它们几乎从未使用过。

如果你真的想要一个非常灵活的优秀系统,而性能对你来说不是最重要的一点,你应该开始使用 magento,它通过添加 xml 结构将模块化和灵活性提升到更高的水平zend 框架,可让您组织所有页面、管理依赖项、重写模型组件等。

但请注意,您想要的越多,您就会失去更多的性能。我个人最喜欢的框架是 codeigniter,但我根据自己的需要设计了自己的...

【讨论】:

  • Joe Hopfgartner,我也很想使用 codeigniter。例如,假设我开始使用 codeignitor 编写一个复杂的电子商务系统,并且我使用了所有最佳编码实践。下线,是否可以添加一个新功能,比如愿望清单,只需购买在单个目录下上传几个文件或创建一个模块系统,在其中我上传一个包含模块的 zip 文件,其余的由程序完成?我的想法是创建基础电子商务系统并将其出售。第三方程序员应该会发现为我的产品创建模块非常容易。使用 codeignitor 容易吗?
【解决方案4】:

我同意 Joomla 等人与 CMS 存在差异,因此在功能上比框架更高,但灵活性当然更低。

但是,您可能想探索 Symfony 2 和 Lithium(Cake 3?)。两者都设计为仅使用 PHP 5.3 和更高版本,并且都使用 PHP 中的命名空间功能。我在 Lithium 上做的更少,但在 Symfony 2 中肯定是所有的东西(几乎所有东西都是一个插件,使框架模块化并且更容易管理。

但是,您将永远无法以完全相同的方式比较这两个框架/CMS,因为它们都是为不同的目的和不同的约束而构建和设计的。

注意Symfony 2 或 Lithium 目前都没有准备好生产。 Symfony 的目标是 2011 年 3 月,不清楚 Lithium 的 1 dot oh date

[编辑] 对于 Zend,这里有很多答案。需要明确的是,有两种类型的框架(是的,很多和很多),但很简单,有 Full Stack 和 Glue。

像 Zend 这样的 Glue 框架往往是免费且容易的,允许您随意使用某些部分而不是其他部分。因此,尽管名义上是 MVC,但您可以使用 V 和 C 轻松实现 Zend,但不能使用 M。您可以在控制器等中手动编写所有数据库调用。

诸如 Symfony 之类的全栈意味着您可以很好地使用所有功能,无论您喜欢与否。在数据方面,您使用 ORM、Doctrine 或 Propel,并且大量框架由 YAML/XML 中的配置文件控制。在这方面 Symfony 与 Ruby 等人非常相似。请注意,这不是对两者的推荐或批评。

在我看来,Joomla 是粘性的(但不是框架),但是为什么要使用 90% 构建的东西然后重写 75% 的东西呢?哦,是的,因为客户问了,而你的老板没有意识到这些问题,我现在记得了。

【讨论】:

  • 我认为 Zend Framework 2 也将推出命名空间之类的......虽然不确定何时会发布稳定版本
  • 好吧,如果我使用简单的 PHP 5 进行编码并且如果我使用命名空间,我可以实现真正的模块化编程吗?如果是这样,是否有可用的示例/教程?
  • 我想要的可以在这里找到blog.fedecarg.com/2008/06/28/… 它讲的是MVC,然后是模块化编程。我知道目前几乎所有的 php 框架都支持 MVC。所以我的问题是,谁能让我知道目前的框架,如 CI、zend、cakephp 等中哪些支持这种真正的开箱即用的模块化编程?
猜你喜欢
  • 2011-03-09
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
相关资源
最近更新 更多