Представляем Rich Text в Laravel
При создании форм для приложения нередко возникает потребность в поле, где обычное текстовое поле (textarea) не подходит. Как же быть? Можно обработать данные на сервере и рассматривать ввод как Markdown, но это требует ручной настройки и часто бывает ограничивающим. Более подходящим вариантом является использование редактора с поддержкой rich text, который предоставляет множество возможностей для настройки.
https://tighten.com/insights/rich-text-laravel/
👉 [|@php_be1]
При создании форм для приложения нередко возникает потребность в поле, где обычное текстовое поле (textarea) не подходит. Как же быть? Можно обработать данные на сервере и рассматривать ввод как Markdown, но это требует ручной настройки и часто бывает ограничивающим. Более подходящим вариантом является использование редактора с поддержкой rich text, который предоставляет множество возможностей для настройки.
https://tighten.com/insights/rich-text-laravel/
👉 [|@php_be1]
Использование статического анализа в Laravel: руководство по началу работы с PHPStan
@php_be1
https://labrodev.substack.com/p/using-static-analysis-in-laravel
@php_be1
https://labrodev.substack.com/p/using-static-analysis-in-laravel
Substack
Using Static Analysis in Laravel: A Guide to Starting with PHPStan in Your Project
Step-by-Step Guide on How to Install and Configure PHPStan in Laravel to Begin Benefiting from Code Coverage with Static Analysis
Недавно мне удалось попользоваться такой замечательной библиотекой как Saloon. О ее существовании я не знал, и решил с вам поделиться опытом - возможно вы тоже не знали??
Вкратце это удобный пакет для написания интеграция с другими сис-ма по http api. Там есть своя структура для описания взаимодействия и различная небольшая экосистема (тестирование, работа с exceptions и другое).
Свой опыт я решил описать на laravel.su для большего охвата аудитории. 😊
Резюмируя - пакет мне понравился конечно, пришлось встретиться с несколькими незначительными нюансами - но пока все идет ровно.
Почитать можно здесь
А если у вас уже есть опыт - напиши в комментариях - может еще не поздно все удалить 😁 и переписать !!
@php_be1
https://laravel.su/p/saloon-universalnyi-instrument-dlia-integracii-po-api
Вкратце это удобный пакет для написания интеграция с другими сис-ма по http api. Там есть своя структура для описания взаимодействия и различная небольшая экосистема (тестирование, работа с exceptions и другое).
Свой опыт я решил описать на laravel.su для большего охвата аудитории. 😊
Резюмируя - пакет мне понравился конечно, пришлось встретиться с несколькими незначительными нюансами - но пока все идет ровно.
Почитать можно здесь
А если у вас уже есть опыт - напиши в комментариях - может еще не поздно все удалить 😁 и переписать !!
@php_be1
https://laravel.su/p/saloon-universalnyi-instrument-dlia-integracii-po-api
laravel.su
Saloon - универсальный инструмент для интеграции по API | Laravel Russian Community
В жизни каждого программиста возникает тот момент когда необходимо выбрать рекурсию или цикл. Почти с большей вероятностью в жизни каждого разработчика стоит выбор между rm или rm -f в консоли....
Новый метод withAttributes для отношений и скоупов в Laravel
@php_be1
https://www.amitmerchant.com/with-attributes-scopes-laravel/
@php_be1
https://www.amitmerchant.com/with-attributes-scopes-laravel/
Amit Merchant - A blog on PHP, JavaScript, and more
The new withAttributes method for relationships and scopes in Laravel
Scopes in Laravel are a way to encapsulate common queries that you may need to run against a model. They allow you to define a query you can use in multiple places in your application.
Пять практических советов по улучшению поиска в Laravel-приложениях с помощью Typesense
@php_be1
https://tighten.com/insights/five-practical-tips-to-improve-search-in-laravel-apps-with-typesense/
@php_be1
https://tighten.com/insights/five-practical-tips-to-improve-search-in-laravel-apps-with-typesense/
Tighten
Five Practical Tips to Improve Search in Laravel Apps With Typesense
Typesense is making waves in the search landscape. Since its inclusion as an officially supported driver for Laravel Scout,...
История создания идеального Docker для Laravel
На первый взгляд, упаковать PHP в контейнер и настроить GitHub Actions кажется простым делом. Но, как часто бывает, реальность оказалась более сложной. Это рассказ о том, как я вернулся к разработке на PHP и решал накопившиеся проблемы с деплоем проекта на Laravel. Я работал над созданием Docker-образа, несколько раз изменял процесс деплоя, искал компромиссы там, где это можно было сделать, и полностью перестраивал архитектуру в тех случаях, когда компромиссы были неприемлемы.
👉 [|@php_be1]
На первый взгляд, упаковать PHP в контейнер и настроить GitHub Actions кажется простым делом. Но, как часто бывает, реальность оказалась более сложной. Это рассказ о том, как я вернулся к разработке на PHP и решал накопившиеся проблемы с деплоем проекта на Laravel. Я работал над созданием Docker-образа, несколько раз изменял процесс деплоя, искал компромиссы там, где это можно было сделать, и полностью перестраивал архитектуру в тех случаях, когда компромиссы были неприемлемы.
👉 [|@php_be1]
🚀 Переходите на новый уровень PHP-разработке!
📚 Курс Symfony Framework создан для тех, кто стремится стать востребованным разработчиком уровня middle+ и senior. Мы научим вас решать задачи уровня enterprise на одном из самых мощных PHP-фреймворков — Symfony!
🔧 Почему Symfony? Symfony — это выбор компаний, создающих сложные и надежные приложения. На нашем курсе вы научитесь:
- Использовать Symfony в проектах;
- Обеспечивать безопасность приложения;
- Тестировать и мониторить полученный код;
- Использовать встроенные инструменты фреймворка;
- Разворачивать приложения в различных окружениях.
👩🏫 Что вас ждет на курсе? Вы освоите все ключевые функции Symfony под руководством преподавателей-практиков, которые работают на реальных проектах с использованием Symfony, Laravel и других популярных фреймворков.
🚀 Регистрируйтесь прямо сейчас, пройдите короткий тест и получите возможность учиться у экспертов на самых выгодных условиях с промокодом- "Symfony_1_25", а также в рассрочку: 💥👉 https://clck.ru/3GbJhB
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📚 Курс Symfony Framework создан для тех, кто стремится стать востребованным разработчиком уровня middle+ и senior. Мы научим вас решать задачи уровня enterprise на одном из самых мощных PHP-фреймворков — Symfony!
🔧 Почему Symfony? Symfony — это выбор компаний, создающих сложные и надежные приложения. На нашем курсе вы научитесь:
- Использовать Symfony в проектах;
- Обеспечивать безопасность приложения;
- Тестировать и мониторить полученный код;
- Использовать встроенные инструменты фреймворка;
- Разворачивать приложения в различных окружениях.
👩🏫 Что вас ждет на курсе? Вы освоите все ключевые функции Symfony под руководством преподавателей-практиков, которые работают на реальных проектах с использованием Symfony, Laravel и других популярных фреймворков.
🚀 Регистрируйтесь прямо сейчас, пройдите короткий тест и получите возможность учиться у экспертов на самых выгодных условиях с промокодом- "Symfony_1_25", а также в рассрочку: 💥👉 https://clck.ru/3GbJhB
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Laravel + Go: создание гибридной архитектуры
@php_be1
https://www.geocod.io/code-and-coordinates/2025-02-10-supercharging-laravel-with-go/
@php_be1
https://www.geocod.io/code-and-coordinates/2025-02-10-supercharging-laravel-with-go/
Geocodio
Supercharging Laravel with Go: Building a Hybrid Architecture - Geocodio
Learn how we leveraged Go alongside Laravel using Unix socket RPC communication to handle performance-critical operations and protect proprietary algorithms through compiled binaries.
Большое тред на Реддит с недовольством новыми стартовыми наборами в Ларавел
https://www.reddit.com/r/laravel/comments/1iyyxk4/laravel_is_going_in_the_wrong_direction_imho/
@php_be1
https://www.reddit.com/r/laravel/comments/1iyyxk4/laravel_is_going_in_the_wrong_direction_imho/
@php_be1
Оптимизация SQL-запросов в PHP: избавляемся от тормозов! 🚀
Сегодня я расскажу, как повысить производительность SQL-запросов в PHP и уменьшить нагрузку на базу данных.
1. Используйте подготовленные запросы. Это не только защита от SQL-инъекций, но и возможность кеширования запросов внутри системы управления базами данных.
Пример с PDO:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => $email]);
$user = $stmt->fetch();
2. Выбирайте только необходимые данные.
Зачем вам использовать SELECT *, если нужны только id и name? Выбирайте только нужные колонки!
$stmt = $pdo->query("SELECT id, name FROM users");
3. Индексы – ваши друзья.
Проверьте, есть ли индексы на полях, которые часто используются в WHERE и JOIN. Без индексов база данных будет выполнять полный перебор строк!
CREATE INDEX idx_email ON users(email);
4. Избегайте N+1 запроса.
Вместо того чтобы выполнять 100 мелких запросов, сделайте один с JOIN.
❌ Плохо (100 запросов в цикле!):
foreach ($users as $user) {
$stmt = $pdo->prepare("SELECT * FROM orders WHERE user_id = ?");
$stmt->execute([$user['id']]);
$orders[$user['id']] = $stmt->fetchAll();
}
✅ Хорошо (один запрос):
$query = "SELECT users.id, users.name, orders.id as order_id
FROM users
LEFT JOIN orders ON users.id = orders.user_id";
$stmt = $pdo->query($query);
$result = $stmt->fetchAll();
5. Используйте кеширование.
Храните часто запрашиваемые данные в Redis или Memcached, чтобы снизить нагрузку на базу данных.
$cacheKey = "users_list";
$users = $redis->get($cacheKey);
if (!$users) {
$users = $pdo->query("SELECT id, name FROM users")->fetchAll();
$redis->setex($cacheKey, 3600, json_encode($users));
}
Эти советы помогут вам ускорить ваш PHP-код, снизить нагрузку на базу данных и сделать сайт более отзывчивым.
👉 [|@php_be1]
Сегодня я расскажу, как повысить производительность SQL-запросов в PHP и уменьшить нагрузку на базу данных.
1. Используйте подготовленные запросы. Это не только защита от SQL-инъекций, но и возможность кеширования запросов внутри системы управления базами данных.
Пример с PDO:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => $email]);
$user = $stmt->fetch();
2. Выбирайте только необходимые данные.
Зачем вам использовать SELECT *, если нужны только id и name? Выбирайте только нужные колонки!
$stmt = $pdo->query("SELECT id, name FROM users");
3. Индексы – ваши друзья.
Проверьте, есть ли индексы на полях, которые часто используются в WHERE и JOIN. Без индексов база данных будет выполнять полный перебор строк!
CREATE INDEX idx_email ON users(email);
4. Избегайте N+1 запроса.
Вместо того чтобы выполнять 100 мелких запросов, сделайте один с JOIN.
❌ Плохо (100 запросов в цикле!):
foreach ($users as $user) {
$stmt = $pdo->prepare("SELECT * FROM orders WHERE user_id = ?");
$stmt->execute([$user['id']]);
$orders[$user['id']] = $stmt->fetchAll();
}
✅ Хорошо (один запрос):
$query = "SELECT users.id, users.name, orders.id as order_id
FROM users
LEFT JOIN orders ON users.id = orders.user_id";
$stmt = $pdo->query($query);
$result = $stmt->fetchAll();
5. Используйте кеширование.
Храните часто запрашиваемые данные в Redis или Memcached, чтобы снизить нагрузку на базу данных.
$cacheKey = "users_list";
$users = $redis->get($cacheKey);
if (!$users) {
$users = $pdo->query("SELECT id, name FROM users")->fetchAll();
$redis->setex($cacheKey, 3600, json_encode($users));
}
Эти советы помогут вам ускорить ваш PHP-код, снизить нагрузку на базу данных и сделать сайт более отзывчивым.
👉 [|@php_be1]
Как справиться с «загадочными» ошибками в PHP? 🤔
Сегодня я хочу обсудить одну из самых неприятных проблем в программировании — «загадочные» ошибки. Это те сбои, которые проявляются только в рабочей среде, исчезают при попытке отладки и вызывают нервное напряжение 😬.
🔍 Почему это происходит?
- Разные среды — на локальной машине у вас PHP 8.2, а на сервере 7.4 (и вдруг функция match ломает весь код).
- Необработанные ошибки — ошибки игнорируются с помощью @, а логи ничего не показывают.
- Состояние кэша — в OpCache или APCu осталась старая версия кода.
- Конкуренция потоков — скрипты выполняются одновременно и мешают друг другу.
🛠 Как с этим бороться?
1⃣ Отключить OpCache на тестовом сервере. Это позволит быстрее проверять изменения и исключить проблемы с кэшем.
2⃣ Настроить логирование. Включите error_reporting(E_ALL) и убедитесь, что display_errors=Off, а log_errors=On с указанием пути к файлу логов.
3⃣ Сравнить среды. Используйте phpinfo() или php -m для проверки версий PHP и установленных модулей.
4⃣ Включить трассировку ошибок. Xdebug поможет отследить стек вызовов, а Laravel Telescope покажет детали запроса.
5⃣ Воспроизвести проблему на копии продакшена. Запустите код в Docker с конфигурацией продакшена или создайте staging-сервер.
6⃣ Подключить мониторинг и оповещения. Инструменты вроде Sentry, Bugsnag или New Relic помогут обнаруживать ошибки раньше, чем их заметят пользователи.
👉 [|@php_be1]
Сегодня я хочу обсудить одну из самых неприятных проблем в программировании — «загадочные» ошибки. Это те сбои, которые проявляются только в рабочей среде, исчезают при попытке отладки и вызывают нервное напряжение 😬.
🔍 Почему это происходит?
- Разные среды — на локальной машине у вас PHP 8.2, а на сервере 7.4 (и вдруг функция match ломает весь код).
- Необработанные ошибки — ошибки игнорируются с помощью @, а логи ничего не показывают.
- Состояние кэша — в OpCache или APCu осталась старая версия кода.
- Конкуренция потоков — скрипты выполняются одновременно и мешают друг другу.
🛠 Как с этим бороться?
1⃣ Отключить OpCache на тестовом сервере. Это позволит быстрее проверять изменения и исключить проблемы с кэшем.
2⃣ Настроить логирование. Включите error_reporting(E_ALL) и убедитесь, что display_errors=Off, а log_errors=On с указанием пути к файлу логов.
3⃣ Сравнить среды. Используйте phpinfo() или php -m для проверки версий PHP и установленных модулей.
4⃣ Включить трассировку ошибок. Xdebug поможет отследить стек вызовов, а Laravel Telescope покажет детали запроса.
5⃣ Воспроизвести проблему на копии продакшена. Запустите код в Docker с конфигурацией продакшена или создайте staging-сервер.
6⃣ Подключить мониторинг и оповещения. Инструменты вроде Sentry, Bugsnag или New Relic помогут обнаруживать ошибки раньше, чем их заметят пользователи.
👉 [|@php_be1]