PHP 类 和代码组织

PHP Classes and Code Organization

好吧,我目前正在个人网站上重新设计 PHP 后端(有点像制作我自己的 CMS),这既是为了好玩,也是为了学习。

我一直在尝试学习 PHP 中的 OOP 方法,因为 classes 似乎是使代码更有条理并最大限度地减少代码重用的好方法。 (尽管如果设计正确,code-reuse 在 non-oop 系统中不一定更普遍)

我的问题是我应该如何处理组织不同的 classes:

我将我的项目组织在一张纸上,格式类似于:

<!-- language: lang-php -->

<?php
    class main_website{
        #Has a bunch of universal configuration such as a connection to the database
        function __construct($includes='webpage1.class.php'){
            #will include anything listed above
        }
    }
    class users extends main_website{
        #functions relating to users
    }
    class webpages extends main_website{
        #functions relating to all web-pages
    }
    class webpage1 extends webpages{
        #has a set of functions that relate specifically to webpage 1 and won't be used elsewhere
    }
    class webpage2 extends webpages{
        #has a set of functions that relate specifically to webpage 2 and won't be used elsewhere
    }
?>

现在,这一直运作良好……差不多。但是我已经到了要创建几个 classes 的地步,它们在某些时候需要相互通信;目前我的解决方案是让他们通过 parent class 进行交流,但是让 "sibling" classes 互相交谈似乎很老套所以我想问一下 我是否正确理解了 OOP

很多关于 OOP 的帖子五花八门,很多人对代码设计有如此广泛的看法,我不确定是哪种方式 "right"。 (至少......就让我的项目有点 "standard" 而言是正确的)

您应该考虑使用依赖项注入容器,例如 Symfony 的 Dependency Injection component(可以独立使用,如文章中所述)来处理此通信。

这将使 类 的加载更高效(利用 lazy instantiation),并且还使您的 类 更容易单独进行单元测试。