🔥Laravel — мощный PHP-фреймворк, но его скорость может быть ограничена стандартной связкой Nginx + PHP-FPM. Хотите разогнать своё приложение и сократить время отклика?
На открытом вебинаре 3 апреля в 20:00 мск разберём, как интегрировать Laravel с Roadrunner — высокопроизводительным сервером, который меняет подход к обработке запросов. Используем Octane, оптимизируем ресурсы и ускорим выполнение кода.
Вы научитесь подключать Roadrunner к своим проектам, поймёте, как он меняет жизненный цикл PHP-приложения, и сможете внедрить передовые технологии для масштабирования ваших сервисов.
👉Регистрируйтесь и получите скидку на большое обучение «Framework Laravel»: https://clck.ru/3KAfSd
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом вебинаре 3 апреля в 20:00 мск разберём, как интегрировать Laravel с Roadrunner — высокопроизводительным сервером, который меняет подход к обработке запросов. Используем Octane, оптимизируем ресурсы и ускорим выполнение кода.
Вы научитесь подключать Roadrunner к своим проектам, поймёте, как он меняет жизненный цикл PHP-приложения, и сможете внедрить передовые технологии для масштабирования ваших сервисов.
👉Регистрируйтесь и получите скидку на большое обучение «Framework Laravel»: https://clck.ru/3KAfSd
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥 Laravel Telemetry 🔥
Команда Laravel объявляет о включении во фреймворк Telemetry — нового модуля для сбора анонимной статистики об использовании фреймворка. Это поможет анализировать популярные фичи, оптимизировать производительность и сделать Laravel ещё лучше! Telemetry будет включена по умолчанию и собирать такие данные, как версия PHP, используемые пакеты, время выполнения запросов и частота ошибок.
Если вдруг вы не хотите участвовать в улучшении Laravel, всегда можно отключить сбор данных через env-переменную TELEMETRY_ENABLED=false.
@php_be1
Команда Laravel объявляет о включении во фреймворк Telemetry — нового модуля для сбора анонимной статистики об использовании фреймворка. Это поможет анализировать популярные фичи, оптимизировать производительность и сделать Laravel ещё лучше! Telemetry будет включена по умолчанию и собирать такие данные, как версия PHP, используемые пакеты, время выполнения запросов и частота ошибок.
Если вдруг вы не хотите участвовать в улучшении Laravel, всегда можно отключить сбор данных через env-переменную TELEMETRY_ENABLED=false.
@php_be1
Сегодня я хочу поделиться с вами простым и удобным приемом, который помогает поддерживать порядок в больших PHP-проектах — это использование кастомных коллекций вместо обычных массивов.
Если вы когда-либо передавали массивы объектов в методы или возвращали их из них, то, вероятно, сталкивались с ситуацией, когда неясно, что именно содержится в массиве. А потом кто-то мог передать туда строку или null — и вот вам, баги.
Я начал использовать свои классы коллекций. Вот простой пример:
class UserCollection
{
/** @ var User[] */
private array $users = [];
public function __construct(array $users = [])
{
foreach ($users as $user) {
$this->add($user);
}
}
public function add(User $user): void
{
$this->users[] = $user;
}
public function all(): array
{
return $this->users;
}
public function filterByActive(): self
{
return new self(array_filter($this->users, fn(User $u) => $u->isActive()));
}
// и так далее
}
Теперь везде, где раньше использовался массив User[], я применяю UserCollection. Это сразу дает:
- типизацию (и защиту от случайных ошибок),
- автодополнение в IDE,
- методы прямо в коллекции (например, filterByActive, sortByName, first() и т.д.),
- более чистые и понятные сигнатуры методов.
Это похоже на коллекции из Laravel, но я использую это везде, даже в небольших проектах без фреймворков. Такие объекты делают код более чистым, устойчивым и легче читаемым.
Попробуйте в одном из ваших проектов заменить массивы объектов на такие коллекции — и вы удивитесь, как стало лучше.
👉 [|@php_be1]
Если вы когда-либо передавали массивы объектов в методы или возвращали их из них, то, вероятно, сталкивались с ситуацией, когда неясно, что именно содержится в массиве. А потом кто-то мог передать туда строку или null — и вот вам, баги.
Я начал использовать свои классы коллекций. Вот простой пример:
class UserCollection
{
/** @ var User[] */
private array $users = [];
public function __construct(array $users = [])
{
foreach ($users as $user) {
$this->add($user);
}
}
public function add(User $user): void
{
$this->users[] = $user;
}
public function all(): array
{
return $this->users;
}
public function filterByActive(): self
{
return new self(array_filter($this->users, fn(User $u) => $u->isActive()));
}
// и так далее
}
Теперь везде, где раньше использовался массив User[], я применяю UserCollection. Это сразу дает:
- типизацию (и защиту от случайных ошибок),
- автодополнение в IDE,
- методы прямо в коллекции (например, filterByActive, sortByName, first() и т.д.),
- более чистые и понятные сигнатуры методов.
Это похоже на коллекции из Laravel, но я использую это везде, даже в небольших проектах без фреймворков. Такие объекты делают код более чистым, устойчивым и легче читаемым.
Попробуйте в одном из ваших проектов заменить массивы объектов на такие коллекции — и вы удивитесь, как стало лучше.
👉 [|@php_be1]
This media is not supported in your browser
VIEW IN TELEGRAM
Анонс Laravel Wayfinder
Генерация TypeScript-функций для ваших Laravel-контроллеров и маршрутов
https://github.com/laravel/wayfinder
@php_be1
Генерация TypeScript-функций для ваших Laravel-контроллеров и маршрутов
https://github.com/laravel/wayfinder
@php_be1
Сегодня я расскажу, как я упростил настройку и запуск проектов на Laravel с помощью кастомной команды Make.
Когда ты постоянно работаешь с Laravel, такие команды, как php artisan migrate, npm run dev, php artisan serve, php artisan key:generate становятся рутиной. А если у тебя несколько проектов, путаницы не избежать.
Я решил, что это невыносимо.
Поэтому я создал простую команду в Makefile, которая за считанные секунды поднимает проект в нужной последовательности. Вот пример:
up:
@cp .env.example .env || true
@php artisan key:generate
@composer install
@npm install
@php artisan migrate
@php artisan db:seed
@npm run dev
@php artisan serve
Теперь я просто пишу make up — и Laravel запускается 🚀
Можно добавить и другие команды: make test, make down, make fresh, make lint, и каждый проект будет управляться по единому сценарию. Это экономит много времени.
💡 Совет: обязательно ставь @ перед командами — так терминал не будет засорён выводом строк Makefile.
👉 @php_be1
Когда ты постоянно работаешь с Laravel, такие команды, как php artisan migrate, npm run dev, php artisan serve, php artisan key:generate становятся рутиной. А если у тебя несколько проектов, путаницы не избежать.
Я решил, что это невыносимо.
Поэтому я создал простую команду в Makefile, которая за считанные секунды поднимает проект в нужной последовательности. Вот пример:
up:
@cp .env.example .env || true
@php artisan key:generate
@composer install
@npm install
@php artisan migrate
@php artisan db:seed
@npm run dev
@php artisan serve
Теперь я просто пишу make up — и Laravel запускается 🚀
Можно добавить и другие команды: make test, make down, make fresh, make lint, и каждый проект будет управляться по единому сценарию. Это экономит много времени.
💡 Совет: обязательно ставь @ перед командами — так терминал не будет засорён выводом строк Makefile.
👉 @php_be1
Сегодня я расскажу вам о возможности PHP, которую многие либо не знают, либо забывают использовать — это деструктуризация массива. И зря!
Смотрите, вместо привычного способа:
$user = getUser(); // ['name' => 'Ivan', 'email' => 'ivan@example.com']
$name = $user['name'];
$email = $user['email'];
Можно сделать так:
['name' => $name, 'email' => $email] = getUser();
Код стал более чистым, коротким и понятным. Особенно приятно, когда возвращается ассоциативный массив — не нужно писать вручную много $data['ключ'].
Или с обычными массивами:
[$id, $name, $email] = getUserArray(); // [1, 'Ivan', 'ivan@example.com']
Деструктуризация массива работает с любой нумерацией — главное, чтобы структура совпадала.
💡 Я часто использую это в контроллерах, в тестах и при разборе конфигураций. Это удобно и читаемо.
Смотрите, вместо привычного способа:
$user = getUser(); // ['name' => 'Ivan', 'email' => 'ivan@example.com']
$name = $user['name'];
$email = $user['email'];
Можно сделать так:
['name' => $name, 'email' => $email] = getUser();
Код стал более чистым, коротким и понятным. Особенно приятно, когда возвращается ассоциативный массив — не нужно писать вручную много $data['ключ'].
Или с обычными массивами:
[$id, $name, $email] = getUserArray(); // [1, 'Ivan', 'ivan@example.com']
Деструктуризация массива работает с любой нумерацией — главное, чтобы структура совпадала.
💡 Я часто использую это в контроллерах, в тестах и при разборе конфигураций. Это удобно и читаемо.
Привет!
Мы — основатели KTS, IT–компании со штатом в 170+ специалистов, которая создает цифровые продукты для бизнеса с 2015 года.
Недавно мы запустили канал, в котором простым языком рассказываем о том, как бизнес пользуется ИИ-агентами, и объясняем, как они устроены изнутри.
Этот канал будет про:
– кейсы внедрения AI крупными компаниями и стартапами по всему миру;
– то, как мы сами внедряем AI в работу компании и что делаем для российских клиентов;
– устройство AI-агентов с упором на бизнес-эффект.
Подпишись () и черпай полезный опыт!
@php_be1
https://t.me/inside_ai_tech
Мы — основатели KTS, IT–компании со штатом в 170+ специалистов, которая создает цифровые продукты для бизнеса с 2015 года.
Недавно мы запустили канал, в котором простым языком рассказываем о том, как бизнес пользуется ИИ-агентами, и объясняем, как они устроены изнутри.
Этот канал будет про:
– кейсы внедрения AI крупными компаниями и стартапами по всему миру;
– то, как мы сами внедряем AI в работу компании и что делаем для российских клиентов;
– устройство AI-агентов с упором на бизнес-эффект.
Подпишись () и черпай полезный опыт!
@php_be1
https://t.me/inside_ai_tech
Telegram
Внутри AI | Кейсы ИИ Агентов в бизнесе
AI Агенты и их применение в бизнесе
Обзоры, кейсы, практика
Обзоры, кейсы, практика
Релизы PHP 8.4.6 и 8.3.20
https://www.php.net/ChangeLog-8.php
Также в апреле был проведён целевой аудит безопасности исходного кода PHP, что позволило закрыть несколько потенциальных уязвимостей.
@php_be1
https://www.php.net/ChangeLog-8.php
Также в апреле был проведён целевой аудит безопасности исходного кода PHP, что позволило закрыть несколько потенциальных уязвимостей.
@php_be1
⚡️Laravel — удобный PHP-фреймворк, а его возможности выходят далеко за рамки классической веб-разработки. Хотите увидеть, как он помогает автоматизировать реальные процессы?
На бесплатном вебинаре 16 апреля в 20:00 мск покажем, как с помощью Laravel и Telegram Bot API создать Telegram-бота для дистанционного полива цветов. Подключим IoT-устройства, разберём работу с MQTT и визуализируем данные через Grafana.
Вы узнаете, как использовать Laravel в IoT-сценариях, управлять устройствами через Telegram, собирать и отображать метрики, а также получите представление о возможностях Arduino на примере ESP-8266.
👉Регистрируйтесь и получите скидку на большое обучение «Framework Laravel»: https://clck.ru/3LLvTd
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На бесплатном вебинаре 16 апреля в 20:00 мск покажем, как с помощью Laravel и Telegram Bot API создать Telegram-бота для дистанционного полива цветов. Подключим IoT-устройства, разберём работу с MQTT и визуализируем данные через Grafana.
Вы узнаете, как использовать Laravel в IoT-сценариях, управлять устройствами через Telegram, собирать и отображать метрики, а также получите представление о возможностях Arduino на примере ESP-8266.
👉Регистрируйтесь и получите скидку на большое обучение «Framework Laravel»: https://clck.ru/3LLvTd
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🛠 Как записывать SQL-запросы только в случае ошибок
Часто сталкиваюсь с ситуацией: ошибка 500 в продакшене, и непонятно, что именно пошло не так. Особенно если это связано с ошибкой в SQL-запросе. Логировать все SQL-запросы — это слишком много и создает лишний шум. Но логировать только при исключениях — это отличное решение!
🔍 Решение
Добавьте следующий код в AppServiceProvider:
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
public function boot()
{
DB::listen(function ($query) {
if (app()->bound('exception.logged')) {
Log::channel('sql')->debug($query->sql, $query->bindings);
}
});
app()->singleton('exception.logged', function () {
return true;
});
app()->error(function (\Throwable $e) {
app()->instance('exception.logged', true);
});
}
🔐 Пояснение
- При каждом SQL-запросе мы проверяем, возникло ли исключение.
- Если да — записываем SQL.
- Используем отдельный лог-канал sql, чтобы не загромождать основной laravel.log.
👉 Создайте в config/logging.php канал sql, направьте его в отдельный файл, например storage/logs/sql.log.
Теперь, если в продакшене произойдет ошибка, вы увидите, какой SQL-запрос был выполнен перед ней. Это значительно упрощает диагностику проблем.
Часто сталкиваюсь с ситуацией: ошибка 500 в продакшене, и непонятно, что именно пошло не так. Особенно если это связано с ошибкой в SQL-запросе. Логировать все SQL-запросы — это слишком много и создает лишний шум. Но логировать только при исключениях — это отличное решение!
🔍 Решение
Добавьте следующий код в AppServiceProvider:
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
public function boot()
{
DB::listen(function ($query) {
if (app()->bound('exception.logged')) {
Log::channel('sql')->debug($query->sql, $query->bindings);
}
});
app()->singleton('exception.logged', function () {
return true;
});
app()->error(function (\Throwable $e) {
app()->instance('exception.logged', true);
});
}
🔐 Пояснение
- При каждом SQL-запросе мы проверяем, возникло ли исключение.
- Если да — записываем SQL.
- Используем отдельный лог-канал sql, чтобы не загромождать основной laravel.log.
👉 Создайте в config/logging.php канал sql, направьте его в отдельный файл, например storage/logs/sql.log.
Теперь, если в продакшене произойдет ошибка, вы увидите, какой SQL-запрос был выполнен перед ней. Это значительно упрощает диагностику проблем.
Сегодня мы обсудим типы данных в PHP и правильное их использование в вашем проекте.
🧠 Преимущества строгой типизации в PHP
С выходом PHP 7 появилась возможность указывать типы аргументов и возвращаемых значений. В PHP 8 требования стали ещё строже. Однако многие всё ещё игнорируют эту возможность — и это неправильно!
Вот пример. Допустим, у вас есть функция:
function calculateTotal($price, $quantity) {
return $price * $quantity;
}
Теперь тот же код с указанием типов:
function calculateTotal(float $price, int $quantity): float {
return $price * $quantity;
}
Преимущества второго варианта:
- Автоматическая проверка типов во время выполнения
- IDE подсказывает, если передаются неправильные значения
- Код становится самодокументируемым
- Проще проводить тестирование
🔐 Мой совет: включите строгий режим в начале всех ваших файлов:
declare(strict_types=1);
Это заставит PHP работать с более строгой типизацией и поможет выявлять ошибки ещё до выполнения кода.
💬 Используете ли вы строгую типизацию? Или по-прежнему пишете $data = getData(); и надеетесь, что получите ожидаемое значение?
Поделитесь своим опытом в комментариях👇
👉 [|@php_be1]
🧠 Преимущества строгой типизации в PHP
С выходом PHP 7 появилась возможность указывать типы аргументов и возвращаемых значений. В PHP 8 требования стали ещё строже. Однако многие всё ещё игнорируют эту возможность — и это неправильно!
Вот пример. Допустим, у вас есть функция:
function calculateTotal($price, $quantity) {
return $price * $quantity;
}
Теперь тот же код с указанием типов:
function calculateTotal(float $price, int $quantity): float {
return $price * $quantity;
}
Преимущества второго варианта:
- Автоматическая проверка типов во время выполнения
- IDE подсказывает, если передаются неправильные значения
- Код становится самодокументируемым
- Проще проводить тестирование
🔐 Мой совет: включите строгий режим в начале всех ваших файлов:
declare(strict_types=1);
Это заставит PHP работать с более строгой типизацией и поможет выявлять ошибки ещё до выполнения кода.
💬 Используете ли вы строгую типизацию? Или по-прежнему пишете $data = getData(); и надеетесь, что получите ожидаемое значение?
Поделитесь своим опытом в комментариях👇
👉 [|@php_be1]
В Laravel 12.9 добавлен мемоизированный драйвер кэша, который запоминает значения выбранные из основного кэша и сохраняет их в памяти на время выполнения. Проще говоря Кэш для Кэша :)
https://laravel.com/docs/12.x/cache#cache-memoization
@php_be1
https://laravel.com/docs/12.x/cache#cache-memoization
@php_be1
Рост нагрузки, стоимость инфраструктуры и ожидания пользователей — всё растёт. А что насчет производительности ваших сервисов?
21–25 апреля пройдет Podlodka PHP Crew (https://podlodka.io/phpcrew?utm_campaign=main_php_crew_6&utm_source=telegram&utm_medium=paid&utm_content=laravel_it)— онлайн-конференция, где дают практические советы по реализации оптимизации.
Podlodka PHP Crew — это практичные конференции для PHP-разработчиков. Формат — утро и вечер, удобно для жизни и работы.
Что в программе:
• Павел Вирский (Ozon) — расскажет, как подойти к горизонтальному масштабированию PHP-приложений: с чего начать, что точно изменится в архитектуре и какие профиты вы получите от балансировки трафика 🧠
• Олег Мифле (Altenar) — покажет, как индексы в БД могут навредить, и что делать, когда “оптимизация” приводит к регрессу производительности 💥
• Ярослав Тарасов (Skyeng) — проведёт разбор оптимизации Symfony-приложения через RoadRunner: от архитектуры до конкретных замеров ⚙️
• Александр Макаров (Yii, Twindo) — расскажет о низкоуровневой оптимизации PHP: от мелких улучшений до AI, который сам оптимизирует ваш код 🧩
🎯 Всё это — для того, чтобы применить знания сразу.
Зарегистрироваться: https://podlodka.io/phpcrew (https://podlodka.io/phpcrew?utm_campaign=main_php_crew_6&utm_source=telegram&utm_medium=paid&utm_content=laravel_it)
@php_be1
21–25 апреля пройдет Podlodka PHP Crew (https://podlodka.io/phpcrew?utm_campaign=main_php_crew_6&utm_source=telegram&utm_medium=paid&utm_content=laravel_it)— онлайн-конференция, где дают практические советы по реализации оптимизации.
Podlodka PHP Crew — это практичные конференции для PHP-разработчиков. Формат — утро и вечер, удобно для жизни и работы.
Что в программе:
• Павел Вирский (Ozon) — расскажет, как подойти к горизонтальному масштабированию PHP-приложений: с чего начать, что точно изменится в архитектуре и какие профиты вы получите от балансировки трафика 🧠
• Олег Мифле (Altenar) — покажет, как индексы в БД могут навредить, и что делать, когда “оптимизация” приводит к регрессу производительности 💥
• Ярослав Тарасов (Skyeng) — проведёт разбор оптимизации Symfony-приложения через RoadRunner: от архитектуры до конкретных замеров ⚙️
• Александр Макаров (Yii, Twindo) — расскажет о низкоуровневой оптимизации PHP: от мелких улучшений до AI, который сам оптимизирует ваш код 🧩
🎯 Всё это — для того, чтобы применить знания сразу.
Зарегистрироваться: https://podlodka.io/phpcrew (https://podlodka.io/phpcrew?utm_campaign=main_php_crew_6&utm_source=telegram&utm_medium=paid&utm_content=laravel_it)
@php_be1
🚀 Почему пользователи платят $30 за простой конвертер картинок? Давайте разберемся.
Кирилл из комьюнити создал простой продукт всего за один месяц, внедрив метод, которой уже принес результат.
Как он это сделал:
1️⃣ Анализ спроса: через поисковые запросы он увидел, что много людей ищут конвертацию «HEIC to JPG».
2️⃣ Фокус на главном: удалил всё лишнее, оставив только функцию конвертации в один клик.
3️⃣ Скорость внедрения: за 30 дней сделал запуск без перфекционизма.
Что из этого получилось:
— Доход $500 в месяц с тенденцией роста.
— Более $10K заработано на конвертере.
— $0 на рекламу, всего $40 в месяц на сервер.
Выводы:
— Люди платят за удобство, даже если есть бесплатные аналоги.
— Продукт функционирует автоматически с минимальной поддержкой.
— Быстрая и экономичная проверка идеи может быть успешной.
Наши успехи:
— Более 400 запусков по этой методике.
— Некоторые продукты уже набрали от 50К до 100К+ пользователей.
👉 Присоединяйтесь к @its_capitan — следите за процессом разработки, продвижения и узнайте, сколько можно заработать на таких микро-продуктах.
@php_be1
Кирилл из комьюнити создал простой продукт всего за один месяц, внедрив метод, которой уже принес результат.
Как он это сделал:
1️⃣ Анализ спроса: через поисковые запросы он увидел, что много людей ищут конвертацию «HEIC to JPG».
2️⃣ Фокус на главном: удалил всё лишнее, оставив только функцию конвертации в один клик.
3️⃣ Скорость внедрения: за 30 дней сделал запуск без перфекционизма.
Что из этого получилось:
— Доход $500 в месяц с тенденцией роста.
— Более $10K заработано на конвертере.
— $0 на рекламу, всего $40 в месяц на сервер.
Выводы:
— Люди платят за удобство, даже если есть бесплатные аналоги.
— Продукт функционирует автоматически с минимальной поддержкой.
— Быстрая и экономичная проверка идеи может быть успешной.
Наши успехи:
— Более 400 запусков по этой методике.
— Некоторые продукты уже набрали от 50К до 100К+ пользователей.
👉 Присоединяйтесь к @its_capitan — следите за процессом разработки, продвижения и узнайте, сколько можно заработать на таких микро-продуктах.
@php_be1
Аутентификация на основе cookies с помощью Laravel Sanctum
Пошаговое руководство по настройке аутентификации на основе cookies с помощью Laravel Sanctum. В процессе мы объясним логику каждого шага и покажем, как настроить Postman. Кроме того, мы рассмотрим наиболее распространенные проблемы, связанные с CORS.
https://habr.com/ru/companies/otus/articles/902080/
@php_be1
Пошаговое руководство по настройке аутентификации на основе cookies с помощью Laravel Sanctum. В процессе мы объясним логику каждого шага и покажем, как настроить Postman. Кроме того, мы рассмотрим наиболее распространенные проблемы, связанные с CORS.
https://habr.com/ru/companies/otus/articles/902080/
@php_be1
Выпуск СУБД MySQL 9.3.0
Компания Oracle сформировала новую ветку СУБД MySQL 9.3.0. Сборки MySQL Community Server 9.3.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. В соответствии с внедрённой в 2023 году новой моделью формирования релизов, MySQL 9.3 отнесён к веткам "Innovation". Innovation-ветки рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности, публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 9.3 прекращена поддержка ветки 9.2). Летом планируют сформировать LTS-релиз 9.4, рекомендованный для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. Следом за LTS-веткой будет сформирована новая Innovation-ветка - MySQL 10.0.
https://www.opennet.ru/opennews/art.shtml?num=63106
@php_be1
Компания Oracle сформировала новую ветку СУБД MySQL 9.3.0. Сборки MySQL Community Server 9.3.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. В соответствии с внедрённой в 2023 году новой моделью формирования релизов, MySQL 9.3 отнесён к веткам "Innovation". Innovation-ветки рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности, публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 9.3 прекращена поддержка ветки 9.2). Летом планируют сформировать LTS-релиз 9.4, рекомендованный для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. Следом за LTS-веткой будет сформирована новая Innovation-ветка - MySQL 10.0.
https://www.opennet.ru/opennews/art.shtml?num=63106
@php_be1
Открытый вебинар «Почему стоит выбрать Symfony для нового проекта» в OTUS
📅 29 апреля, 20:00 МСК · онлайн · бесплатно
👤 Спикер — Михаил Каморин
Кто ведёт
• Tech Lead в Avito
• 20 + лет в разработке (10 лет B2B, 4 года B2C)
• 10 + лет на PHP, 5 лет — на Symfony
• Автор двух RAD‑движков (Laravel + Symfony), запущенных в 10 + прод‑проектах
• Выпускник ВМК МГУ, член ПК Podlodka PHP Crew
Symfony — ядро экосистемы PHP. Разберём, как фреймворк помогает запускать и поддерживать продукты с горизонтом 5 + лет.
Ключевые вопросы
• Модульность — 25 + компонентов подключаются по мере надобности
• Гибкость — DI‑контейнер переопределяет сервисы без боли
• Стабильность — LTS 3 года, минорные версии совместимы назад
• Speed‑toolkit — Symfony CLI, Flex, автоконфигурация, Profiler
Кому полезно
— Middle/Senior PHP‑разработчикам, архитекторам и тимлидам, которым нужны строгие аргументы «за» Symfony.
Формат — 60 минут концентрированной практики + Q&A без маркетинговой воды.
Участие бесплатное. Места ограничены. Регистрируйтесь.
→ https://clck.ru/3LaSdQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📅 29 апреля, 20:00 МСК · онлайн · бесплатно
👤 Спикер — Михаил Каморин
Кто ведёт
• Tech Lead в Avito
• 20 + лет в разработке (10 лет B2B, 4 года B2C)
• 10 + лет на PHP, 5 лет — на Symfony
• Автор двух RAD‑движков (Laravel + Symfony), запущенных в 10 + прод‑проектах
• Выпускник ВМК МГУ, член ПК Podlodka PHP Crew
Symfony — ядро экосистемы PHP. Разберём, как фреймворк помогает запускать и поддерживать продукты с горизонтом 5 + лет.
Ключевые вопросы
• Модульность — 25 + компонентов подключаются по мере надобности
• Гибкость — DI‑контейнер переопределяет сервисы без боли
• Стабильность — LTS 3 года, минорные версии совместимы назад
• Speed‑toolkit — Symfony CLI, Flex, автоконфигурация, Profiler
Кому полезно
— Middle/Senior PHP‑разработчикам, архитекторам и тимлидам, которым нужны строгие аргументы «за» Symfony.
Формат — 60 минут концентрированной практики + Q&A без маркетинговой воды.
Участие бесплатное. Места ограничены. Регистрируйтесь.
→ https://clck.ru/3LaSdQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru