oop - CakePHP 中使用的设计模式

标签 oop design-patterns cakephp

我的问题:CakePHP 中使用的设计模式有哪些好的示例?

为什么使用 CakePHP 作为我的上下文
我已经使用 CakePHP 大约一年了,所以我认为在这种情况下我更容易思考。 CakePHP 在设计模式的使用方面也很丰富(我对此很有信心)——我只是不知道除了一些明显的模式之外正在使用哪些模式。

我一直在阅读的有关该主题的示例书籍:
我正在阅读以下书籍,它们都在某种程度上涵盖了设计模式;不幸的是,他们主要使用 Java 和 C++ 代码示例,这让我更难掌握实际水平的设计模式(我是一名 PHP 开发人员,所以我很难吸收它):
“企业应用架构的模式”,Martin Fowler 着
“Head First Design Patterns”,四人组(Eric Freeman、Elisabeth Freeman、Kathy Sierra 和 Bert Bates)(2004 年)
“设计模式:可重用面向对象软件的元素”,作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)

我可以在 CakePHP 中观察到的模式示例
-我猜配置文件使用类似于工厂模式的东西
-也许 $this->params 正在使用与观察者模式相关的东西?我不确定...
-MVC(很明显!因为 Cake PHP 使用 MVC 文件结构)
-ORM(另一个非常明显的)
- 也许 HTML 助手正在使用装饰器模式?

总结
我不指望任何人会下线并找出 CakePHP 中使用的所有模式——我只是在寻找一些我显然遗漏的设计模式示例。

最佳答案

想到的一个概念是mixins。 .不完全是一种模式,但实际上是某些语言(即 Ruby 中的模块)中可用但在其他语言(即 Java)中不可用的语言特性。它会在 5.4 稳定后出现在 PHP 中,我们得到 traits ,但是 CakePHP 的模型行为是模仿这种通常不可能的多重继承的一个很好的例子。

class Post extends AppModel { // we can only inherit from one class

    public $actsAs = array('This', 'That', 'Other'); // but we can do this instead

}

关于oop - CakePHP 中使用的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814904/

相关文章:

php - MySQLi 作为静态类

javascript - 如何向 javascript 类添加回调函数?

python - 是否有从协程端点返回值的标准方法

php - 在 CakePHP 中使用不同的用户角色登录?

mysql - 将第三个表链接到多对多关联中的桥接表

java - 在值对象中存储常量

node.js - 这种 MEAN 堆栈设计模式适合 1,000-10,000 个用户规模吗?

mysql - 当模式在字段中时如何编写查询

mysql - 如何使用 $this->request->params 从 URL 获取值

java - 是否建议使用静态变量来维护状态?