如何在PHP中实例化和重用服务

时间:2012-04-20 07:11:18

标签: php

在Java EE中,我会使用Spring来实例化和重用我的服务。现在我在PHP中创建了一个小框架来支持我的应用程序,使用服务,存储库和DAO。

但是,如何实例化,但更重要的是,重新使用这些对象,而不必每次都实例化一个新对象?

开始使用单身人士很诱人,但随后我的代码会很快变成一团糟。

事实上,我在使用PHP的良好OO实践和设计模式方面遇到了麻烦。这有什么好的资源吗?

3 个答案:

答案 0 :(得分:1)

我个人在PHP中一直使用Singleton方法,在我看来,我的代码并不是一团糟。许多其他项目(例如Typo3)使用全局数组来存储对象。我不喜欢这种方法,因为数组项很容易被覆盖。

但是如果你使用命名空间并在文件夹中订购项目文件(比如Java),那么Singleton方法非常简洁。使用getInstance()方法,您可以更安全地使用$globalArray['myInstance']

答案 1 :(得分:0)

在php中我们使用重要的framewokr

使用的延迟加载技术

你需要建立一个自动加载策略,因为在php中你应该总是包含编写类的文件来实例化一个对象

Symfony使用名称空间,例如

\DB\Repository\Classes\Product

例如在

中注册
/DB/Repository/Classes/Product.php file

你直接做了

$product = new Product()

不用考虑包含文件和其他类似的操作。

答案 2 :(得分:0)

我相信您正在寻找的是服务容器(IoC容器)。您可以在应用程序中使用一些PHP实现。到目前为止我使用的那个叫做Symfony框架提供的Dependency Injection组件。可以找到文档here

PHP中还有另一种可用的实现,我知道它叫做Zend DI。它是由自2.0版本以来的另一个大型PHP框架提供的,但仍处于测试阶段。可以找到Zend DI组件的一些示例here