💡Совет по 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/
Сегодня я покажу вам, как быстро разрулить хаос в проекте с кастомным фреймворком, где нет нормального логирования.
Ситуация: клиент дал старый проект, ошибок — куча, но логов нет вообще. В коде 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]
Релиз PHP 8.5.0 Alpha 1
Это первый тестовый билд новой версии языка.
https://www.php.net/archive/2025.php#2025-07-03-5
@php_be1
Это первый тестовый билд новой версии языка.
https://www.php.net/archive/2025.php#2025-07-03-5
@php_be1
Как интегрировать Google Cloud Storage в Laravel
https://www.luckymedia.dev/blog/how-to-integrate-google-cloud-storage-with-laravel
@php_be1
https://www.luckymedia.dev/blog/how-to-integrate-google-cloud-storage-with-laravel
@php_be1
Атрибут #[\NoDiscard] в PHP 8.5
@php_be1
https://www.amitmerchant.com/the-nodiscard-attribute-in-php-85/
@php_be1
https://www.amitmerchant.com/the-nodiscard-attribute-in-php-85/
Amit Merchant - A blog on PHP, JavaScript, and more
Stop Ignoring Important Returns with PHP 8.5’s `#[\NoDiscard]` Attribute
When writing functions or methods in PHP, we often return values that are crucial for the caller to handle. Usually, those returned values need to be consumed. Check the following example.