🧱 Суть
В Laravel часто встречаются два способа обращения к функциональности:
->– работа с объектом::– обращение к классу (или фасаду)
При этом многие вызовы через :: в Laravel – это не настоящие static-методы, а фасады (Facade).
📦 Проблема
1. Кажется, что Facade – это static-класс
Schema::table(...)Выглядит как обычный статический вызов, но внутри Laravel работает иначе.
2. Путают :: и ->
Schema::table(...)$user->save()Оба варианта вызывают методы, но относятся к разным сущностям.
3. Непривычный стиль оформления PHP
class User{}Кажется странным после JavaScript, где { обычно ставят на той же строке.
✅ Решение
Разделять три понятия:
- Facade
::и->- стандарты оформления PHP
💻 Код
Facade – это удобная оболочка (прокси) для доступа к сервисам Laravel.
Например:
Cache::get('users');Laravel внутри делает примерно следующее:
$app->make('cache')->get('users');То есть Cache – не настоящий static-класс, а прокси к объекту.
Популярные фасады:
Schema– работа со схемой БДDB– SQL-запросыCache– кэшAuth– авторизацияRoute– маршрутыStorage– работа с файлами
:: и ->
Работа с объектом:
$user->save();$user->name;Работа с классом:
Math::sum();Настоящий static:
class Math
{
public static $pi = 3.14;
}
Math::$pi;Стиль оформления PHP
По стандарту PSR открывающая фигурная скобка переносится на новую строку:
class User
{
}
Это официальный стиль оформления PHP, которого придерживается Laravel.
🎯 Вывод
- Facade – это прокси к сервису, а не настоящий static-класс
->используется для объектов::используется для классов и фасадов- Laravel активно использует оба подхода
- стиль оформления с переносом
{соответствует стандартам PSR