【问题标题】:Can I require class-functions only if the class is instantiated in php?只有当类在 php 中实例化时,我才能需要类函数吗?
【发布时间】:2011-01-09 07:10:29
【问题描述】:

为了提高代码的敏捷性和加载时间,我想到了这样做, 这样只有在类被实例化时才需要这些函数。

class User
{
    public function __construct()
    {
       require('all_user_fns.php');
    }
}

all_user_fns.php 内部将驻留所有 User 类的函数。

这可行吗(也许以另一种方式)?它在速度方面有什么优势吗?

【问题讨论】:

  • 如何将文件中的函数连接到User 类?它绝对不会增加可读性或可维护性。

标签: php class function require


【解决方案1】:

如果这些函数的存在只是为了修改用户对象并与之交互,那么它们应该是该类的成员函数。这就是对象的意义,用于封装和组织相关功能。

【讨论】:

    【解决方案2】:

    老实说,这会更慢(毕竟你必须做一个额外的包含),虽然没有意义。因此,如果速度确实是个问题,请查看其中一个操作码缓存,例如 Alternative PHP Cache (APC)

    更令人担忧的是,这将使维护代码变得痛苦,并且在尝试使用可见性关键字(例如私有/受保护/公共)时很可能会导致问题,具体取决于您使用的 IDE。

    【讨论】:

      【解决方案3】:

      我的猜测:不会对速度产生任何明显影响。此外,它使您的代码更难理解和维护。我会避开并寻找其他方法来加快速度。

      【讨论】:

        【解决方案4】:

        我建议将用户函数作为方法移至 User 类本身 - 它更有意义且更易于维护。如果您认为维护不是问题,请在 6 个月后告诉我​​,并告诉我这对您有何帮助:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-30
          • 2012-07-07
          • 2019-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多