我刚刚浏览了laravel文档 HERE ,并遇到了以下代码:
<?php
namespace App\Providers;
use Riak\Connection;
use Illuminate\Support\ServiceProvider;
class RiakServiceProvider extends ServiceProvider
{
/**
* Register bindings in the container.
*
* @return void
*/
public function register()
{
$this->app->singleton('Riak\Contracts\Connection', function ($app) {
return new Connection(config('riak'));
});
}
}
我是php的use
的新手,几天前刚刚学会了它的功能,现在做了use
,当与laravel这样的框架一起使用时,其中一个类可以完全在一个目录中不同于另一个,需要指定目录结构吗?
即。目录结构会影响use
的使用方式吗?
答案 0 :(得分:2)
PHP中的use
语句(在类外部使用时)用于从另一个名称空间导入类。命名空间和文件夹结构不一定对应,但通常非常接近。
Laravel使用的自动加载器和大多数其他现代PHP应用程序是Composer包管理器的一部分。 Composer反过来支持多个命名空间标准,最值得注意的是PSR-0及其后继者PSR-4。
在composer.json
文件中,您通常会指定一个自动加载的命名空间,以及一个基本目录,如下所示:
{
"autoload": {
"psr-4": {
"My\\Namespace\\": "src"
}
}
}
src/
目录中的任何类都应位于My\Namespace
目录中。 src/Model
中的类应具有名称空间My\Namespace\Model
,依此类推。
答案 1 :(得分:0)
现在很多PHP库都被称为自动加载器,可以镜像目录结构,但不一定非。