首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中加载依赖项的正确方法是什么?

在PHP中加载依赖项的正确方法是什么?
EN

Stack Overflow用户
提问于 2012-11-29 20:19:42
回答 4查看 2.9K关注 0票数 6

我怀疑在PHP中加载依赖类的正确方式/最佳实践。

我通常将所有依赖项放在每个类的开头,并以类似于Java import的方式使用include_once。类似于:

代码语言:javascript
复制
include_once 'dto/SomeObjectDTO.php;'
include_once 'dao/SomeObjectDAO.php;'
include_once 'util/SomeObjectUtil.php;'

class SomeObjectService{
    #class code here
}

这是装入类的最佳方式吗?或者加载Bootstrap.php中的所有类?其他方式?

请注意,我说的是加载我自己的类,而不是像框架这样的复杂外部类。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-29 20:28:39

正如Homer6所说,自动加载是php内置的依赖加载机制。

PHP-FIG提出了一系列名为PSR的PHP编码标准。PSR-0处理类命名和自动加载。以下是一些链接:

另外,请记住,自动加载是有代价的。在建议的默认自动加载器中,有大量的字符串工作和与文件系统相关的工作(您可以实现自己的更快的自动加载器,但它不符合标准)。当你需要加载很多类时,这会使自动加载变慢。因此,如果你只需要加载2个类,你的方法会更快,更容易理解。

票数 2
EN

Stack Overflow用户

发布于 2012-11-29 20:22:07

你可以注册你的autoload方法。Symfony 2包含一个很好的类来做这件事。

http://php.net/manual/en/function.spl-autoload-register.php

我已经对它进行了修改,以便与我们编写的库一起使用。

https://github.com/homer6/altumo/blob/master/source/php/loader.php

https://github.com/homer6/altumo/blob/master/source/php/Utils/UniversalClassLoader.php

此调整允许您拥有不要求顶级名称空间具有相同文件夹名称的名称空间。

票数 2
EN

Stack Overflow用户

发布于 2012-11-29 20:26:15

从5.3版本开始,PHP就支持名称空间。这允许您拥有一个包和类层次结构,就像您在C++或Java中所知道的那样。

查看这些资源以了解更多信息:

http://www.php.net/manual/en/language.namespaces.basics.php

http://php.net/manual/en/language.namespaces.importing.php

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13625707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档