PHP保护java风格

时间:2013-09-04 13:36:05

标签: php oop

我有一些功能需要由管理我软件常见方面的几个类共享。在Java中,我将所有这些类放在同一个包中,并且通用功能将在辅助类中的受保护方法中。

在PHP中,受保护的方法意味着您只能在子类中使用它,因此我当前的解决方案是使方法受到保护,并让所有需要此方法的类扩展帮助程序类。我当前的解决方案的问题是,你不能继承多个类,所以我想要帮助类,im ......

那么,有没有办法让方法可见性与PHP中的java保护相媲美?如果没有,任何更清洁的方法来解决我的问题?

2 个答案:

答案 0 :(得分:6)

听起来你正在寻找使用特质。

http://php.net/manual/en/language.oop5.traits.php

这将允许您定义共享的受保护方法并提供给需要它的类。我建议使用接口实现它,以便您可以指定特征提供的方法必须在那里。

PHP只允许您扩展一个抽象类,但是您可以实现多个接口。

答案 1 :(得分:2)

您可以尝试命名空间(5.3)并引用实用程序类而不是扩展它。这并没有完全解决问题,但它确实有助于隔离你的课程。我尽量避免使用私有方法。

在PHP 5.4中,他们添加了一些特性,允许类扩展多个类。施莱斯已经回答了这个问题。