es
Feedback
Библиотека PHP программиста 👨🏼‍💻👩‍💻

Библиотека PHP программиста 👨🏼‍💻👩‍💻

Ir al canal en Telegram

Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon По всем вопросам @evgenycarter

Mostrar más
2 054
Suscriptores
Sin datos24 horas
-47 días
-730 días
Atraer Suscriptores
oct '26
octubre '26
+2
en 0 canales
septiembre '26
+10
en 0 canales
Get PRO
agosto '26
+8
en 0 canales
Get PRO
julio '26
+15
en 0 canales
Get PRO
junio '26
+6
en 0 canales
Get PRO
mayo '26
+11
en 0 canales
Get PRO
abril '26
+15
en 0 canales
Get PRO
marzo '26
+12
en 0 canales
Get PRO
febrero '26
+20
en 0 canales
Get PRO
enero '26
+29
en 0 canales
Get PRO
diciembre '25
+17
en 0 canales
Get PRO
noviembre '25
+35
en 32 canales
Get PRO
octubre '25
+36
en 0 canales
Get PRO
septiembre '25
+45
en 36 canales
Get PRO
agosto '25
+31
en 0 canales
Get PRO
julio '25
+27
en 26 canales
Get PRO
junio '25
+47
en 20 canales
Get PRO
mayo '25
+47
en 43 canales
Get PRO
abril '25
+59
en 37 canales
Get PRO
marzo '25
+46
en 38 canales
Get PRO
febrero '25
+62
en 32 canales
Get PRO
enero '25
+50
en 34 canales
Get PRO
diciembre '24
+42
en 35 canales
Get PRO
noviembre '24
+47
en 33 canales
Get PRO
octubre '24
+51
en 30 canales
Get PRO
septiembre '24
+117
en 29 canales
Get PRO
agosto '24
+69
en 18 canales
Get PRO
julio '24
+42
en 1 canales
Get PRO
junio '24
+56
en 24 canales
Get PRO
mayo '24
+67
en 19 canales
Get PRO
abril '24
+51
en 1 canales
Get PRO
marzo '24
+81
en 21 canales
Get PRO
febrero '24
+75
en 19 canales
Get PRO
enero '24
+102
en 24 canales
Get PRO
diciembre '23
+82
en 24 canales
Get PRO
noviembre '23
+66
en 17 canales
Get PRO
octubre '23
+106
en 18 canales
Get PRO
septiembre '23
+69
en 0 canales
Get PRO
agosto '23
+66
en 0 canales
Get PRO
julio '23
+60
en 0 canales
Get PRO
junio '23
+76
en 0 canales
Get PRO
mayo '23
+113
en 0 canales
Get PRO
abril '23
+66
en 0 canales
Get PRO
marzo '23
+20
en 0 canales
Get PRO
febrero '23
+50
en 0 canales
Get PRO
enero '23
+108
en 0 canales
Get PRO
diciembre '22
+106
en 0 canales
Get PRO
noviembre '22
+73
en 0 canales
Get PRO
octubre '22
+90
en 0 canales
Get PRO
septiembre '22
+302
en 0 canales
Get PRO
agosto '22
+341
en 0 canales
Get PRO
julio '22
+3 386
en 0 canales
Fecha
Crecimiento de Suscriptores
Menciones
Canales
06 octubre+2
05 octubre0
04 octubre0
03 octubre0
02 octubre0
01 octubre0
Publicaciones del Canal
Ты используешь ?? или остаёшься на isset()? Удобное сокращение или запутанный синтаксис? Что думаешь... 📲 Мы в MAX 👉 @php_l
Ты используешь ?? или остаёшься на isset()? Удобное сокращение или запутанный синтаксис? Что думаешь... 📲 Мы в MAX 👉 @php_lib

