Raw PHP против Laravel Framework: файл 'include' - PullRequest
0 голосов
/ 03 мая 2020

Я рассматриваю базовые c концепции в Laravel, и у меня возникает концептуальный вопрос.

В Raw PHP:

Когда я хочу создать объект класс (например, пользователь), который находится в другом каталоге (например, приложение \ пользователь. php) с пространством имен (например, пространство имен приложения), я должен сначала включить этот файл (используя include 'app / user. php' ), а затем добавьте «use» (используйте App \ User).

<?php

include 'app/user.php'; // including the file

use App\User;

$user = new User('John');

Однако в Laravel я видел, что они вообще не содержат никаких файлов. Они просто добавляют ключевое слово 'use' (use App \ User. php), а затем могут создать его экземпляр. ($ user = User :: find (1)).

<?php

namespace App\Http\Controllers;

use App\User;

class UserController extends Controller
{

public function index()
{
    $user = User::find(1);
}
}

Может кто-нибудь объяснить, как это происходит?

1 Ответ

0 голосов
/ 03 мая 2020

Это не laravel функция, это autoload_class с php.

In https://www.php.net/manual/en/language.oop5.autoload.php

Функция spl_autoload_register() регистрирует любую количество автозагрузчиков, позволяющих автоматически загружать классы и интерфейсы, если они в данный момент не определены. Зарегистрировав автозагрузчики, PHP предоставляется последний шанс загрузить класс или интерфейс, прежде чем он завершится с ошибкой.

Все классы существуют в composer файле автозагрузки:

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