Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 19.05.2014 13:56:21

Фасады... что еще за зверь?

Была тут статья про фасады. Посыл такой, что для того чтобы использовать метод вашего класса как SomeClass::someMethod() в любой точке скрипта давайте создадим фасад, потом еще что-то и еще...

А простой autoload нам не поможет подгрузить класс когда мы обратимся к одному из его методов?

Изменено kiowas (19.05.2014 13:56:49)

Не в сети

#2 19.05.2014 14:44:15

Re: Фасады... что еще за зверь?

Мне лично такой подход с горожением фасадов на каждый чих очень не ноавится, но автор (Тейлор) объясняет, что основная идея в легкой подмене класса на этапе тестирования (ну, или на фабрике — драйвера сессии, кэша и пр. за единым API). Но на мой взгляд, в таком масштабе плюс магия вызовов — это топорный метод. Поди найди, что на самом деле вызывается и где.

Не в сети

#3 19.05.2014 15:11:54

Re: Фасады... что еще за зверь?

Так я не понял. Autoload в Laravel не пашет без фасадов?

Не в сети

#4 19.05.2014 15:24:36

Re: Фасады... что еще за зверь?

Фасады и автозагрузка никак не связаны. Естественно загрузчик работает и сам по себе. Только правильнее сказать загрузчик composer, так как именно он используется.

Не в сети

#5 01.01.2015 03:51:44

Андрей91

Re: Фасады... что еще за зверь?

В документации сказано:

В некоторых случаях классы в массиве aliases не доступны из-за того, что PHP не загружает неизвестные классы в подсказках типов. Если \ServiceWrapper\ApiTimeoutException имеет псевдоним ApiTimeoutException, то блок try ... catch (ApiTimeoutException $e), помещённый в любое пространство имён, кроме ServiceWrapper, никогда не «поймает» это исключение, даже если оно было возбуждено внутри него.

А где находится этот ServiceWrapper?

Делаю урок по Джеффри Уэю, Custom Facades. Не находит класс, подозреваю, что проблема в этом. Подскажите, пожалуйста, где посмотреть этот ServiceWrapper.

#6 01.01.2015 09:52:57

Re: Фасады... что еще за зверь?

ServiceWrapper - это для примера приведено. В данном случае имеется в виду, что надо указывать полные пути до классов.

Фасады сделаны главным образом для новичков, которые фреймворк видят в первый раз и при работе копипастят код из доки. Если  каждый раз писать, что надо в аргумент конструктора передать нужный класс, сделать переменную в классе контроллера, и обращаться к ней из метода контроллера - человек закроет страницу и вернется на codeigniter. А если написать что-то типа "используйте Input::get()" - продолжит читать. Из-за дружелюбия к новичкам Laravel и приобрал такую популярность.

Не в сети

#7 02.01.2015 01:12:44

Андрей91

Re: Фасады... что еще за зверь?

Спасибо!!! А то я решил, что это какая-то настройка. Самому теперь стыдно.

Подвал раздела