Laravel在哪里声明名称空间?

时间:2018-10-11 07:45:26

标签: laravel laravel-5.4

我在php中了解到,要使用命名空间,您必须先声明或包含。

<?php
    namespace namespace_01;

    function f1()
    {
        echo 'this is function';
    }

    use namespace_01 as test_namespace;
    test_namespace\f1();
?>

几乎所有的laravel代码都使用名称空间。但是它们在哪里定义?

示例

当我创建一个控制器时。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class controller1 extends Controller
{
    //
} 

Illuminate\Http\Request在哪里定义?

2 个答案:

答案 0 :(得分:2)

这些内容可以在Laravel Framework中找到。 Laravel使用composer自动加载这些软件包。您可以在/vendor文件夹中找到源文件,这是composer放置软件包的地方。

答案 1 :(得分:2)

打开vendor/laravel/framework/src/Illuminate/Http/Request.php中的文件

您将看到在顶部声明为namespace Illuminate\Http;的名称空间,并且类名为Request

,您可以在composer.json文件中看到

"autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },

因此,App文件夹中的所有类都将自动随Composer以及供应商文件加载。您不需要每次都包含文件。