PHP Portal | Программирование
4.85K subscribers
408 photos
20 videos
2 files
209 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Download Telegram
Пример HTTP-сервера на PHP с использованием файберов

Сервер обрабатывает каждый HTTP-запрос в отдельном файбере, что обеспечивает высокую производительность без привлечения потоков или процессов.

Для развёртывания используется Docker Compose, а код доступен в открытом репозитории

👉 Читать

➡️ @PHPgx | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
CPX

Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
💡 whereRelation против whereDoesntHaveRelation в Laravel

Не попадай в ловушку, пытаясь инвертировать whereRelation! Одно условие находит ЛЮБУЮ запись, а другое гарантирует, что НЕТ совпадений.

Уловил разницу? 😧

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🌚1
💡 Совет по Laravel

Используйте метод построителя запросов orWhere() в Eloquent с осторожностью, чтобы избежать некорректной фильтрации данных.

Первый пример вернет любой курс, если в столбце "content" содержится ключевое слово, игнорируя предыдущие условия where!

Второй пример с вложенными условиями исправляет эту проблему.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131👀1
Loupe

Полнотекстовая поисковая система с токенизацией, стеммингом, устойчивостью к опечаткам, фильтрами и географической поддержкой, основанная на чистом PHP и SQLite.

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
💡 Если у вас есть колонка с возможностью NULL в таблице базы данных, рассмотрите возможность случайной установки значения этой колонки как опционального в вашей фабрике, используя метод optional от Faker.

Это может помочь вам обнаружить нестабильные тесты или потенциальные ошибки, так как вы можете ожидать, что данное поле всегда будет заполнено в вашем приложении.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Наткнулся на интересный проект — php-wasm.

Это библиотека, которая позволяет запускать PHP прямо в браузере с использованием WebAssembly

👉 https://github.com/seanmorris/php-wasm

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍174
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 командой:
composer require spatie/laravel-web-tinker


Теперь в панели консоли Chrome появится новая вкладка PHP. Кликнув по ней, вы получите доступ к PHP консоли, где сможете выполнять код Laravel или PHP прямо из браузера

👉 https://github.com/tnylea/php-ext

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42🌭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
👍101
💡 Совет по Laravel

Используйте методы Arr::get() или хелпер data_get для получения значения из глубоко вложенного массива с помощью удобной "точечной" нотации. Метод data_get также поддерживает объекты!

Они также принимают значение по умолчанию, которое будет возвращено, если указанный ключ не существует.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2
Только что нашел утечку исходного кода Facebook за 2007 год 😃

Тогда не было Composer, PSR еще не существовал, а внедрение ООП шло медленно... но при этом на PHP строились огромные приложения!

Посмотрите исходный код здесь: https://gist.github.com/nikcub/3833406

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
💡 Совет по Laravel

Перестаньте писать сложные запросы в контроллерах

Используйте специальные классы для запросов, чтобы элегантно обрабатывать агрегированные данные из нескольких моделей.

Преимущества:
Выполнение одной задачи
Ясное выражение намерений
Легкость тестирования сложных запросов в изоляции

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Принёс вам классный ресурс для изучения паттернов проектирования

На сайте Refactoring Guru собрали примеры для каждого паттерна на таких языках, как C#, Java, Python, PHP, Rust и ещё куча других.

Всё удобно разложено по категориям — порождающие, структурные, поведенческие.

Примеры суперпонятные, с кодом и пояснениями.

👉 Смотрите сами

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥2
💡 Совет по Laravel

Ускорьте отладку с помощью методов toRawSql() или ddRawSql() на Eloquent Query Builder.

Эти методы выводят сырой SQL-запрос с подставленными реальными значениями вместо привязок — настоящий спасатель в трудную минуту 😉

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
Полезные проекты для изучения Laravel

Если вы хотите освоить Laravel на практике, вот два отличных проекта для разного уровня подготовки:

Для начинающих — простой личный блог
GitHub

Для продвинутых новичков — небольшая CRM
GitHub

Эти репозитории были созданы несколько лет назад, но их задачи остаются актуальными и в 2025 году. Они помогут освоить основы Laravel и получить практический опыт.

После их прохождения можно переходить к своим небольшим проектам, искать фриланс-заказы или даже пробовать устроиться на работу.

👉 Полный roadmap по Laravel: Laravel Roadmap

👉 @PHPgx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💡 Совет по Laravel

2 переменные контекста, которые я всегда добавляю в обработчик исключений. Просто и эффективно!

Очень помогают при анализе логов.

👉 @PHPgx | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Какой 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Вещи, которые ускорят разработку на проектах с большим количеством pull-реквестов и веток. Используйте GitHub CLI для переключения между ветками

1. Установите CLI от GitHub — gh.
2. Аутентифицируйте CLI в GitHub.
3. Перейдите к pull-реквесту, который хотите выкачать.
4. Скопируйте нужную команду из кнопки «<> Code».
5. Вставьте её в терминал и запустите.

Теперь вам не нужно вручную искать ветку и переключаться на неё или загружать обновления.

У вас будет либо самая актуальная версия с GitHub, либо последняя версия на вашем компьютере, если локальная ветка опережает удалённую.

Этот процесс экономит мне кучу времени на поиске нужной ветки.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4