Задать вопрос
@kirill-93

Несколько вопросов по php?

Добрый день. Накопилось несколько вопросов, подскажите, как правильно.
1) В Laravel есть сервис контейнер. Рекомендуется инжектить нужный класс в конструктор или, если вы находитесь вне контейнера, то использовать make:
$api = $this->app->make('HelpSpot\API');
То есть вообще не нужно никогда создавать объекты через new? Только через type-hint или make?
С инжектом все понятно, но я не понимаю, какую гибкость дает make, ведь в случае замены класса, нам все равно придется идти и менять класс во всех местах.
Там еще есть binding и можно инжектить класс интерфейса, а получать экземпляр его класса, но тут же сказано:
There is no need to bind classes into the container if they do not depend on any interfaces. The container does not need to be instructed on how to build these objects, since it can automatically resolve these objects using reflection.

Должен ли я все свои классы создавать через интерфейсы и биндить их?

2) Уже спрашивал, но не получил ответа.
class Gibhub implements VCSInterface
{
    public function getRepositories(string $author) array
    {
        $response = Http::get('api.github.com/...')->json();

        if (!isset($response['key']) {
            throw new Exception('Not found');
        }

        return $response;
    }
}

У меня есть вот такой код, но PhpStorm подсвечивает "throw new Exception" с комментарием "Unhandled Exception". Зачем он это делает? Планируется вызывать этот метод и оборачивать его в try-catch.

3) Я прочел вот такую рекомендацию о Laravel
It’s better not to use query builders inside controllers
.
Является ли хорошим тоном выносить всю работу с моделями в отдельные классы и держать контроллеры тонкими?

Спасибо.
  • Вопрос задан
  • 317 просмотров
Подписаться 2 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