Используйте методы Arr::get() или хелпер data_get для получения значения из глубоко вложенного массива с помощью удобной "точечной" нотации. Метод data_get также поддерживает объекты!
Они также принимают значение по умолчанию, которое будет возвращено, если указанный ключ не существует.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2
Только что нашел утечку исходного кода Facebook за 2007 год 😃
Тогда не было Composer, PSR еще не существовал, а внедрение ООП шло медленно... но при этом на PHP строились огромные приложения!
Посмотрите исходный код здесь: https://gist.github.com/nikcub/3833406
👉 @PHPgx
Тогда не было Composer, PSR еще не существовал, а внедрение ООП шло медленно... но при этом на PHP строились огромные приложения!
Посмотрите исходный код здесь: https://gist.github.com/nikcub/3833406
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Перестаньте писать сложные запросы в контроллерах
Используйте специальные классы для запросов, чтобы элегантно обрабатывать агрегированные данные из нескольких моделей.
Преимущества:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Принёс вам классный ресурс для изучения паттернов проектирования
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
👉 Смотрите сами
👉 @PHPgx | #ресурсы
На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как C#, Java, Python, PHP, Rust и ещё куча других.
Всё удобно разложено по категориям — порождающие, структурные, поведенческие.
Примеры суперпонятные, с кодом и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥2
Полезные проекты для изучения Laravel
Если вы хотите освоить Laravel на практике, вот два отличных проекта для разного уровня подготовки:
✅ Для начинающих — простой личный блог
— GitHub
✅ Для продвинутых новичков — небольшая CRM
— GitHub
Эти репозитории были созданы несколько лет назад, но их задачи остаются актуальными и в 2025 году. Они помогут освоить основы Laravel и получить практический опыт.
После их прохождения можно переходить к своим небольшим проектам, искать фриланс-заказы или даже пробовать устроиться на работу.
👉 Полный roadmap по Laravel: Laravel Roadmap
👉 @PHPgx | #ресурсы
Если вы хотите освоить Laravel на практике, вот два отличных проекта для разного уровня подготовки:
— GitHub
— GitHub
Эти репозитории были созданы несколько лет назад, но их задачи остаются актуальными и в 2025 году. Они помогут освоить основы Laravel и получить практический опыт.
После их прохождения можно переходить к своим небольшим проектам, искать фриланс-заказы или даже пробовать устроиться на работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Какой PHP-фреймворк вам наиболее интересен? (Это поможет мне создавать контент, который вам будет полезен)
Anonymous Poll
63%
Laravel
34%
Symfony
4%
CodeIgniter
15%
Yii
3%
Zend Framework / Laminas
3%
CakePHP
3%
Phalcon
5%
Slim
33%
Хочу читать больше про чистый PHP
2%
Другое (пишите в комментариях)
👍13
Ты знаешь о пакетах Polyfill?
Возможно, ты встречал концепцию полифилов во фронтенде для обеспечения совместимости с разными браузерами. Но версии PHP тоже можно "полифиллить" благодаря Symfony.
Что такое полифил? Это устанавливаемый пакет, который добавляет функциональность новых версий PHP в более старые.
Например, ты можешь использовать функцию json_validate из PHP 8.2, хотя она была добавлена только в PHP 8.3. Существует даже полифил для PHP 8.4.
Ты когда-нибудь добавлял полифил в свой проект?
👉 Документация здесь: https://github.com/symfony/polyfill
👉 @PHPgx
Возможно, ты встречал концепцию полифилов во фронтенде для обеспечения совместимости с разными браузерами. Но версии PHP тоже можно "полифиллить" благодаря Symfony.
Что такое полифил? Это устанавливаемый пакет, который добавляет функциональность новых версий PHP в более старые.
Например, ты можешь использовать функцию json_validate из PHP 8.2, хотя она была добавлена только в PHP 8.3. Существует даже полифил для PHP 8.4.
Ты когда-нибудь добавлял полифил в свой проект?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Вещи, которые ускорят разработку на проектах с большим количеством pull-реквестов и веток. Используйте GitHub CLI для переключения между ветками
1. Установите CLI от GitHub —
2. Аутентифицируйте CLI в GitHub.
3. Перейдите к pull-реквесту, который хотите выкачать.
4. Скопируйте нужную команду из кнопки «<> Code».
5. Вставьте её в терминал и запустите.
Теперь вам не нужно вручную искать ветку и переключаться на неё или загружать обновления.
У вас будет либо самая актуальная версия с GitHub, либо последняя версия на вашем компьютере, если локальная ветка опережает удалённую.
Этот процесс экономит мне кучу времени на поиске нужной ветки.
👉 @PHPgx
1. Установите CLI от GitHub —
gh.2. Аутентифицируйте CLI в GitHub.
3. Перейдите к pull-реквесту, который хотите выкачать.
4. Скопируйте нужную команду из кнопки «<> Code».
5. Вставьте её в терминал и запустите.
Теперь вам не нужно вручную искать ветку и переключаться на неё или загружать обновления.
У вас будет либо самая актуальная версия с GitHub, либо последняя версия на вашем компьютере, если локальная ветка опережает удалённую.
Этот процесс экономит мне кучу времени на поиске нужной ветки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Полный курс PHP для начинающих и продвинутых
Плейлист 'Learn PHP The Right Way' предлагает полный курс по PHP 8, охватывая темы от основ до продвинутых практик. Видеоуроки включают работу с безопасностью, кэшированием, тестированием и многим другим.
Отличный выбор для тех, кто хочет изучить PHP с нуля и применять его на практике
На данный момент доступно 139 видео
👉 @PHPgx | #курсы #en
Плейлист 'Learn PHP The Right Way' предлагает полный курс по PHP 8, охватывая темы от основ до продвинутых практик. Видеоуроки включают работу с безопасностью, кэшированием, тестированием и многим другим.
Отличный выбор для тех, кто хочет изучить PHP с нуля и применять его на практике
На данный момент доступно 139 видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Используешь ли ты команду
Это функция Composer, о которой не часто упоминают, поэтому я решил поделиться своими мыслями на этот счет.
Для разработчиков пакетов она не так полезна, но если ты пишешь приложение, то это может быть довольно мощным инструментом.
— Что же делает команда
Она берет версию зависимостей верхнего уровня, которая указана в файле
Например, предположим, что в файле
— Зачем это нужно?
При использовании Composer всегда есть небольшой риск, что ты случайно откатишь версию и не заметишь этого в выводе Composer. Это может случиться, если ты запустил обновление, которое привело к даунгрейду.
Запустив
👉 @PHPgx | #tips
composer bump в своих PHP-приложениях?Это функция Composer, о которой не часто упоминают, поэтому я решил поделиться своими мыслями на этот счет.
Для разработчиков пакетов она не так полезна, но если ты пишешь приложение, то это может быть довольно мощным инструментом.
— Что же делает команда
composer bump?Она берет версию зависимостей верхнего уровня, которая указана в файле
composer.lock, и обновляет файл composer.json с этой новой версией.Например, предположим, что в файле
composer.json у тебя указано laravel/framework как ^11.0, но в composer.lock установлена версия 11.38.2. Тогда при запуске команды bump, версия laravel/framework в composer.json автоматически обновится до ^11.38.2.— Зачем это нужно?
При использовании Composer всегда есть небольшой риск, что ты случайно откатишь версию и не заметишь этого в выводе Composer. Это может случиться, если ты запустил обновление, которое привело к даунгрейду.
Запустив
composer bump, ты автоматически укажешь в файле composer.json, что хочешь использовать именно ту версию, которая установлена в проекте.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5
Вы, наверное, уже знакомы с трэйтом Prunable, который есть в Laravel.
Этот трэйт позволяет настроить периодическое удаление ненужных моделей из вашей таблицы.
Но знали ли вы, что можно добавить метод pruning() в ваш класс модели? Он будет автоматически вызываться при удалении модели в процессе очистки.
Это может быть полезно, если вам нужно выполнить дополнительные операции вместе с удалением.
Например, вы можете вызвать API стороннего сервиса, чтобы удалить ресурс там же
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
VK, как НЕ НАДО собеседовать middle разработчиков
Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.
Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.
В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.
👉 Читать
➡️ @PHPgx | #cтатья
Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.
Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.
В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21❤4👍3
В PHP переменная
Есть ли рекомендуемый стандарт?
Согласно PSR-1, выбор стиля именования переменных — это личное предпочтение, главное, чтобы стиль был последовательным в коде проекта.
Цитата из PSR-1 (раздел 4.2) о свойствах классов (что можно применить и к обычным переменным):
Таким образом, оба варианта допустимы, но важно, чтобы стиль был единообразным в коде.
Подробнее можно прочитать здесь: PSR-1 (пункт 4.2)
Также прочитайте эту тему на Reddit: Какой стандарт именования вы используете для переменных?
👉 @PHPgx | #tips
$preference_type соответствует стилю snake_case, а $preferenceType — camelCase.Есть ли рекомендуемый стандарт?
Согласно PSR-1, выбор стиля именования переменных — это личное предпочтение, главное, чтобы стиль был последовательным в коде проекта.
Цитата из PSR-1 (раздел 4.2) о свойствах классов (что можно применить и к обычным переменным):
Этот стандарт намеренно избегает рекомендаций по использованию $StudlyCaps, $camelCase или $under_score для имен свойств.
Какой бы стиль именования ни использовался, он ДОЛЖЕН применяться последовательно в разумных пределах. Эти пределы могут быть на уровне вендора, пакета, класса или метода.
Таким образом, оба варианта допустимы, но важно, чтобы стиль был единообразным в коде.
Подробнее можно прочитать здесь: PSR-1 (пункт 4.2)
Также прочитайте эту тему на Reddit: Какой стандарт именования вы используете для переменных?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Тестирование маршрутизации поддоменов в Laravel — это довольно сложная задача. Вы не можете просто жестко задать корневой домен, так как, очевидно, у вас не будет доступа к этому домену локально.
Вместо этого рассмотрите возможность добавления макроса "subdomain" в фасад Route, чтобы автоматически устанавливать корневой домен, используя URL из конфигурации вашего приложения.
👉 @PHPgx | #tips
Вместо этого рассмотрите возможность добавления макроса "subdomain" в фасад Route, чтобы автоматически устанавливать корневой домен, используя URL из конфигурации вашего приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7