太原PHP培训
达内太原php培训中心

0351-5608878

热门课程

你所不知道的 PHP(二)

  • 时间:2016-11-07
  • 发布:SegmentFault
  • 来源:SegmentFault

你所不知道的 PHP(二)

php中有很多的小秘密,得知这些小秘密对你的发展很有好处。太原php培训班来告诉你。

composer 执行 install 等操作时, composer 会把文件中的配置存储在 vendor/composer/autoload_psr0.php 文件中的返回数组中。

例如:定义了Very\Good=>vendor\Lionis\IsReal\Cool,在调用 use Very\Good\Love\SomeClass PSR-0 加载的实际目录为 vendor/Lionis/IsReal/Cool/Very/Good/Love/SomeClass.php

对吧,这简直深得吓人,所以 PSR-0 被官方废除了。但是一些主流的框架已经实现了 PSR-0 ,为了向下兼容还是要实现 PSR-0

composer.json配置:

"autoload": {

"psr-0": {

"Very\\Good": "vendor\Lionis\IsReal\Cool"

}

}

PSR-4

PSR-4 是现在比较推荐的方法,用于替代 PSR-0

PSR-0 不同的是,取消掉了 _ 作为分隔符和目录结构。

composer 执行 install 等操作时, composer 会把文件中的配置存储在 vendor/composer/autoload_psr4.php 文件中的返回数组中。

例如:定义了Very\Good=>vendor\Lionis\IsReal\Cool,在调用 use Very\Good\

Love\SomeClass PSR-4 加载的实际目录为 vendor/Lionis/IsReal/Cool/Love/SomeClass.php

composer.json配置:

"autoload": {

"psr-4": {

"Very\\Good": "vendor\Lionis\IsReal\Cool"

}

}

classmap

classmap 通过配置指定的目录和文件,在 composer 执行 install 等操作时, composer 会去扫描对应的目录下以 .php 结尾的文件中的 class ,并存储在 vendor/composer/autoload_classmap.php 文件中的返回数组中。

composer.json配置:

"autoload": {

"classmap": [

"Lionis/",

"Xiaoer/"

]

}

如果 Lionis 下有一个叫 VeryCool的文件,那么在 vendor/composer/autoload_classmap.php 中会生成。

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));

$baseDir = dirname($vendorDir);

return array(

'VeryCool' => $baseDir . '/Lionis/VeryCool.php',

// 其他的映射

);

files

files 就是直接简单粗暴的加载文件。在 composer 执行 install 等操作时, composer 会把文件中的配置存储在 vendor/composer/autoload_static.php 文件中的生成一个 $files 数组。

composer.json 配置:

"autoload": {

"files": ["Lionis/Very/Cool.php"]

}

小结

composer 通过使用 composer.json ,用 json 的格式来指定我们需要 自动加载 的规则 。我们只要在入口文件引入 vendor/autoload.php 就能很方便的便能使用 自动加载

如果你对 composer 实现 自动加载 的原理感兴趣,可以顺着 vendor 中的 autoload.php 去看看源码。

总结

石器时代 信息时代 PHP 经历了很多试验和改变后正在变得越来越好。当然,许多优秀的框架让我们开发速度更快,需要理解的一些知识点也随之被隐藏起来,让我们更加专注于实现逻辑。但是,我们有的时候还是要尝试的去理解他们工作的原理,来提升我们自己。像我老师说过的,所不定一下子踩到狗屎运了呢。

好了,今天就给大家讲这么多吧,喜欢我的内容可以关注或者分享(微信公众平台:tytedu)选择太原达内培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!

上一篇:你所不知道的 PHP(一)
下一篇:当tinyproxy遇上php的soap

太原php培训资源站

太原PHP编程开发并发编程槽与坑

Php开发规划自己的路

太原php培训老生常谈php

选择城市和中心
贵州省

广西省

海南省

台湾