2010-04-27 79 views
6

我有很多功能,我创建或从网上复制。在哪里存储帮助函数?

我不知道我是否应该将它们存储在一个文件中,我只是将其包含到脚本中,或者应该将每个函数作为静态方法存储在类中。

例如。我有一个getCurrentFolder()和一个isFilePhp()函数。

它们应当或存储在一个文件,因为它们各自的一类:

文件夹:: getCurrent() 文件:: isPhp();

你好吗?

我知道这是一个有点“如u想”的问题,但它会与一些建议/最佳实践

感谢很大。

回答

3

你说得对,这是非常主观的问题,但我可能会混合使用你的两个选项。

你有一个类(比如助手)具有__call()(和/或__callStatic()如果你使用PHP 5.3+)magic methods,非定义时[静态]方法被调用时会加载相应的辅助文件并执行助手功能。请记住,包含文件会降低性能,但我相信您在文件组织方面获得的好处远远超过微小的性能影响。

一个简单的例子:

class helper { 
    function __callStatic($m, $args) { 
     if (is_file('./helpers/' . $m . '.php')) { 
      include_once('./helpers/' . $m . '.php'); 
      return call_user_func_array($m, $args); 
     } 
    } 
} 

helper::isFilePhp(/*...*/); // ./helpers/isFilePhp.php 
helper::getCurrentFolder(/*...*/); // ./helpers/getCurrentFolder.php 

您可以进一步优化这个片段中,甚至有几种类型的佣工(文件夹,文件)等,加入了__call[Static]()魔术方法到每个班级的建立和实施帮助程序文件/函数的文件夹/文件结构中的一些逻辑。