psr-0 和 psr-4

Posted qq59538308

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了psr-0 和 psr-4相关的知识,希望对你有一定的参考价值。

PSR-4 is something like ‘relative path‘, PSR-0, ‘absolute path‘.

e.g.

config:

‘App\Controller‘ => ‘dir/‘

PSR-0 autoload:

App\Controller\IndexController --> dir/App/Controller/IndexController.php

PSR-4 autoload:

App\Controller\IndexController --> dir/IndexController.php

And there are some more difference in details between PSR-0 and PSR-4, see here: http://www.php-fig.org/psr/psr-4/

 

=======

They are very similar so it is not surprising that it‘s a bit confusing. The summary is that PSR-0 had some backwards compatibility features for PEAR-style classnames that PSR-4 dropped, as such it only supports namespaced code. On top of that PSR-4 does not force you to have the whole namespace as a directory structure, but only the part following the anchor point.

For example if you define that the Acme\Foo\ namespace is anchored in src/, with PSR-0 it means it will look for Acme\Foo\Bar in src/Acme/Foo/Bar.php while in PSR-4 it will look for it in src/Bar.php, allowing for shorter directory structures. On the other hand some prefer to have the full directory structure to clearly see what is in which namespace, so you can also say that Acme\Foo\ is in src/Acme/Foo with PSR-4 which will gives you the equivalent of the PSR-0 behavior described above.

Long story short for new projects and for most intents and purposes, you can use PSR-4 and forget all about PSR-0.

=======

 

https://stackoverflow.com/questions/24868586/what-is-the-difference-between-psr-0-and-psr-4

 

以上是关于psr-0 和 psr-4的主要内容,如果未能解决你的问题,请参考以下文章

PSR规范

PSR规范

psr规范发展历程

PHP7 学习笔记PHP PSR-4 Autoloader 自动加载

Composer 的自动加载机制

PSR : php编码规范