ru
Feedback
PHP Academy

PHP Academy

Открыть в Telegram
9 435
Подписчики
Нет данных24 часа
-67 дней
-8430 день
Привлечение подписчиков
июнь '26
июнь '26
+20
в 0 каналах
май '26
+52
в 0 каналах
Get PRO
апрель '26
+49
в 0 каналах
Get PRO
март '26
+76
в 0 каналах
Get PRO
февраль '26
+154
в 0 каналах
Get PRO
январь '26
+275
в 0 каналах
Get PRO
декабрь '25
+94
в 0 каналах
Get PRO
ноябрь '25
+176
в 43 каналах
Get PRO
октябрь '25
+117
в 14 каналах
Get PRO
сентябрь '25
+216
в 37 каналах
Get PRO
август '25
+238
в 7 каналах
Get PRO
июль '25
+384
в 57 каналах
Get PRO
июнь '25
+316
в 58 каналах
Get PRO
май '25
+101
в 0 каналах
Get PRO
апрель '25
+177
в 26 каналах
Get PRO
март '25
+90
в 0 каналах
Get PRO
февраль '25
+225
в 41 каналах
Get PRO
январь '25
+234
в 44 каналах
Get PRO
декабрь '24
+501
в 38 каналах
Get PRO
ноябрь '24
+1 172
в 53 каналах
Get PRO
октябрь '24
+1 312
в 55 каналах
Get PRO
сентябрь '24
+673
в 198 каналах
Get PRO
август '24
+532
в 40 каналах
Get PRO
июль '24
+648
в 51 каналах
Get PRO
июнь '24
+727
в 55 каналах
Get PRO
май '24
+344
в 37 каналах
Get PRO
апрель '24
+404
в 46 каналах
Get PRO
март '24
+281
в 20 каналах
Get PRO
февраль '24
+131
в 1 каналах
Get PRO
январь '24
+323
в 43 каналах
Get PRO
декабрь '23
+238
в 39 каналах
Get PRO
ноябрь '23
+204
в 28 каналах
Get PRO
октябрь '23
+376
в 18 каналах
Get PRO
сентябрь '23
+525
в 0 каналах
Get PRO
август '23
+2 152
в 0 каналах
Get PRO
июль '23
+2 955
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
04 июня+6
03 июня+4
02 июня+6
01 июня+4
Посты канала
Оптимизация скорости работы PHP кода 🏎️ Сегодня я покажу вам несколько простых, но эффективных способов ускорить выполнение PHP-скриптов. Оптимизация кода – важная часть работы разработчика, ведь никто не любит медленные сайты. 🚀 🔥 1. Избегайте лишних запросов к БД Частая ошибка – несколько одинаковых запросов к базе данных в одном запросе. Используйте кэширование (Redis, Memcached), а если данные редко меняются – сохраняйте их в файл. 🔥 2. Используйте isset() вместо array_key_exists() Функция isset() работает быстрее, чем array_key_exists(), потому что она не только проверяет наличие ключа, но и сразу его значение.

// Медленный вариант
if (array_key_exists('key', $array)) { }

// Быстрый вариант
if (isset($array['key'])) { }
🔥 3. Не злоупотребляйте foreach при больших объемах данных Если у вас массив с десятками тысяч элементов, попробуйте array_map() или array_walk() – они работают быстрее за счет встроенной оптимизации в C. 🔥 4. Подключайте файлы правильно Разница между require, include, require_once и include_once может сильно повлиять на производительность. require_once проверяет, был ли уже подключен файл, что замедляет выполнение. Если точно знаете, что файл не дублируется – используйте require. 🔥 5. Включите OPCache OPCache кэширует байт-код PHP и ускоряет его выполнение в разы. Включите его в php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
🔥 6. Используйте json_encode() вместо serialize() Функция json_encode() работает быстрее, чем serialize(), и при этом генерирует более компактные данные.

$data = ['name' => 'John', 'age' => 25];

// Медленный вариант
$serialized = serialize($data);

// Быстрый вариант
$json = json_encode($data);
✅ Оптимизация PHP кода — это не магия, а грамотный подход к написанию скриптов. Используйте эти советы, и ваши проекты станут быстрее!

