Filterable — система фильтрации запросов для Laravel
https://dev.to/thavarshan/introducing-filterable-a-powerful-modular-query-filtering-system-for-laravel-2gnl
@php_be1
https://dev.to/thavarshan/introducing-filterable-a-powerful-modular-query-filtering-system-for-laravel-2gnl?utm_source=laravelnews&utm_medium=link&utm_campaign=laravelnews
https://dev.to/thavarshan/introducing-filterable-a-powerful-modular-query-filtering-system-for-laravel-2gnl
@php_be1
https://dev.to/thavarshan/introducing-filterable-a-powerful-modular-query-filtering-system-for-laravel-2gnl?utm_source=laravelnews&utm_medium=link&utm_campaign=laravelnews
DEV Community
Introducing Filterable: A Powerful, Modular Query Filtering System for Laravel
If you've built Laravel applications that require complex filtering of your Eloquent models, you've...
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз Laravel Nightwatch
Веб-сервис для мониторинга Laravel-приложений. Есть бесплатный план.
https://blog.laravel.com/announcing-laravel-nightwatch
@php_be1
Веб-сервис для мониторинга Laravel-приложений. Есть бесплатный план.
https://blog.laravel.com/announcing-laravel-nightwatch
@php_be1
Позавчера Тейлор запустил новый сервис - Laravel Nightwatch (https://nightwatch.laravel.com/).
Это сервис мониторинга работы приложения.
Краткий отзыв по истечении двух дней его использования вместе с анти-спам ботом @KvedeBot:
- Выдаёт общую информацию (есть или нет проблемы), в детали не вдаётся;
- Показывает список реально вызываемых консольных команд. Так, например, я узнал о команде php artisan schedule:finish, которая была вызвана 2'120 раз за это время... И да, эта команда также лимиты жрёт;
- Можно увидеть запросы к БД, но без самих данных - только конструкт;
- От внешних запросов виден лишь адрес без тела запроса;
- По общей статистике использования видим что из 200к бесплатных эвентов за двое суток приложение сожрало 173'596 (87%), из которых 49'009 эвентов - работа с кэшем. Да, эти cache hit, read, write и т.д. тоже считаются.
Таким образом, пришёл к выводу, что это MVP продукта и, с большой долей вероятности, он действительно будет хорош, но - потом. В текущем исполнении Nightwatch, скажем так, публикует хлам из подноготной фреймворка. Моё мнение, он делает это для того, чтобы побыстрее сожрать бесплатные лимиты дабы люди оформляли подписку.
В целом, сервис прикольный, но на полном серьёзе на сервере его использовать ну такое.
@php_be1
Это сервис мониторинга работы приложения.
Краткий отзыв по истечении двух дней его использования вместе с анти-спам ботом @KvedeBot:
- Выдаёт общую информацию (есть или нет проблемы), в детали не вдаётся;
- Показывает список реально вызываемых консольных команд. Так, например, я узнал о команде php artisan schedule:finish, которая была вызвана 2'120 раз за это время... И да, эта команда также лимиты жрёт;
- Можно увидеть запросы к БД, но без самих данных - только конструкт;
- От внешних запросов виден лишь адрес без тела запроса;
- По общей статистике использования видим что из 200к бесплатных эвентов за двое суток приложение сожрало 173'596 (87%), из которых 49'009 эвентов - работа с кэшем. Да, эти cache hit, read, write и т.д. тоже считаются.
Таким образом, пришёл к выводу, что это MVP продукта и, с большой долей вероятности, он действительно будет хорош, но - потом. В текущем исполнении Nightwatch, скажем так, публикует хлам из подноготной фреймворка. Моё мнение, он делает это для того, чтобы побыстрее сожрать бесплатные лимиты дабы люди оформляли подписку.
В целом, сервис прикольный, но на полном серьёзе на сервере его использовать ну такое.
@php_be1
Laravel Nightwatch
Monitor your Laravel applications with precision. Enhance performance and reliability with error tracking, comprehensive logs, and deep insights tailored specifically for Laravel. Free to get started.
💡Совет по Laravel
Строишь URL с динамическими параметрами для HTTP-запроса?
Не нужно вручную склеивать длинную строку!
Используй URI-шаблоны с методом withUrlParameters() — так код станет чище и понятнее при работе с API.
https://laravel.com/docs/12.x/http-client#uri-templates
👉 [|@php_be1]
Строишь URL с динамическими параметрами для HTTP-запроса?
Не нужно вручную склеивать длинную строку!
Используй URI-шаблоны с методом withUrlParameters() — так код станет чище и понятнее при работе с API.
https://laravel.com/docs/12.x/http-client#uri-templates
👉 [|@php_be1]
strlen() vs mb_strlen(): Почему 71% PHP-разработчиков ошибаются
В этой статье разберем, как PHP работает со строками и почему даже простой вызов strlen() может привести к неожиданным результатам. На примере крайне простой задачи "что выведет echo strlen('привет!');" посмотрим, что и как влияет на подсчет длины строки, заглянем внутрь реализации strlen() и развенчаем миф о строках как массивах.
https://habr.com/ru/articles/919192/
👉 [|@php_be1]
В этой статье разберем, как PHP работает со строками и почему даже простой вызов strlen() может привести к неожиданным результатам. На примере крайне простой задачи "что выведет echo strlen('привет!');" посмотрим, что и как влияет на подсчет длины строки, заглянем внутрь реализации strlen() и развенчаем миф о строках как массивах.
https://habr.com/ru/articles/919192/
👉 [|@php_be1]
AI-агент Junie для PhpStorm
@php_be1
https://blog.jetbrains.com/phpstorm/2025/06/discover-junie-for-phpstorm/
@php_be1
https://blog.jetbrains.com/phpstorm/2025/06/discover-junie-for-phpstorm/
The JetBrains Blog
Discover Junie for PhpStorm: A Game-Changing AI Coding Agent for PHP Development | The PhpStorm Blog
Explore how you can benefit from Junie, the AI coding agent by JetBrains, for your PHP development.
Сегодня я покажу вам, как быстро разрулить хаос в проекте с кастомным фреймворком, где нет нормального логирования.
Ситуация: клиент дал старый проект, ошибок — куча, но логов нет вообще. В коде try-catch, а в catch — пусто. Что делать?
Вот мой быстрый чеклист, который спасал не раз:
1. Глобальный обработчик ошибок и исключений
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
error_log("[PHP ERROR] $errstr in $errfile:$errline");
return false;
});
set_exception_handler(function (Throwable $e) {
error_log("[UNCAUGHT EXCEPTION] " . $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine());
});
Добавил в index.php, и уже вижу, что именно валится.
2. Простой логгер на каждый чих
Создал файл logger.php:
function log_debug($msg) {
file_put_contents(__DIR__.'/debug.log', date('[Y-m-d H:i:s] ') . $msg . PHP_EOL, FILE_APPEND);
}
В нужных местах пишу log_debug('что-то случилось');. Дёшево и сердито, зато работает.
3. Прокинул заголовки и запросы
В самых первых строках запроса:
log_debug("REQUEST: " . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI']);
log_debug("HEADERS: " . json_encode(getallheaders()));
log_debug("POST: " . json_encode($_POST));
Теперь видно, с чем именно клиент ломает мой старый код.
Не всегда есть время подтягивать Monolog и делать всё красиво. Иногда нужно быстро найти, где горит — и потушить. А уже потом наводить красоту.
А вы как действуете в таких ситуациях? Есть свои приёмы?
👉 [|@php_be1]
Ситуация: клиент дал старый проект, ошибок — куча, но логов нет вообще. В коде try-catch, а в catch — пусто. Что делать?
Вот мой быстрый чеклист, который спасал не раз:
1. Глобальный обработчик ошибок и исключений
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
error_log("[PHP ERROR] $errstr in $errfile:$errline");
return false;
});
set_exception_handler(function (Throwable $e) {
error_log("[UNCAUGHT EXCEPTION] " . $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine());
});
Добавил в index.php, и уже вижу, что именно валится.
2. Простой логгер на каждый чих
Создал файл logger.php:
function log_debug($msg) {
file_put_contents(__DIR__.'/debug.log', date('[Y-m-d H:i:s] ') . $msg . PHP_EOL, FILE_APPEND);
}
В нужных местах пишу log_debug('что-то случилось');. Дёшево и сердито, зато работает.
3. Прокинул заголовки и запросы
В самых первых строках запроса:
log_debug("REQUEST: " . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI']);
log_debug("HEADERS: " . json_encode(getallheaders()));
log_debug("POST: " . json_encode($_POST));
Теперь видно, с чем именно клиент ломает мой старый код.
Не всегда есть время подтягивать Monolog и делать всё красиво. Иногда нужно быстро найти, где горит — и потушить. А уже потом наводить красоту.
А вы как действуете в таких ситуациях? Есть свои приёмы?
👉 [|@php_be1]