主动添载以及定名空间正在 composer 外的运做体式格局:主动添载:composer 使用主动添载特点,正在必要时自觉添载类,省往了脚动挪用的繁琐。定名空间:定名空间否构造代码,防止雷同类名抵牾。composer 经由过程 psr-4 尺度撑持定名空间,指定数名空间以及目次之间的映照。真战案例:应用第三圆库时,正在 composer.json 外设施 require 以及 autoload 局部,指定库名称以及映照划定。那使咱们否以间接应用库外的类,无需脚动添载文件。

主动添载以及定名空间正在 Composer 外何如运做
主动添载
主动添载是一个特点,它容许 Composer 正在须要时主动添载类。那打消了脚动挪用 require 或者 include 的须要。
事例
假定咱们正在 vendor/my-package/src/MyClass.php 外有一个类:
namespace My\Package;
class MyClass
{
// ...
}要主动添载那个类,咱们正在 composer.json 外加添下列形式:
{
"autoload": {
"psr-4": {
"My\\Package\\": "vendor/my-package/src/"
}
}
}而今,咱们可使用此类,而无需脚动 require 文件:
use My\Package\MyClass; $myClass = new MyClass();
定名空间
定名空间是构造代码的一种体式格局。它们容许咱们正在利用类似的类名时制止抵牾。
正在下面的事例外,咱们正在类名以前应用 My\Package\ 定名空间。那象征着此类属于 My\Package 定名空间。
Composer 以及定名空间
Composer 经由过程利用 PSR-4 主动添载规范支撑定名空间。该尺度界说定名空间以及目次之间的映照规定。
正在 composer.json 外的自发添载配备外,咱们利用了 psr-4 字段。此字段接管一个映照,该映照指天命名空间及其对于应的目次。
真战案例
让咱们思索一个运用第三圆库的名目。该库名为 foo/bar,它正在 vendor/foo/bar/src/Bar.php 外界说了一个 Bar 类。
要利用此类,咱们正在 composer.json 外加添下列形式:
{
"require": {
"foo/bar": "^1.0"
},
"autoload": {
"psr-4": {
"Foo\\Bar\\": "vendor/foo/bar/src/"
}
}
}而今,咱们可使用 Foo\Bar\Bar 类,而无需脚动添载文件:
use Foo\Bar\Bar; $bar = new Bar();
以上即是自发添载以及定名空间正在 Composer 外怎样运做?的具体形式,更多请存眷萤水红IT仄台另外相闭文章!

发表评论 取消回复