Когда-нибудь приходилось делать
Все константы можно получить в массив с помощью
На скриншотах пример, как достали все Render Hooks у Filament
👉 @PHPgx
foreach по КОНСТАНТАМ PHP-класса?Все константы можно получить в массив с помощью
ReflectionClassНа скриншотах пример, как достали все Render Hooks у Filament
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Нужно защитить чувствительные роуты, например, публикацию репозиториев или удаление аккаунтов?
Добавь к маршруту middleware
Документация: https://laravel.com/docs/12.x/authentication#password-confirmation-protecting-routes
👉 @PHPgx
Добавь к маршруту middleware
password.confirm. Пользователю придётся заново ввести пароль перед продолжением.Документация: https://laravel.com/docs/12.x/authentication#password-confirmation-protecting-routes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5
Совет по PHP
Если нужно проверить, является ли строка корректным кликабельным URL, можно использовать функцию
Упрощённый пример — добавить префикс
👉 @PHPgx
Если нужно проверить, является ли строка корректным кликабельным URL, можно использовать функцию
filter_var() с флагом FILTER_VALIDATE_URL.Упрощённый пример — добавить префикс
"https://" в случае, если пользователь его забыл.Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍4
Когда я провожу ревью Laravel-проекта, вот несколько вещей, которые я обычно меняю при первом же взгляде. Без компромиссов. Это меняет всё
👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7👎6
7 крупных опенсорс проектов, написанных на чистом PHP (без фреймворка)
👉 @PHPgx
1. Matomo — это ведущая свободная (Free/Libre) платформа веб-аналитики с открытым исходным кодом.
2. OpenCart — это бесплатная платформа для e-commerce, предназначенная для онлайн-продавцов
3. Kimai — это профессиональное приложение для трекинга времени
4. Friendica — это платформа для децентрализованного социального взаимодействия, объединяющая независимые социальные и корпоративные сервисы
5. Grocy — это веб-приложение для самостоятельного хостинга, предназначенное для управления запасами продуктов и бытовыми делами дома
6. osTicket — это система тикетов для поддержки пользователей. Она объединяет обращения, созданные по email, телефону и через веб-формы, в едином удобном мультипользовательском веб-интерфейсе
7. Kanboard — это софт для управления проектами, ориентированный на методологию Kanban.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
Совет по Laravel
Нужно разное поведение для разных поддоменов?
Используйте роутинг по поддоменам, чтобы обрабатывать мультиарендные приложения, версии API или региональный контент
Ссылка на доку: https://laravel.com/docs/12.x/routing#route-group-subdomain-routing
👉 @PHPgx
Нужно разное поведение для разных поддоменов?
Используйте роутинг по поддоменам, чтобы обрабатывать мультиарендные приложения, версии API или региональный контент
Ссылка на доку: https://laravel.com/docs/12.x/routing#route-group-subdomain-routing
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4😁2
Новый пакет hdaklue/LaraPath: билдер путей для PHP с поддержкой стратегий санитизации и интеграцией с Laravel
https://github.com/hdaklue/LaraPath
Посмотрите на примеры проблем и сценариев использования на скриншотах.
Больше реальных кейсов здесь:
https://github.com/hdaklue/LaraPath/blob/master/real-world-problems.md
👉 @PHPgx
https://github.com/hdaklue/LaraPath
Посмотрите на примеры проблем и сценариев использования на скриншотах.
Больше реальных кейсов здесь:
https://github.com/hdaklue/LaraPath/blob/master/real-world-problems.md
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2❤1
Совет по PHP
Совместите мощь генераторов с
Посмотрите пример, чтобы узнать, как это сделать
👉 @PHPgx
Совместите мощь генераторов с
SplFileObject, чтобы обрабатывать ОГРОМНЫЕ CSV-файлы, не беспокоясь о памяти!Посмотрите пример, чтобы узнать, как это сделать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6
Метод
👉 @PHPgx
toRawSql в Laravel возвращает «сырой» SQL-запрос со всеми подставленными параметрами. Это удобный способ быстро увидеть сгенерированный SQL, а также скопировать и вставить запрос в ваше приложение для работы с БДPlease open Telegram to view this post
VIEW IN TELEGRAM
❤10👍9
Сегодня узнал про 🤩
И оно работает даже с объектами, так что вот простой способ получить все значения из backed enum…
(К тому же, в моих тестах это примерно в 2 раза быстрее, чем
👉 @PHPgx
array_column в PHP И оно работает даже с объектами, так что вот простой способ получить все значения из backed enum…
(К тому же, в моих тестах это примерно в 2 раза быстрее, чем
array_map.)Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8
Нужно проверить, что во входных данных существуют ключи массива?
Используйте
Документация: https://laravel.com/docs/12.x/validation#rule-required-array-keys
👉 @PHPgx
Используйте
required_array_keys, чтобы убедиться, что указанные ключи присутствуют в данных массива, идеально подходит для API-эндпоинтов, где ожидается чёткая структура.Документация: https://laravel.com/docs/12.x/validation#rule-required-array-keys
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍6
После 13 лет разработки на PHP я только что понял, что существует управляющая конструкция под названием
Она пропускает ещё и внешний цикл.
У меня просто взорвался мозг🤯
Как думаете, это хорошо или плохо?
👉 @PHPgx
continue 2.Она пропускает ещё и внешний цикл.
У меня просто взорвался мозг
Как думаете, это хорошо или плохо?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28😁4❤3
Работаете с PHP Enum? Параметры маршрута могут автоматически валидировать и инжектить значения Enum
Laravel вернёт 404 для некорректных значений Enum, так что контроллеры остаются чистыми.
Ссылка на документацию: https://laravel.com/docs/12.x/routing#implicit-enum-binding
👉 @PHPgx
Laravel вернёт 404 для некорректных значений Enum, так что контроллеры остаются чистыми.
Ссылка на документацию: https://laravel.com/docs/12.x/routing#implicit-enum-binding
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥3👀2