目录结构和在php中的使用

时间:2015-10-08 20:38:50

标签: php laravel

我刚刚浏览了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的使用方式吗?

2 个答案:

答案 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库都被称为自动加载器可以镜像目录结构,但不一定非。