Новый метод 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]
JetBrains взяло на себя выпуск браузерных расширений Xdebug Helper
@php_be1
https://blog.jetbrains.com/phpstorm/2025/03/jetbrains-xdebug-helper/
@php_be1
https://blog.jetbrains.com/phpstorm/2025/03/jetbrains-xdebug-helper/
The JetBrains Blog
JetBrains Xdebug Helper Browser Extension
Introducing the official Xdebug Helper extension by JetBrains, ensuring seamless PHP debugging in Chrome.
Уязвимость в Laravel
Затронуты все версии. Исправления готовы только для 12-10.
https://github.com/advisories/GHSA-78fx-h6xr-vch4
@php_be1
Затронуты все версии. Исправления готовы только для 12-10.
https://github.com/advisories/GHSA-78fx-h6xr-vch4
@php_be1
Laravel-Zero (https://laravel-zero.com/) - это микро-фреймворк для консольных приложений на базе Laravel Framework, позволяющий легко и быстро разрабатывать функционал работающий без веба. Но инициатором этой статьи стал кейс при использовании Laravel Prompts (https://laravel.com/docs/prompts) с несколькими часами потраченного времени.
Для экономии Вашего времени при столкновении с этой ошибкой или вовсе преждевременным её устранением, добро пожаловать в пост:
https://habr.com/ru/articles/892010/
@php_be1
Для экономии Вашего времени при столкновении с этой ошибкой или вовсе преждевременным её устранением, добро пожаловать в пост:
https://habr.com/ru/articles/892010/
@php_be1
Laravel Starter Kits: A New Beginning for Your Next Project
@php_be1
https://blog.laravel.com/laravel-starter-kits-a-new-beginning-for-your-next-project
@php_be1
https://blog.laravel.com/laravel-starter-kits-a-new-beginning-for-your-next-project
The Laravel Blog
Laravel Starter Kits: A New Beginning for Your Next Project - The Laravel Blog
We’ve overhauled our starter kits, replacing Jetstream and Breeze with three distinct, purpose-built starter kits in Livewire, React, and Vue. These new kits allow you to focus on building your app instead of creating boilerplate code from scratch.
⚡️Laravel — это не просто PHP-фреймворк, а инструмент, который меняет подход к веб-разработке. Он помогает писать чистый, поддерживаемый код, ускоряет работу и открывает доступ к мощному инструментарию, который используется в крупных проектах.
Если вы уже работаете с PHP, но хотите выйти на новый уровень, Laravel — ваш лучший выбор. Мы научим вас грамотно использовать этот фреймворк, обеспечивать безопасность приложений, развертывать код и использовать встроенные инструменты для ускорения разработки.
Программа курса строится на реальных задачах и практике. Вы научитесь применять Laravel в продакшен-разработке. А поддержка опытных менторов и разбор сложных кейсов помогут вам быстрее освоить фреймворк и прокачать навыки.
👉Пройдите вступительное тестирование и получите скидку на обучение: https://clck.ru/3JWcV3
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Если вы уже работаете с PHP, но хотите выйти на новый уровень, Laravel — ваш лучший выбор. Мы научим вас грамотно использовать этот фреймворк, обеспечивать безопасность приложений, развертывать код и использовать встроенные инструменты для ускорения разработки.
Программа курса строится на реальных задачах и практике. Вы научитесь применять Laravel в продакшен-разработке. А поддержка опытных менторов и разбор сложных кейсов помогут вам быстрее освоить фреймворк и прокачать навыки.
👉Пройдите вступительное тестирование и получите скидку на обучение: https://clck.ru/3JWcV3
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576