Почему Laravel Models stati c и я должен использовать функции stati c в своих моделях? - PullRequest
0 голосов
/ 04 мая 2020

In Laravel Модели используют функции stati c, а документация использует функции stati c, чтобы показать, как работают Модели. Если я создаю новую модель для своего приложения, она расширяет базовый класс Model, но почему Laravel использует функции stati c? Я думал, что идея Stati c что-нибудь плохое? Например, это затрудняет тестирование?

Я просто запутался, так как большинство вещей можно извлечь из контейнера DI? Например, модель под названием Flight, почему она не используется в контроллере следующим образом:

namespace App\Http\Controllers;

use App\Flight;

class FlightController
{
    public __construct(Flight $flight)
    {
        $this->flight = $flight; // etc.
    }
}

И модели даже не используют Фасад? Когда я создаю свои собственные модели, я должен всегда использовать функции stati c?

1 Ответ

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

Я не уверен, что правильно понял ваш вопрос, но я думаю, что вы принимаете Фасады за методы c. Прочитайте это https://laravel.com/docs/7.x/facades#how -facades-work , Laravel использует метод magi c _callStatic() для разрешения реальных случаев. Так что это выглядит стати c, но это не так.

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