我有一些功能需要由管理我软件常见方面的几个类共享。在Java中,我将所有这些类放在同一个包中,并且通用功能将在辅助类中的受保护方法中。
在PHP中,受保护的方法意味着您只能在子类中使用它,因此我当前的解决方案是使方法受到保护,并让所有需要此方法的类扩展帮助程序类。我当前的解决方案的问题是,你不能继承多个类,所以我想要帮助类,im ......
那么,有没有办法让方法可见性与PHP中的java保护相媲美?如果没有,任何更清洁的方法来解决我的问题?
答案 0 :(得分:6)
听起来你正在寻找使用特质。
http://php.net/manual/en/language.oop5.traits.php
这将允许您定义共享的受保护方法并提供给需要它的类。我建议使用接口实现它,以便您可以指定特征提供的方法必须在那里。
PHP只允许您扩展一个抽象类,但是您可以实现多个接口。
答案 1 :(得分:2)
您可以尝试命名空间(5.3)并引用实用程序类而不是扩展它。这并没有完全解决问题,但它确实有助于隔离你的课程。我尽量避免使用私有方法。
在PHP 5.4中,他们添加了一些特性,允许类扩展多个类。施莱斯已经回答了这个问题。