0

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

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

刚开始使用单例很诱人,但是我的代码很快就会变得一团糟。

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

4

3 回答 3

1

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

但是,如果您使用命名空间并在文件夹中排序项目文件(如在 Java 中),则单例方法非常干净。使用一种getInstance()方法,您比使用$globalArray['myInstance'].

于 2012-04-20T07:17:32.893 回答
0

我相信您正在寻找的是服务容器(IoC 容器)。您可以在您的应用程序中使用一些 PHP 实现。到目前为止,我使用的是 Symfony 框架提供的依赖注入组件。文档可以在这里找到。

我知道 PHP 中还有另一种实现,称为 Zend DI。它是自 2.0 版以来由另一个大型 PHP 框架提供的,但仍处于 beta 阶段。可以在此处找到有关 Zend DI 组件的一些示例。

于 2012-04-20T19:53:59.250 回答
0

在 php 中,我们使用了重要的 framewokr 也使用的延迟加载技术

您需要构建一个自动加载策略,因为在 php 中您应该始终包含写入类以实例化对象的文件

Symfony 使用命名空间,例如

\DB\Repository\Classes\Product

例如注册在一个

/DB/Repository/Classes/Product.php file

你直接做一个

$product = new Product()

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

于 2012-04-20T07:29:49.860 回答