扩展核心PHP类而不是依赖注入?

Jas*_*vis 2 php oop class object

我正在开发一个应用程序,它将包含一个"库"文件夹,其中包含一个自制框架/库(会话,数据库,缓存,配置类型类),然后是一个"modules"文件夹,其中包含我的应用程序部分的文件夹(即;博客/,论坛/,帐户/等等)

在我的大多数模块(博客,论坛等)中,我将需要多个对象,如缓存,数据库,记录器,配置对象.我正计划使用依赖注入,但我很好奇,我不能只有一个Core类/对象,可以做我的数据库,缓存,记录器,时间,方法之类的东西,然后只是将这个核心类扩展到我的其他模块类,可以访问所有这些东西,而无需注入它们?

我对使用类/对象很新,所以我可能会离开这里,请解释一下.

Gor*_*don 9

课程应该承担一项责任.执行缓存,数据库访问,日志记录和时间等的Core类实际上是God Object aka The Blob.这是一个AntiPattern.不要那样做.让它们变得坚固.


dec*_*eze 5

如果您专门研究类或者扩展它们,则扩展类是有意义的。
如果扩展与基类的原始目的无关,那么它就没有意义,并且通常会变得混乱。

例如,您可以使用类(专业化)DbBase来扩展类,或者使用(扩展)来扩展类。DbMySqlHtmlHelperHtml5Helper

您不应该将您的扩展DbClassProductsModule. 两者没有任何关系。它们ProductsModule本身并不绑定到数据库,因此您混合了彼此无关的职责。