en
Feedback
KRUHLYK 🇺🇦

KRUHLYK 🇺🇦

Open in Telegram
1 203
Subscribers
+224 hours
-17 days
+7930 days
Posts Archive
Repost from N/a
#випитали Що таке Reflection API? Reflection у PHP — це можливість "зазирнути всередину" класів, об’єктів, методів, властивостей та навіть анотацій (атрибутів). Тобто ти можеш під час виконання коду дізнатись: - які методи є у класу; - які параметри приймає конструктор; - які атрибути навішані на метод; - які типи очікують аргументи; - і навіть можеш викликати методи або створювати об’єкти без знання класу на етапі написання коду. Звучить магічно — і так і є. Але магію треба використовувати з головою. Навіщо Reflection у Laravel? (практичні кейси) 1. Автоматична реєстрація Route-ів / Command-ів / Event Listener-ів Laravel дуже залежний від контейнера, сервісів, автодискавері й метаданих. Reflection дозволяє автоматично аналізувати класи й вирішувати, що з ними робити. Наприклад, ти хочеш, щоб усі твої команди в App/Console/Commands автоматично реєструвалися, не дописуючи їх вручну. Спрощений приклад:
$commandClasses = scandir(app_path('Console/Commands'));

foreach ($commandClasses as $file) {
    if (str_contains($file, '.php')) {
        $class = "App\\Console\\Commands\\" . str_replace('.php', '', $file);
        $reflection = new ReflectionClass($class);

        if ($reflection->isSubclassOf(\Illuminate\Console\Command::class)) {
            Artisan::starting(function ($artisan) use ($class) {
                $artisan->resolve($class);
            });
        }
    }
}
Reflection тут допомагає визначити: чи це справді команда? Без рефлексії прийшлося б жорстко хардкодити всі назви. 2. Dependency Injection (внутрішня магія Laravel) Коли ти в контролері пишеш:
public function store(Request $request, UserService $service)
Laravel контейнер читає параметри твого методу через Reflection: - бачить, що треба Request — створює його - бачить UserService — та ж історія - підставляє у метод Це чиста Reflection. Ти її не викликаєш руками, але вона працює під капотом щосекунди. 3. Автодісковері сервіс-провайдерів У Laravel 8+ знайдеш у composer.json:
"extra": {
    "laravel": {
        "providers": [
            "Vendor\\Package\\MyServiceProvider"
        ]
    }
}
Але коли пакет використовує автоматичне визначення сервіс-провайдерів, Reflection дозволяє Laravel знайти всі класи-провайдери, які розширюють ServiceProvider, без ручної реєстрації. 4. Атрибути (PHP 8 Attributes) в Laravel Laravel підтримує атрибути наприклад у кастомних валідаціях або маршрутах.
#[Get('/users')]
public function index() {}
Або власний атрибут:
#[MyCustomRole('admin')]
public function destroy() {}
Щоб дістати атрибут, Laravel використовує Reflection:
$reflection = new ReflectionMethod($controller, 'destroy');
$attributes = $reflection->getAttributes(MyCustomRole::class);

foreach ($attributes as $attr) {
    $instance = $attr->newInstance();
    // тут можна дістати 'admin'
}
Далі наступним постом 👇

Voice message00:56

Voice message00:01

Video message00:55

А тим часом вже PHP 8.1 перестав підтримуватись. Знаю, що у вас багато проєктів ще на 7.4 висять. Час оновлюватись, шановні.
А тим часом вже PHP 8.1 перестав підтримуватись. Знаю, що у вас багато проєктів ще на 7.4 висять. Час оновлюватись, шановні. Давно час!

Починати понеділок треба правильно. Смачної кавусі!
Починати понеділок треба правильно. Смачної кавусі!

В цікавий час живемо
В цікавий час живемо

Доречі, знайшов круту перевагу у ШІ. Кажеш йому «пиши на РНР», він і пише на РНР, а не гундить «та нууууу, давай краще на Go напишемо!..».

Знайшов, курва мать!!! Зайшов на стрім Nuno Maduro і команда, якою запускається hot reload: ./native run i -W. Тобто ранимо дев сервер для iOS в режимі вотчера. Чомусь через artisan це все ніхєраськи не працювало. Зараз дуже швидко реалоадить зміни. Ой шо будееее, ой шо бууууудееее!!! Не пропускайте стріми. Будему цю шнягу колупади вздовж і впоперек.

Ну шо, без ШІшки нікуди. Поборов кнопочку і алерт тепер раниться 🤙🏻 Так, наступні стріми обіцяю без лажі і будемо рухатись в подуові аплікухи в реальних умовах! 💪🏻

Сорямба за пробелми зі звуком, народ. Але то після довгої перерви, ще й в пʼятницю завжди так буває 😅

Готовність 15 хвилин! https://youtube.com/live/5EicpbxI4BM

Доброго ранку, панство! Смачну кавусю всі посьорбали? ☕️ Дружньо нагадую, що деплоїти ваші поробки або поробки вашого агента сьогодні западло. Не робіть цього, поважайте цей час!

А ви в якому факультеті?
А ви в якому факультеті?

Claude Code тепер може генерити дизайни прямо в Figma. Коло замкнулось. Кодери, які не вміють в дизайн будуть робити дизайни
Claude Code тепер може генерити дизайни прямо в Figma. Коло замкнулось. Кодери, які не вміють в дизайн будуть робити дизайни дизайнерам, які не вміють в код. Найс.

Стріми повертаються! Збираємось в цю пʼятницю о 15:00! Будемо дивитись що таке NativePHP і як ми можемо будувати апки для мобілки на PHP. Беремо смачненьке, класний настрій і бажання подивитись на щось нове 😎 https://youtube.com/live/5EicpbxI4BM

Якщо ви мене спитаєте що найубогіше та найкріповіше зі світу розробки разом з AI я бачив, так це Agentic Coding в Xcode 26.3.
Якщо ви мене спитаєте що найубогіше та найкріповіше зі світу розробки разом з AI я бачив, так це Agentic Coding в Xcode 26.3. Найгірший експірієнс евер в приницпі з останні місяці роботи з такими інструментами.

Тут наш СТО (старший механік нашої станції техобслуговування) виктив в робочий слак статтю мовляв це "революшн, Джонні". Але ж ми з вами на стрімах вже це спробували і знаємо як це все працює 😉 https://proandroiddev.com/figma-mcp-x-claude-delivering-ui-in-mins-a8144e23dc16 Доречі, про стріми. Думаю повертатись до стрімів і на тижні спробувати щось на PHP під мобілку зробити. Що скажете? 💁‍♂️

Кавусю вже всі попили? Понеідлок норм? Як настрій, колеги? ☕️

Піду в Спотіфай подавати CV. Я готовий до цієї роботи.
Піду в Спотіфай подавати CV. Я готовий до цієї роботи.

KRUHLYK 🇺🇦 - Statistics & analytics of Telegram channel @lets_code_ua