Нужно обновить много моделей на основе сложных условий?
Комбинируйте эти методы Eloquent для ускорения работы в 10–100 раз:
select() → извлекайте только IDchunkById() → используйте пакетную обработку для разделения больших объемов данныхtoQuery() → выполняйте обновление моделей напрямуюPlease open Telegram to view this post
VIEW IN TELEGRAM
👍7
Пример HTTP-сервера на PHP с использованием файберов
Сервер обрабатывает каждый HTTP-запрос в отдельном файбере, что обеспечивает высокую производительность без привлечения потоков или процессов.
Для развёртывания используется Docker Compose, а код доступен в открытом репозитории
👉 Читать
➡️ @PHPgx | #cтатья
Сервер обрабатывает каждый HTTP-запрос в отдельном файбере, что обеспечивает высокую производительность без привлечения потоков или процессов.
Для развёртывания используется Docker Compose, а код доступен в открытом репозитории
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
CPX
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
👉 @PHPgx | #ресурсы
Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - laravel/cpx: Run any command from any composer package, even if it's not installed in your project.
Run any command from any composer package, even if it's not installed in your project. - laravel/cpx
👍6
Используйте метод построителя запросов orWhere() в Eloquent с осторожностью, чтобы избежать некорректной фильтрации данных.
Первый пример вернет любой курс, если в столбце "content" содержится ключевое слово, игнорируя предыдущие условия where!
Второй пример с вложенными условиями исправляет эту проблему.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤1👀1
Loupe
Полнотекстовая поисковая система с токенизацией, стеммингом, устойчивостью к опечаткам, фильтрами и географической поддержкой, основанная на чистом PHP и SQLite.
👉 @PHPgx | #ресурсы
Полнотекстовая поисковая система с токенизацией, стеммингом, устойчивостью к опечаткам, фильтрами и географической поддержкой, основанная на чистом PHP и SQLite.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - loupe-php/loupe: A full text search engine with tokenization, stemming, typo tolerance, filters and geo support based…
A full text search engine with tokenization, stemming, typo tolerance, filters and geo support based on only PHP and SQLite. - loupe-php/loupe
👍3🔥2
Это может помочь вам обнаружить нестабильные тесты или потенциальные ошибки, так как вы можете ожидать, что данное поле всегда будет заполнено в вашем приложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Наткнулся на интересный проект — php-wasm.
Это библиотека, которая позволяет запускать PHP прямо в браузере с использованием WebAssembly
👉 https://github.com/seanmorris/php-wasm
👉 @PHPgx | #ресурсы
Это библиотека, которая позволяет запускать PHP прямо в браузере с использованием WebAssembly
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - seanmorris/php-wasm: PHP in Browser, powered by WebAssembly.
PHP in Browser, powered by WebAssembly. Contribute to seanmorris/php-wasm development by creating an account on GitHub.
👍3
Media is too big
VIEW IN TELEGRAM
Если вы ищете самый простой способ сгенерировать документацию по API для вашего приложения на Laravel, которая также будет красивой, попробуйте следующее:
1. Установите Scribe через Composer (knuckleswtf/scribe) Это генератор документации API, который использует ваши маршруты, запросы, модели и ресурсы для автоматической генерации.
2. Настройте вывод Scribe Установите параметры конфигурации scribe.type в значение 'external_laravel' и scribe.theme в значение 'scalar'.
3. Запустите команду php artisan scribe:generate
Результаты впечатляют! Вы получаете массу возможностей бесплатно, включая автоматическую генерацию примеров на различных языках программирования, светлый/тёмный режим, поиск, версионность и многое другое. Попробуйте сами!
👉 https://github.com/knuckleswtf/scribe
👉 @PHPgx | #tips
1. Установите Scribe через Composer (knuckleswtf/scribe) Это генератор документации API, который использует ваши маршруты, запросы, модели и ресурсы для автоматической генерации.
2. Настройте вывод Scribe Установите параметры конфигурации scribe.type в значение 'external_laravel' и scribe.theme в значение 'scalar'.
3. Запустите команду php artisan scribe:generate
Результаты впечатляют! Вы получаете массу возможностей бесплатно, включая автоматическую генерацию примеров на различных языках программирования, светлый/тёмный режим, поиск, версионность и многое другое. Попробуйте сами!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Это расширение для Chrome, которое позволяет встраивать PHP-консоль в панель разработчика DevTools. Оно использует пакет Spatie Laravel Web Tinker и встраивает его в панель инструментов, предоставляя доступ к консоли PHP прямо внутри DevTools.
Установка:
🔹 Скачайте и распакуйте проект.
🔹 Перейдите по адресу chrome://extensions/ в вашем браузере.
🔹 Включите "Режим разработчика" в правом верхнем углу (если он еще не включен).
🔹 Нажмите "Загрузить распакованное расширение" и выберите папку php-ext.
🔹 В вашем Laravel проекте установите пакет Spatie Laravel Web Tinker командой:
Теперь в панели консоли Chrome появится новая вкладка PHP. Кликнув по ней, вы получите доступ к PHP консоли, где сможете выполнять код Laravel или PHP прямо из браузера
👉 https://github.com/tnylea/php-ext
👉 @PHPgx | #ресурсы
Установка:
composer require spatie/laravel-web-tinker
Теперь в панели консоли Chrome появится новая вкладка PHP. Кликнув по ней, вы получите доступ к PHP консоли, где сможете выполнять код Laravel или PHP прямо из браузера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤2🌭1
Самая недооценённая особенность Laravel?
Фабрики баз данных.
Я бы даже осмелился сказать, что хорошо построенные фабрики — это признак кодовой базы для СТАРШИХ разработчиков, в отличие от кодовой базы для МОЛОДЫХ.
Позвольте объяснить.
Если я вижу кодовую базу, где фабрики отсутствуют или определены плохо, это обычно говорит о большем:
🔹 Нет автоматизированных тестов.
🔹 Нет тестирования с большими объемами данных.
🔹 И отсутствие внимания к реалистичным сценариям, приближённым к продакшн-окружению.
Если у вас есть ПРАВИЛЬНЫЕ фабрики, вероятно, вы гораздо больше заботитесь о тестировании и надежности приложения.
Подождите, а что такое эти СИЛЬНЫЕ фабрики? Это когда разработчик тратит ДОПОЛНИТЕЛЬНОЕ время на продумывание реалистичных форматов данных.
Они показывают, насколько разработчик ЗАБОТИТСЯ:
🔹 Заботится достаточно, чтобы симулировать реалистичные данные: fake()->paragraphs() вместо fake()->text().
🔹 Заботится достаточно, чтобы настроить вероятности: fake()->boolean(90) вместо статичного true.
Согласны?
✅ #tips by Povilas Korop
👉 @PHPgx
Фабрики баз данных.
Я бы даже осмелился сказать, что хорошо построенные фабрики — это признак кодовой базы для СТАРШИХ разработчиков, в отличие от кодовой базы для МОЛОДЫХ.
Позвольте объяснить.
Если я вижу кодовую базу, где фабрики отсутствуют или определены плохо, это обычно говорит о большем:
Если у вас есть ПРАВИЛЬНЫЕ фабрики, вероятно, вы гораздо больше заботитесь о тестировании и надежности приложения.
Подождите, а что такое эти СИЛЬНЫЕ фабрики? Это когда разработчик тратит ДОПОЛНИТЕЛЬНОЕ время на продумывание реалистичных форматов данных.
Они показывают, насколько разработчик ЗАБОТИТСЯ:
Согласны?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
Используйте методы 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