2
Оптимизация скорости работы 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); 📲 Мы в MAX 👉 @php_lib
301
3
Сегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и устойчивый код - магические методы. Да, те самые __get, __set, __call, __toString и компания. Они вроде бы удобные: можно ловко обращаться к несуществующим свойствам, вызывать методы, которых нет, и всё работает. Но вот вопрос — а как это тестировать и поддерживать? Когда код полагается на магию, отладка превращается в игру «угадай, откуда взялось это значение». IDE не подсказывает типы, автодополнение не работает, а дебаггер видит лишь хаос. Я не говорю, что магические методы нужно запретить. Они бывают полезны, например, в паттерне Proxy или для ленивой загрузки. Но использовать их стоит осознанно, с понятным контрактом. 👉 Советы от меня: - Если хочешь гибкости — лучше внедри __call через интерфейс или трейт с чёткой логикой. - Если используешь __get / __set — документируй все «виртуальные» свойства в phpdoc. - И главное - не прячь логику под магию. Пусть код говорит сам за себя. 📲 Мы в MAX 👉 @php_lib
376
4
Совет по Laravel💡 Если вы хотите автоматически удалять старые записи, используйте трейт Prunable. Нет необходимости писать с
Совет по Laravel💡 Если вы хотите автоматически удалять старые записи, используйте трейт Prunable. Нет необходимости писать собственные команды. 📲 Мы в MAX 👉 @php_lib
414
5
Совет по Laravel💡 Знаете ли вы .... tap() = Tweak and Return 🪄 Да, в Laravel метод tap() позволяет изменить объект и вернут
Совет по Laravel💡 Знаете ли вы .... tap() = Tweak and Return 🪄 Да, в Laravel метод tap() позволяет изменить объект и вернуть его обратно — идеально для чистого и читаемого кода. 📲 Мы в MAX 👉 @php_lib
541
6
Совет по Laravel💡 Знаете ли вы... В Laravel есть метод withProgressBar(), который позволяет добавлять прогресс-бары к консол
Совет по Laravel💡 Знаете ли вы... В Laravel есть метод withProgressBar(), который позволяет добавлять прогресс-бары к консольным командам. #Laravel 📲 Мы в MAX 👉 @php_lib
609
7
💡Совет по Laravel Определение языка пользователя Laravel использует компонент HttpFoundation из Symfony, который предоставля
💡Совет по Laravel Определение языка пользователя Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀 📲 Мы в MAX 👉 @php_lib
572
8
💡Знал ли вы, что… Метод Number::abbreviate в Laravel преобразует сложные числа в удобочитаемый формат: 📲 Мы в MAX 👉 @php_l
💡Знал ли вы, что… Метод Number::abbreviate в Laravel преобразует сложные числа в удобочитаемый формат: 📲 Мы в MAX 👉 @php_lib
581
9
Сегодня хочу поговорить про одну проблему, с которой я сталкивался сам и вижу её у других PHP-разработчиков - “магия” в коде.
Сегодня хочу поговорить про одну проблему, с которой я сталкивался сам и вижу её у других PHP-разработчиков - “магия” в коде. Что я имею в виду? Это когда ты открываешь проект, а там сервисы создаются «сами собой», данные в объект попадают неизвестно откуда, а половина зависимостей подтягивается где-то «под капотом». Вроде удобно - меньше кода писать. Но вот через пару месяцев ты сам же сидишь и думаешь: «А откуда вообще берётся этот объект? И почему тут такая зависимость?» 🔹 Основная проблема магии - она убивает явность кода. Чем больше скрытых механизмов, тем сложнее поддерживать проект и подключать новых разработчиков. Примеры из практики: - Использование глобальных хелперов вместо DI. - Автоматический вызов методов через __call или __get. - Массовая магия в Laravel (facades, hidden bindings и т.д.). 🛠 Что можно сделать: 1. Минимизировать скрытые механизмы - лучше написать чуть больше явного кода. 2. Использовать контейнер зависимостей, но регистрировать их явно. 3. Документировать «точки входа» и договориться в команде, где магия допустима, а где нет. Когда код становится предсказуемым, ты меньше тратишь времени на дебаг, быстрее понимаешь чужие изменения и увереннее двигаешься вперёд. А как у вас в проектах? Вы за явный код или любите, когда всё работает «само»? 📲 Мы в MAX 👉 @php_lib
558
10
Gemini API PHP Client Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini. Ус
Gemini API PHP Client Клиент Google Gemini API для PHP позволяет вам использовать модель искусственного интеллекта Gemini. Установка composer require gemini-api-php/client Базовая генерация текста use GeminiAPI\Client; use GeminiAPI\Resources\Parts\TextPart; $client = new Client('GEMINI_API_KEY'); $response = $client->geminiPro()->generateContent( new TextPart('PHP in less than 100 chars'), ); print $response->text(); // PHP: A server-side scripting language used to create dynamic web applications. // Easy to learn, widely used, and open-source. https://github.com/gemini-api-php/client 📲 Мы в MAX 👉 @php_lib
443
11
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса) Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак Английский с нуля 🇬🇧 https://max.ru/UchuEnglish 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С https://max.ru/channel_DevLab1C 1С:Предприятие 8 Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика https://max.ru/channel_cpp_geek C++ geek Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Rust📌 https://max.ru/channel_rust_lib Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика https://max.ru/channel_java_geek Java Geek GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии в IT📌 https://max.ru/progjob https://max.ru/channel_rabotait Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Городские📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП https://max.ru/channel_krasnodar_novosty Краснодар Новости https://max.ru/channel_novosibirsk_novosti Новосибирск https://max.ru/channel_samara_novosti Новости Самары https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга https://max.ru/channel_kazan_novosti Новости Казани https://max.ru/channel_omsk_novosti Новости Омска https://max.ru/channel_moskva_24 Москва 24
406
12
Сегодня хочу поделиться одной небольшой, но очень полезной привычкой, которая здорово экономит время в работе с PHP-проектами
Сегодня хочу поделиться одной небольшой, но очень полезной привычкой, которая здорово экономит время в работе с PHP-проектами. Когда я только начинал, я постоянно забывал про php artisan tinker (если речь про Laravel) или встроенный интерактивный шелл php -a. А ведь это супер-удобный способ быстро проверить кусок кода, протестировать работу функции или глянуть, что вернет тот или иной запрос. Например, нужно быстро понять, как работает кастомный accessor в модели? Вместо того чтобы городить временные роуты или var_dump-ить в контроллере - открываешь tinker: php artisan tinker И сразу работаешь с моделью: $user = App\Models\User::find(1); $user->profile->full_name; Буквально за пару секунд получаешь ответ, без лишнего мусора в коде. Еще круто использовать tinker для тестирования сервисов или вызова хелперов. Иногда я даже проверяю SQL-запросы через Eloquent, чтобы потом использовать их в сидерах или тестах. Короче, мой совет: если еще не используете — приучите себя чаще заходить в tinker. Это ваш "быстрый песочница", которая всегда под рукой. А вы как чаще отлаживаете код в Laravel - через tinker, dd() или дебаггер в IDE? Напишите в комментах, будет интересно сравнить! 📲 Мы в MAX 👉 @php_lib
362
13
💡 Совет по Laravel Не позволяй запросам к базе данных замедлять работу. Используй фасад Cache в Laravel для временного кэшир
💡 Совет по Laravel Не позволяй запросам к базе данных замедлять работу. Используй фасад Cache в Laravel для временного кэширования данных и сокращения количества обращений к базе. 📲 Мы в MAX 👉 @php_lib
420
14
Нужно ли в PHP перед вызовом функций ставить обратный слэш? Несколько лет назад я прочитал статью «How to dump and inspect PH
Нужно ли в PHP перед вызовом функций ставить обратный слэш? Несколько лет назад я прочитал статью «How to dump and inspect PHP OPCodes» в которой наконец увидел, что опкоды в PHP действительно существуют. И кроме того, мы, разработчики, которые пишем на PHP на эти опкоды можем влиять, тем самым оптимизируя производительность нашего кода. В статье так же рассказывалось о том, как применение бэкслэшей может ускорить выполнение программ. Я был под впечатлением... Опкодами (см. Код операции) называется некий промежуточный код, который всё ещё понятен человеку и который выполняется некой исполняющей средой. В случае PHP этой средой является Zend Virtual Machine (она же Zend Engine). https://habr.com/ru/articles/934316/ 📲 Мы в MAX 👉 @php_lib
450
15
Сегодня хочу поделиться темой, которая регулярно спасает мне часы (а иногда и дни) работы — как быстро находить и устранять у
Сегодня хочу поделиться темой, которая регулярно спасает мне часы (а иногда и дни) работы — как быстро находить и устранять узкие места в производительности PHP-приложения. Когда проект начинает подтормаживать, первая реакция — «ну, наверное, сервер слабый». А на деле 80% проблем можно найти прямо в коде. Вот мой рабочий чеклист: 1. Включаю профилировщик. Если проект на Laravel — laravel-debugbar или Clockwork. Для чистого PHP — Xdebug или Tideways. Они показывают, какие функции и запросы жрут время. 2. Смотрю SQL-запросы. Удивительно, сколько «тормозов» сидит именно в базе. Часто помогает банальное добавление индексов или переписывание одного запроса. 3. Ищу повторяющиеся операции. Иногда вижу: одна и та же функция дергается в цикле по 1000 раз, хотя результат можно закешировать. 4. Анализирую работу с файлами. Если есть много file_get_contents() или операций с большими файлами — выношу их в фоновые задачи (очереди). 5. Включаю кэширование. Даже простой OPcache и Redis для хранения промежуточных данных творят чудеса. Мой совет: не пытайтесь «оптимизировать на глаз». Всегда начинайте с измерений — профилировщик покажет правду. А вы как ищете и устраняете узкие места? Какие инструменты используете чаще всего? 📲 Мы в MAX 👉 @php_lib
438
16
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин https://max.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса) Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак Английский с нуля 🇬🇧 https://max.ru/UchuEnglish 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С https://max.ru/channel_DevLab1C 1С:Предприятие 8 Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика https://max.ru/channel_cpp_geek C++ geek Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Rust📌 https://max.ru/channel_rust_lib Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика https://max.ru/channel_java_geek Java Geek GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии в IT📌 https://max.ru/progjob https://max.ru/channel_rabotait Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
375
17
Сегодня хочу поделиться полезной практикой, которая реально экономит время при работе с чужим кодом — быстрая навигация и понимание проекта через composer.json. Когда попадаешь в новый проект, чаще всего первым делом начинаешь блуждать по папкам, читать контроллеры, роуты, сервисы… Но есть более быстрый способ понять архитектуру - сразу открыть composer.json. Что можно сразу понять: - Какие библиотеки используются - а значит, какие фреймворки, ORM, инструменты кеширования или логирования ждут нас внутри. - Какая версия PHP нужна — помогает избежать сюрпризов с несовместимыми функциями. - Автозагрузка - раздел autoload и autoload-dev сразу подскажет, где искать код и как он структурирован. Например, если вижу App\\ => src/, я знаю, что основной код живёт в src. - Скрипты - в scripts иногда прячутся удобные команды для деплоя, генерации, тестов, которые можно запускать через composer run-script. Я часто делаю так: открываю composer.json, сразу строю для себя “карту” проекта и понимаю, где искать бизнес-логику и какие инструменты уже встроены. А вы как знакомитесь с новым проектом? С чего начинаете? 📲 Мы в MAX 👉 @php_lib
435
18
🔥 Полезная фича в Laravel: скрываем данные с помощью Str::mask() Метод Str::mask() позволяет легко замаскировать часть строки определенным символом (например, *). 💡 Небольшой совет: Начиная с версии Laravel 8.69, этот метод встроен "из коробки" и отлично подходит для безопасного отображения email-адресов, номеров телефонов или токенов. Как это выглядит на практике: $userEmail = 'username@domain.com'; $maskedEmail = Str::mask($userEmail, '*', 4); // Результат: user*************** // Если передать отрицательное число в качестве третьего аргумента, // маскировка начнется с конца строки: $maskedEmail = Str::mask($userEmail, '*', -16, 6); // Результат: use******domain.com #laravel #php #webdev #советы_разработчикам 📲 Мы в MAX 👉 @php_lib
533
19
💡Совет по Laravel: Проверка дат с помощью Carbon Уверен, тебе хоть раз приходилось проверять, истекла ли дата или находится
💡Совет по Laravel: Проверка дат с помощью Carbon Уверен, тебе хоть раз приходилось проверять, истекла ли дата или находится в будущем. Так как Laravel под капотом использует Carbon, у тебя есть доступ к множеству удобных методов, которые позволяют делать это элегантно 🚀 📲 Мы в MAX 👉 @php_lib
484
20
Как правильно работать с большими массивами данных в PHP, чтобы не убить память и сервер. Когда мы пишем скрипты, которые обр
Как правильно работать с большими массивами данных в PHP, чтобы не убить память и сервер. Когда мы пишем скрипты, которые обрабатывают тысячи (или миллионы) строк — будь то импорт из CSV, выгрузка из БД или массовая обработка, — часто допускается ошибка: всё грузится в память сразу. В итоге сервер умирает от нехватки памяти, а скрипт - от таймаута. Что делать? 1. Частями, а не всё сразу Например, если вы работаете с PDO: $stmt = $pdo->query("SELECT * FROM big_table"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { process($row); // Обрабатываем каждую строку на лету } Так данные не будут храниться в огромном массиве — обработка идёт построчно. 2. Используйте генераторы Генераторы (yield) позволяют работать с большими данными лениво: function getRows($pdo) { $stmt = $pdo->query("SELECT * FROM big_table"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { yield $row; } } foreach (getRows($pdo) as $row) { process($row); } Память почти не растёт — магия генераторов. 3. Разбивайте на батчи Иногда эффективнее брать кусками: $limit = 1000; for ($offset = 0; ; $offset += $limit) { $rows = $pdo->query("SELECT * FROM big_table LIMIT $limit OFFSET $offset")->fetchAll(); if (!$rows) break; foreach ($rows as $row) { process($row); } } 4. Не забывайте про стриминг файлов Если это CSV или JSON — читайте построчно через fgets() или stream_get_line(), а не file_get_contents(). Такие подходы сильно упрощают жизнь и экономят ресурсы. А вы как работаете с большими данными? Используете генераторы или предпочитаете батчи? 📲 Мы в MAX 👉 @php_lib
501