命名空间的误区
首先我们都知道,php有两种引入文件的方式include和require,只有通过这两种方式引入了文件,才可以使用相应文件中的方法、属性、常量等等。然后我们来看一下php中另一个概念——命名空间,可能我们经常能看到这样的代码,命名空间/文件::方法,曾经我以为,这就是命名空间的作用之一,可以直接调用文件中的方法,后来发现了一个关键字use,感觉这就更说得过去了,有点“引用”的意思。但是实际上不管是命名空间还是用use关键字,都不能代替include和require来引入文件。我理解的,use实际上只是给命名空间起了个别名,便于在使用长而复杂的命名空间时变的简单化。
composer
composer是一个php用来管理依赖的工具,在我们使用第三方库的时候特别方便。关于composer的介绍、安装、使用等可以参考官方网站https://www.phpcomposer.com,介绍很详细。
接下来我们进入正题,composer中有个require,可以让你使用可用的第三方库,如果你想实现这些库文件的自动加载,只需要在你的“已载入”文件中添加一行代码:require 'vendor/autoload.php';
,这是composer为我们提供的,很是方便。第三方库中文件的自动加载有着落了,然后我们来看一下自己定义的类文件如何实现自动加载。
“autoload”: {
“psr-4”: {
“Game\”: [
“app/”
]
}
}
psr-4,一个规范了如何指定文件路径从而自动加载类定义规范协议,结合composer中的autoload,就可以实现自定义类文件的自动加载了。我们要写的代码就这些,具体代码实现可参考https://www.cnblogs.com/yimingwang/p/10137141.html.这篇文章说的很详细
关于命名空间、composer和psr-4实现的自动加载
最新推荐文章于 2023-10-17 11:27:58 发布