在 Java EE 中,我会使用 Spring 来实例化和重用我的服务。现在,我使用服务、存储库和 DAO 用 PHP 创建了一个小框架来支持我的应用程序。
但是,如何实例化,但更重要的是,重用这些对象,而不必每次都实例化一个新对象?
刚开始使用单例很诱人,但是我的代码很快就会变得一团糟。
事实上,我在一般情况下使用 PHP 使用良好的 OO 实践和设计模式时遇到了麻烦。这有什么好的资源吗?
在 Java EE 中,我会使用 Spring 来实例化和重用我的服务。现在,我使用服务、存储库和 DAO 用 PHP 创建了一个小框架来支持我的应用程序。
但是,如何实例化,但更重要的是,重用这些对象,而不必每次都实例化一个新对象?
刚开始使用单例很诱人,但是我的代码很快就会变得一团糟。
事实上,我在一般情况下使用 PHP 使用良好的 OO 实践和设计模式时遇到了麻烦。这有什么好的资源吗?
我个人一直在 PHP 中使用 Singleton 方法,在我看来,我的代码还不是一团糟。许多其他项目(例如 Typo3)使用全局数组来存储对象。我不喜欢这种方法,因为数组项很容易被覆盖。
但是,如果您使用命名空间并在文件夹中排序项目文件(如在 Java 中),则单例方法非常干净。使用一种getInstance()
方法,您比使用$globalArray['myInstance']
.
在 php 中,我们使用了重要的 framewokr 也使用的延迟加载技术
您需要构建一个自动加载策略,因为在 php 中您应该始终包含写入类以实例化对象的文件
Symfony 使用命名空间,例如
\DB\Repository\Classes\Product
例如注册在一个
/DB/Repository/Classes/Product.php file
你直接做一个
$product = new Product()
不考虑包含文件和其他类似的操作。