Size: a a a

2020 December 17

MW

Maxyc Webber in Laravel UA
ну такое извращение точно не надо. потом ни одно IDE нормально не покажет, где используются классы
источник

MW

Maxyc Webber in Laravel UA
да и назвать я хочу как мне душе угодно
источник

В

Вячеслав in Laravel UA
Такое извращение используется во многих местах в фреймворке и позволяет добиться гибкости без нужды редактировать каждый раз карту
источник

IS

Illia Sakovich in Laravel UA
Вячеслав
Такое извращение используется во многих местах в фреймворке и позволяет добиться гибкости без нужды редактировать каждый раз карту
В ларе немного иначе, если речь о менеджерах
Там динамически генерируются названия методов менеджера, который создают объект
источник

MW

Maxyc Webber in Laravel UA
+
источник

IS

Illia Sakovich in Laravel UA
А сами классы могут при этом иметь любое название
источник

В

Вячеслав in Laravel UA
Это таже конвенция
источник

MW

Maxyc Webber in Laravel UA
а подскажите ссылочку чтобы понимать контекст конвенции
источник

MW

Maxyc Webber in Laravel UA
не знаком с данным термином
источник

В

Вячеслав in Laravel UA
Динамическая геренация названия чего угодно, метода, класса, функции на основании какой-то строки.
источник

MW

Maxyc Webber in Laravel UA
типа whereStatus(1)  where('status', 1)?
источник

YH

Yurii Horbal in Laravel UA
Maxyc Webber
а подскажите ссылочку чтобы понимать контекст конвенции
источник

В

Вячеслав in Laravel UA
Не думаю что это специфический для разработки термин, обычно в сообществе говорят "naming convention", т.е. какое-то соглашение по наименованию.

Допустим тот кейс о котором говорит Илья выглядит примерно так:

В конфигах у нас указывается драйвер для обработки кеша строкой с маленькой буквы: redis, memcached, file.

Мы определяем, что методы для создания драйвера будут называться в формате create{DriverName}Driver - в скобки я выделил то что будет меняться в зависимости от значения в конфиге, т.е. createRedisDrver, createMemcachedDriver ...

А дальше логика примерно такая:
$method = 'create' . Str::studly(config('cache.default')) . 'Driver'
$driver = $cache->$method;
источник

MW

Maxyc Webber in Laravel UA
это не так )
источник

В

Вячеслав in Laravel UA
Maxyc Webber
типа whereStatus(1)  where('status', 1)?
Это в целом тоже конвенция
источник

MW

Maxyc Webber in Laravel UA
Вячеслав
Это в целом тоже конвенция
держусь подальше от такой магии и другим по рукам даю
источник

MW

Maxyc Webber in Laravel UA
Вячеслав
Не думаю что это специфический для разработки термин, обычно в сообществе говорят "naming convention", т.е. какое-то соглашение по наименованию.

Допустим тот кейс о котором говорит Илья выглядит примерно так:

В конфигах у нас указывается драйвер для обработки кеша строкой с маленькой буквы: redis, memcached, file.

Мы определяем, что методы для создания драйвера будут называться в формате create{DriverName}Driver - в скобки я выделил то что будет меняться в зависимости от значения в конфиге, т.е. createRedisDrver, createMemcachedDriver ...

А дальше логика примерно такая:
$method = 'create' . Str::studly(config('cache.default')) . 'Driver'
$driver = $cache->$method;
спасибо. стало понятнее
источник

MW

Maxyc Webber in Laravel UA
не, я противник любой магии
источник

В

Вячеслав in Laravel UA
Ещё пример конвении аксессоры и мутаторы - https://laravel.com/docs/master/eloquent-mutators#accessors-and-mutators
источник

YH

Yurii Horbal in Laravel UA
Магії місце в хогвардсі
источник