Где пространства имен объявлены в Laravel? - PullRequest
0 голосов
/ 11 октября 2018

Я узнал в 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 голосов
/ 11 октября 2018

Открыть файл из vendor/laravel/framework/src/Illuminate/Http/Request.php

Там вы увидите пространство имен, объявленное сверху как namespace Illuminate\Http;, и имя класса Request

, и вы можете увидеть в вашем composer.json file

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

, поэтому все классы в папке App автоматически загружаются с помощью composer, а также файлов vendor.Вам не нужно каждый раз включать файлы.

0 голосов
/ 11 октября 2018

Они находятся в Laravel Framework .Laravel использует composer для автоматической загрузки этих пакетов.Вы можете найти источник в вашей папке /vendor, именно здесь композитор помещает пакеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...