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的主要内容,如果未能解决你的问题,请参考以下文章