CakePHP中使用的设计模式

Jas*_*n F 10 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中使用的所有模式 - 我只是在寻找一些设计模式的例子,这些模式应该是我很想念的.

dei*_*zel 4

我想到的一个是mixin的概念。不完全是一种模式,但实际上是某些语言(即 Ruby 中的模块)中可用的语言功能,但在其他语言(即 Java)中则不可用。当 5.4 稳定并且我们获得了Traits时,它将出现在 PHP 中,但是 CakePHP 的模型行为是模仿这种通常不可能的多重继承的一个很好的例子。

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

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

}
Run Code Online (Sandbox Code Playgroud)