【问题标题】:Using OOP for combining lots of functions (sort of namespace) in PHP?使用 OOP 在 PHP 中组合大量函数(某种命名空间)?
【发布时间】:2008-12-16 19:04:46
【问题描述】:

我正在使用 PHP,我想知道将大量函数组合到一个类中是多么糟糕的做法。我知道这不是类的目的,但我这样做的原因是提供一个命名空间。在执行 PHP 脚本时启动 10 个类而不是 2 个或 3 个类会产生多大的影响?

【问题讨论】:

    标签: php oop class performance


    【解决方案1】:

    如果你使用的是

    <?php
    class Foo {
       public static function aStaticMethod() {
           // ...
       }
    }
    
    Foo::aStaticMethod();
    ?> 
    

    (复制自the php manual

    我会在某种程度上说它是一个类的功能 - 功能分组。

    这不会有任何与性能相关的问题(您可以执行数百万次并且您甚至不会注意到 - 应该没有运行时成本,只有一分钟的额外解析成本,这可以忽略不计)。现代 php 框架会引入大量代码并在内部创建大量对象 - 我不会担心 php 性能,数据库性能几乎总是会首先影响您。确保您的代码可读且可维护(是的,尤其是 php 代码;)),如果这意味着对函数进行分组,那么就这样做。

    “97% 的时间过早优化是万恶之源”,尤其是当你在做网页而不是核模拟时;)

    编辑:public 和 static 仅是 php5,在 php

    <?php
    class Foo {
       function aStaticMethod() {
           // don't touch $this
       }
    }
    
    Foo::aStaticMethod();
    ?> 
    

    【讨论】:

      【解决方案2】:

      如果您非常担心加载 10 个类太慢的性能,那么您不应该使用 PHP。

      至少,使用像 APC 这样的操作码缓存,然后加载类根本不应该成为负担。

      【讨论】:

        【解决方案3】:

        您可能不知道 PHP 最近支持一流的命名空间:http://php.net/language.namespaces

        【讨论】:

        • 差不多 - 最新的稳定版本是 5.2.8;命名空间将在 5.3.0
        • 感谢您的提醒!期待该功能的发布。
        猜你喜欢
        • 2015-03-15
        • 1970-01-01
        • 2015-05-14
        • 1970-01-01
        • 2015-11-05
        • 2013-08-16
        • 1970-01-01
        • 2017-05-10
        • 2010-11-18
        相关资源
        最近更新 更多