2
Docker и Kubernetes: основы разработки под облачную инфраструктуру Курс для тех, кто хочет держать свой стэк и знания актуаль
Docker и Kubernetes: основы разработки под облачную инфраструктуру Курс для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроены Docker, Kubernetes, и современная облачная инфраструктура в целом. 🌐 Чему вы научитесь: 🤩 Создавать облачную инфраструктуру «с нуля» управление и конфигурация серверов с Terraform, Ansible, cloud‑init 🤩 Уверенно работать с Docker: Dockerfile, слои, кэш, многоступенчатые сборки, реестры, безопасность, air‑gapped 🤩 Проектировать многоконтейнерные приложения: паттерны Sidecar, Ambassador, Adapter, проверки (liveness/readiness), DaemonSet и поды 🤩 Настраивать сеть и балансировку в Kubernetes ClusterIP, Services, Ingress, MetalLB, TLS/SNI, сервис‑меши (Istio) 🤩 Организовывать хранение данных: PersistentVolumes / PVC, StorageClasses, резервное копирование. Упаковка в Helm и поддержка через Operator 🥸 Кто мы: R&D-центр Devhands. Автор курса — Николай Ихалайнен, эксперт по СУБД и бекенду (ex-Percona), со-основатель MyDB, энтузиаст открытого ПО. 🗓 Старт курса: 10 июня, 6 недель обучения. Изучить программу и записаться можно здесь. Ждем вас! Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxNnFKA
729
3
Совет по Laravel 💡 Знаете ли вы, что... вы можете временно отключить timestamps при сохранении модели?
Совет по Laravel 💡 Знаете ли вы, что... вы можете временно отключить timestamps при сохранении модели?
1 292
4
✔️ Machine Learning Roadmap: нормальная карта входа в ML без сказок про «выучить нейросети за месяц» Большой русскоязычный ro
✔️ Machine Learning Roadmap: нормальная карта входа в ML без сказок про «выучить нейросети за месяц» Большой русскоязычный roadmap по машинному обучению: от первого import numpy до LLM, RAG, fine-tuning, AI-агентов и MLOps. И это не просто очередной список ссылок в стиле «посмотри 40 курсов и станешь ML engineer». Внутри нормальная структура: что учить, в каком порядке, зачем это нужно и какой практический артефакт должен появиться после каждого этапа. Roadmap разбит на 7 треков: - фундамент: Python, математика, статистика, инструменты - классический ML: scikit-learn, табличные данные, метрики, валидация - Deep Learning: PyTorch, CNN, RNN, training loop - LLM и трансформеры: attention, KV-cache, RAG, LoRA, агенты - Generative AI: изображения, видео, аудио, мультимодальность - MLOps и прод: Docker, Kubernetes, CI/CD, мониторинг, serving - специализация: CV, NLP, RecSys, RL, Safety Самое полезное - там честно написано, что ML это не только «обучить модель». В реальности большая часть работы живёт вокруг данных, метрик, деплоя, мониторинга, воспроизводимости и понимания, почему модель вообще ошибается. Хорошая мысль из roadmap: LLM не делает джуна сениором. Она ускоряет того, кто понимает базу. Без базы человек просто превращается в оператора Copilot, который не может объяснить, почему модель сломалась. По времени тоже без инфоцыганства: - 0-3 месяца: Python, математика, классический ML - 3-6 месяцев: Deep Learning и PyTorch - 6-12 месяцев: LLM, RAG, fine-tuning, AI-агенты - 12+ месяцев: MLOps, прод, масштабирование, специализация Короче, если давно хотели системно зайти в ML, а не прыгать между роликами про ChatGPT, Stable Diffusion и «топ-10 библиотек», это хороший ориентир. https://github.com/justxor/MachineLearningRoadmap/tree/main
1 786
5
Один человек написал код, который сегодня работает на 20+ млрд устройств Даниэль Стенберг начал cURL в 1996 году как маленьку
Один человек написал код, который сегодня работает на 20+ млрд устройств Даниэль Стенберг начал cURL в 1996 году как маленькую утилиту для скачивания файлов из интернета. Без большой команды. Без венчурных денег. Без хайпа. Просто писал open-source инструмент в свободное время. Почти 30 лет спустя cURL стал тихим фундаментом интернета. Он есть в iPhone, Android, PlayStation, Tesla, серверах, приложениях, сайтах и куче устройств, о которых мы даже не думаем. Его используют Spotify, YouTube, Netflix, Instagram и тысячи других сервисов. NASA даже использовала cURL на марсианском вертолёте Ingenuity. То есть код Стенберга буквально летал на другой планете. Самое безумное - первые 23 года он не зарабатывал на cURL ничего. Триллионные компании строили продукты на его коде, а он продолжал бесплатно поддерживать проект и отвечать на баг-репорты. В 2017 году король Швеции вручил ему премию Полхема - впервые в истории эту награду получил open-source проект. В 2019 году Стенберг наконец начал работать над cURL фултайм в wolfSSL. В 2025 году получил золотую медаль IVA от Королевской шведской академии инженерных наук. Но по сути ничего не изменилось: он всё ещё пишет код из домашнего офиса в Стокгольме и сам отвечает на GitHub issues. Почти 30 лет человек делал инструмент, который работает в фоне и держит огромную часть интернета. Без громких презентаций. Без миллиардных раундов. Просто хороший код, который пережил почти всё.
1 893
6
Нет текста...
1 725
7
Совет по PHP/Laravel 💡 Вместо того чтобы выполнять цикл `foreach` по массиву для поиска значения записи, вы можете использов
Совет по PHP/Laravel 💡 Вместо того чтобы выполнять цикл `foreach` по массиву для поиска значения записи, вы можете использовать метод Laravel Collection `contains()`.
0
8
✨ Советы по Laravel ✨ Если вы создаете API в своем проекте: 🪐 Применяйте версионирование в самом первом релизе 🪐 Поддержива
✨ Советы по Laravel ✨ Если вы создаете API в своем проекте: 🪐 Применяйте версионирование в самом первом релизе 🪐 Поддерживайте чистоту в routes/api.php, создавая разные файлы маршрутов для каждой версии👇 🧹 Более чистый код, 📈 Лучшие результаты
0
9
👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи» Представьте: через три месяца вы открываете чужо
👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи» Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу. Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд. Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой. Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом. А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly. Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью. Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/
0
10
Совет по Laravel 💡 Данные загружаются быстрее, если целевое значение является целым числом. Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴
Совет по Laravel 💡 Данные загружаются быстрее, если целевое значение является целым числом. Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.
0
11
🚀 Ты всё ещё называешь обёртку над ChatGPT «AI-продуктом»? Пока ты пишешь промпты - рынок уже ушёл дальше. Сейчас выигрывают
🚀 Ты всё ещё называешь обёртку над ChatGPT «AI-продуктом»? Пока ты пишешь промпты - рынок уже ушёл дальше. Сейчас выигрывают не те, кто умеет красиво формулировать запросы, а те, кто строит агентные системы: - принимают решения сами - ходят в API - работают с Postgres и Redis - управляют браузером через Playwright - доводят задачи до результата без человека И вот правда, о которой мало говорят: 90% таких систем умирают между ноутбуком и продом. Работает локально. Ломается в реальности. Нет архитектуры. Нет устойчивости. Нет деплоя. AI Agents Engineering - курс со Stepik, который закрывает этот разрыв. - LangGraph, AutoGen, Computer Use - архитектура агентов, а не «скрипты на коленке» - LLMOps, логирование, стабильность - деплой в Docker и работа в проде 8 модулей, 120+ шагов, всё через практику. На выходе не «сертификат ради галочки», а: - рабочий production-агент - понимание, как строить такие системы с нуля - навыки, за которые уже платят Сейчас самое окно входа. Через полгода это станет базой, а не преимуществом. Скидка 55% действует ещё 48 часов: https://stepik.org/a/276971/
0
12
Совет по Laravel Передавайте большие файлы без задержек, используя потоки
Совет по Laravel Передавайте большие файлы без задержек, используя потоки
0
13
⌛️ Как настроить production-ready логирование в PHP Логи в проде — это не просто error_log(). Это структурированные данные, correlation ID, асинхронная запись и ротация. Разбираем пошаговую настройку. 1️⃣ Выбираем стек: Monolog PHP де-факто стандарт для логирования — Monolog. Устанавливаем через Composer: composer require monolog/monolog Если на Laravel, уже есть из коробки. Если нет, то подключаем вручную. 2️⃣ Базовая конфигурация с JSON-форматом use Monolog\Logger; use Monolog\Handler\RotatingFileHandler; use Monolog\Formatter\JsonFormatter; $log = new Logger('app'); $handler = new RotatingFileHandler( __DIR__ . '/logs/application.log', maxFiles: 30, level: Logger::INFO ); $handler->setFormatter(new JsonFormatter()); $log->pushHandler($handler); JSON-формат удобен для парсинга в ELK / Grafana Loki. 3️⃣ Добавляем Correlation ID Трекаем каждый запрос через Processor: class CorrelationIdProcessor implements ProcessorInterface { private string $correlationId; public function __construct() { $this->correlationId = $_SERVER['HTTP_X_CORRELATION_ID'] ?? bin2hex(random_bytes(16)); header('X-Correlation-ID: ' . $this->correlationId); } public function __invoke(array $record): array { $record['extra']['correlation_id'] = $this->correlationId; return $record; } } $log->pushProcessor(new CorrelationIdProcessor()); Теперь каждая строка лога привязана к конкретному запросу. 4️⃣ Ротация и лимиты $handler = new RotatingFileHandler( filename: __DIR__ . '/logs/app.log', maxFiles: 30, level: Logger::WARNING, ); Для ограничения по размеру связываем с logrotate на уровне системы: # /etc/logrotate.d/php-app /var/www/app/logs/*.log { daily rotate 30 compress missingok size 100M } 5️⃣ Асинхронная запись PHP синхронный по природе, но можно буферизовать тяжёлые хендлеры: use Monolog\Handler\BufferHandler; $bufferHandler = new BufferHandler( handler: new StreamHandler('logs/app.log'), bufferSize: 100, flushOnOverflow: true ); $log->pushHandler($bufferHandler); Буферизуем записи и сбрасываем пачкой → меньше I/O операций. 6️⃣ Интеграция с мониторингом Отправляем в Graylog через GELF: use Monolog\Handler\GelfHandler; use Gelf\Publisher; use Gelf\Transport\UdpTransport; $publisher = new Publisher( new UdpTransport('logstash.example.com', 12201) ); $log->pushHandler(new GelfHandler($publisher)); Или напрямую в Telegram для критических ошибок. Отдельный хендлер, 5 минут работы. 📌 Итог Monolog + JsonFormatter + CorrelationId + logrotate = логи, с которыми не стыдно идти в прод.
0
14
Локализация текстов в Symfony. Бесплатный урок курса «Symfony Framework» Перевести интерфейс через файлы — это только начало.
Локализация текстов в Symfony. Бесплатный урок курса «Symfony Framework» Перевести интерфейс через файлы — это только начало. Сложности начинаются тогда, когда переводить нужно не статичные строки, а содержимое из базы данных, которое живёт в админке и должно оставаться управляемым с точки зрения архитектуры. 📅 На открытом уроке 15 апреля в 20:00: — Разберём реальный сценарий локализации в Symfony — от стандартного подхода со статическими переводами до более сложной работы с динамическими текстами из базы данных. — Покажем возможности symfony/translation, разберём подходы к хранению переводов, варианты моделей данных и практическую реализацию получения локализованного содержимого через Doctrine. Урок не для тех, кто хочет решить многоязычность «одной таблицей на всё», не думает о поддержке архитектуры и считает, что локализация заканчивается на переводе кнопок и заголовков. 👉 Записаться: https://otus.pw/FFmT/?erid=2W5zFGq8i8q Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
0
15
⚡️ 8 хуков Claude Code, которые автоматизируют то, что вы вечно забываете Вы говорите Claude Code отформатировать файл, а он
⚡️ 8 хуков Claude Code, которые автоматизируют то, что вы вечно забываете Вы говорите Claude Code отформатировать файл, а он этого не делает. Просите не трогать .env, а он лезет туда первым делом. Напоминаете прогнать тесты перед завершением, а он забывает. Знакомо? Все потому, что CLAUDE.md по сути является рекомендацией. Claude читает его и следует ему примерно в 80% случаев. Хуки работают иначе. Это автоматические действия, которые срабатывают каждый раз, когда Claude редактирует файл, выполняет команду или завершает задачу. Ниже разберем 8 готовых хуков, которые можно скопировать прямо в settings.json и больше о них не вспоминать. https://uproger.com/8-hukov-claude-code-kotorye-avtomatiziruyut-to-chto-vy-vechno-zabyvaete/
0
PHP Academy - Статистика и аналитика Telegram-канала @phpshka