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

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

Open in Telegram

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

Show more
2 094
Subscribers
-224 hours
-47 days
-1130 days
Posts Archive
🚀 Если производительность является приоритетом в вашем проекте, возможно, стоит полностью отключить lazy loading. Eloquent в
🚀 Если производительность является приоритетом в вашем проекте, возможно, стоит полностью отключить lazy loading. Eloquent выбросит огромное исключение, если вы попытаетесь обратиться к связи, которая не была загружена заранее (eager-loaded). 👉 @php_lib

Вы когда-нибудь импортировали несколько классов из одного пространства имён вот так? Это изящный ход или грязная ошибка? Дели
Вы когда-нибудь импортировали несколько классов из одного пространства имён вот так? Это изящный ход или грязная ошибка? Делись мнением в комментариях! #Laravel 👉 @php_lib

🚫 Хватит бороться с монолитом! Узнайте, как создавать масштабируемые и гибкие приложения на PHP и Symfony. 🎯 На открытом ур
🚫 Хватит бороться с монолитом! Узнайте, как создавать масштабируемые и гибкие приложения на PHP и Symfony. 🎯 На открытом уроке разберем современную event-driven архитектуру: — Symfony Messenger: обработка событий синхронно и асинхронно. — CQRS: разделение команд и запросов для производительности. — Event Sourcing: как хранить историю всех изменений состояния. ✅ Поймем, в каких проектах эти подходы действительно необходимы, и посмотрим на живой код. 💡 Вебинар будет полезен: — PHP и Symfony-разработчикам, растущим до уровня мидл+ и сеньоров. — Тимлидам и архитекторам, планирующим устойчивые к нагрузкам системы. — Начинающим специалистам, чтобы увидеть перспективы развития. 📅 Регистрируйтесь на бесплатный вебинар «Event-driven архитектура в PHP и Symfony» 1 октября в 20:00!: https://vk.cc/cPQvA3 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Совет по Laravel💡 Знаете ли вы... В Laravel есть метод `withProgressBar()`, который позволяет добавлять прогресс-бары к конс
Совет по Laravel💡 Знаете ли вы... В Laravel есть метод `withProgressBar()`, который позволяет добавлять прогресс-бары к консольным командам. #Laravel 👉 @php_lib

💡Совет по Laravel Определение языка пользователя Laravel использует компонент HttpFoundation из Symfony, который предоставля
💡Совет по Laravel Определение языка пользователя Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀 👉 @php_lib

💡Знал ли вы, что… Метод Number::abbreviate в Laravel преобразует сложные числа в удобочитаемый формат: 👉 @php_lib
💡Знал ли вы, что… Метод Number::abbreviate в Laravel преобразует сложные числа в удобочитаемый формат: 👉 @php_lib

🚀 Подборка Telegram каналов для программистов Системное администрирование, DevOps 📌 https://t.me/bash_srv Bash Советы https://t.me/win_sysadmin Системный Администратор Windows https://t.me/sysadmin_girl Девочка Сисадмин https://t.me/srv_admin_linux Админские угодья https://t.me/linux_srv Типичный Сисадмин https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin https://t.me/linux_odmin Linux: Системный администратор https://t.me/devops_star DevOps Star (Звезда Девопса) https://t.me/i_linux Системный администратор https://t.me/linuxchmod Linux https://t.me/sys_adminos Системный Администратор https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало) https://t.me/sysadminof Книги для админов, полезные материалы https://t.me/i_odmin Все для системного администратора https://t.me/i_odmin_book Библиотека Системного Администратора https://t.me/i_odmin_chat Чат системных администраторов https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др. https://t.me/sysadminoff Новости Линукс Linux 1C разработка 📌 https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С https://t.me/DevLab1C 1С:Предприятие 8 https://t.me/razrab_1C 1C Разработчик https://t.me/buh1C_prog 1C Программист | Бухгалтерия и Учёт https://t.me/rabota1C_rus Вакансии для программистов 1С Программирование C++📌 https://t.me/cpp_lib Библиотека C/C++ разработчика https://t.me/cpp_knigi Книги для программистов C/C++ https://t.me/cpp_geek Учим C/C++ на примерах Программирование Python 📌 https://t.me/pythonofff Python академия. https://t.me/BookPython Библиотека Python разработчика https://t.me/python_real Python подборки на русском и английском https://t.me/python_360 Книги по Python Java разработка 📌 https://t.me/BookJava Библиотека Java разработчика https://t.me/java_360 Книги по Java Rus https://t.me/java_geek Учим Java на примерах GitHub Сообщество 📌 https://t.me/Githublib Интересное из GitHub Базы данных (Data Base) 📌 https://t.me/database_info Все про базы данных Мобильная разработка: iOS, Android 📌 https://t.me/developer_mobila Мобильная разработка https://t.me/kotlin_lib Подборки полезного материала по Kotlin Фронтенд разработка 📌 https://t.me/frontend_1 Подборки для frontend разработчиков https://t.me/frontend_sovet Frontend советы, примеры и практика! https://t.me/React_lib Подборки по React js и все что с ним связано Разработка игр 📌 https://t.me/game_devv Все о разработке игр Библиотеки 📌 https://t.me/book_for_dev Книги для программистов Rus https://t.me/programmist_of Книги по программированию https://t.me/proglb Библиотека программиста https://t.me/bfbook Книги для программистов БигДата, машинное обучение 📌 https://t.me/bigdata_1 Big Data, Machine Learning Программирование 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций https://t.me/rust_lib Полезный контент по программированию на Rust https://t.me/golang_lib Библиотека Go (Golang) разработчика https://t.me/itmozg Программисты, дизайнеры, новости из мира IT https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 https://t.me/nodejs_lib Подборки по Node js и все что с ним связано https://t.me/ruby_lib Библиотека Ruby программиста https://t.me/lifeproger Жизнь программиста. Авторский канал. QA, тестирование 📌 https://t.me/testlab_qa Библиотека тестировщика Шутки программистов 📌 https://t.me/itumor Шутки программистов Защита, взлом, безопасность 📌 https://t.me/thehaking Канал о кибербезопасности https://t.me/xakep_2 Хакер Free Книги, статьи для дизайнеров 📌 https://t.me/ux_web Статьи, книги для дизайнеров Математика 📌 https://t.me/Pomatematike Канал по математике https://t.me/phis_mat Обучающие видео, книги по Физике и Математике https://t.me/matgeoru Математика | Геометрия | Логика Excel лайфхак📌 https://t.me/Excel_lifehack https://t.me/mir_teh Мир технологий (Technology World) Вакансии 📌 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT

Сегодня хочу поговорить про одну проблему, с которой я сталкивался сам и вижу её у других PHP-разработчиков - “магия” в коде.
Сегодня хочу поговорить про одну проблему, с которой я сталкивался сам и вижу её у других PHP-разработчиков - “магия” в коде. Что я имею в виду? Это когда ты открываешь проект, а там сервисы создаются «сами собой», данные в объект попадают неизвестно откуда, а половина зависимостей подтягивается где-то «под капотом». Вроде удобно - меньше кода писать. Но вот через пару месяцев ты сам же сидишь и думаешь: «А откуда вообще берётся этот объект? И почему тут такая зависимость?» 🔹 Основная проблема магии - она убивает явность кода. Чем больше скрытых механизмов, тем сложнее поддерживать проект и подключать новых разработчиков. Примеры из практики: - Использование глобальных хелперов вместо DI. - Автоматический вызов методов через __call или __get. - Массовая магия в Laravel (facades, hidden bindings и т.д.). 🛠 Что можно сделать: 1. Минимизировать скрытые механизмы - лучше написать чуть больше явного кода. 2. Использовать контейнер зависимостей, но регистрировать их явно. 3. Документировать «точки входа» и договориться в команде, где магия допустима, а где нет. Когда код становится предсказуемым, ты меньше тратишь времени на дебаг, быстрее понимаешь чужие изменения и увереннее двигаешься вперёд. А как у вас в проектах? Вы за явный код или любите, когда всё работает «само»? 👉 @php_lib

💡 Совет по Laravel Нужно проверить, что в вашем вводе существуют определённые ключи массива? Используйте required_array_keys
💡 Совет по Laravel Нужно проверить, что в вашем вводе существуют определённые ключи массива? Используйте required_array_keys, чтобы убедиться, что в данных массива присутствуют конкретные ключи - идеально подходит для API-эндпоинтов, которые ожидают строгую структуру данных. Ссылка на документацию: https://laravel.com/docs/12.x/validation#rule-required-array-keys 👉 @php_lib

Каким мог бы быть Laravel WebServer, если бы он работал через очередь? Привет! Сегодня я хочу поделиться с вами одной интерес
Каким мог бы быть Laravel WebServer, если бы он работал через очередь? Привет! Сегодня я хочу поделиться с вами одной интересной идеей — а что если Laravel WebServer принимал бы все HTTP-запросы не напрямую, а через обычную очередь задач Laravel Queue? Вместо привычных PHP-FPM, Swoole, RoadRunner или FrankenPHP — весь запрос обрабатывался бы как задача в очереди. Звучит странно? Давайте разбираться, как это могло бы работать и что из этого получилось бы. https://laravel.su/p/kakim-mog-by-byt-laravel-webserver-esli-by-on-rabotal-cerez-ocered 👉 @php_lib

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 👉 @php_lib

🚀 Почему стоит выбрать Symfony для разработки? 🔹 Модульность и компоненты — независимые части, которые можно использовать о
🚀 Почему стоит выбрать Symfony для разработки? 🔹 Модульность и компоненты — независимые части, которые можно использовать отдельно, ускоряя развитие и повышая гибкость. 🔹 Гибкая настройка — высокий уровень кастомизации, поддержка Dependency Injection для сложных проектов. 🔹 Надежность и поддержка — LTS-версии до 3 лет, стабильность и регулярные обновления для бизнеса. 🔹 Инструменты разработки — Symfony CLI, профайлер, генераторы кода, автоконфигурация — ускоряют работу и отладку. 🔹 Сообщество и документация — большое сообщество, обучающие материалы, рецепты и мероприятия помогают быстро освоить и решать задачи. 🧩 Где используют? — Spotify, BlaBlaCar, Dailymotion, а также компоненты Symfony используют Laravel и другие фреймворки. Выбирайте Symfony — создавайте масштабируемые, гибкие и надежные проекты! Пройдите тест, получите скидку на курс «Symfony Framework» и станьте востребованным PHP-разработчиком с передовыми навыками: https://vk.cc/cOTLs6 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Сегодня хочу поделиться одной небольшой, но очень полезной привычкой, которая здорово экономит время в работе с 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? Напишите в комментах, будет интересно сравнить! 👉 @php_lib

💡 Совет по Laravel Не позволяй запросам к базе данных замедлять работу. Используй фасад Cache в Laravel для временного кэшир
💡 Совет по Laravel Не позволяй запросам к базе данных замедлять работу. Используй фасад Cache в Laravel для временного кэширования данных и сокращения количества обращений к базе. 👉 @php_lib

💡 Совет по Laravel Передавайте большие файлы без перебоев, используя потоки. 👉 @php_lib
💡 Совет по Laravel Передавайте большие файлы без перебоев, используя потоки. 👉 @php_lib

🔧 Сложности с масштабированием консьюмеров в RabbitMQ? Узнайте, как избежать ошибок, которые могут привести к потерям в поря
🔧 Сложности с масштабированием консьюмеров в RabbitMQ? Узнайте, как избежать ошибок, которые могут привести к потерям в порядке обработки сообщений. 📅 На открытом уроке 21 августа в 20:00 МСК разберём реальные кейсы и покажем, как правильно масштабировать консьюмеры, сохраняя порядок обработки. Узнаете, какие проблемы могут возникнуть при некорректном масштабировании и как их решить. 🎯 Получите ценные знания по прогнозированию и устранению проблем, повысите производительность системы и избегайте критических ошибок. 🚀 Посетите вебинар и получите скидку на полный курс «Symfony Framework»! Регистрация открыта: https://vk.cc/cOwLiZ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Нужно ли в 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/ 👉 @php_lib

Сегодня хочу поговорить о ситуации, с которой сталкивался, думаю, каждый PHP-разработчик — "магическое" исчезновение переменных. Да, вот эти моменты, когда ты уверен, что $userData тут точно есть… а в реальности — Undefined variable: userData. Причина часто банальна — область видимости. Многие забывают, что переменные в PHP живут в контексте, где они созданы. Например, внутри функции нельзя просто так достучаться до переменной, объявленной снаружи — она там не существует. Пример:

$userName = 'Иван';

function greet() {
    echo "Привет, $userName"; // Ошибка!
}

greet();
Чтобы это работало, у нас есть три пути: 1. Передать параметром:

function greet($name) {
    echo "Привет, $name";
}

greet($userName);
2. Использовать global (но я не советую — код становится менее предсказуемым):

global $userName;
3. Замыкание с use:

$userName = 'Иван';

$greet = function() use ($userName) {
    echo "Привет, $userName";
};

$greet();
💡 Совет: всегда старайтесь передавать данные явно - это делает код чище и облегчает тестирование. А вы как решаете проблему передачи переменных между функциями и методами? Используете глобальные, DI или что-то ещё? 👉 @php_lib

Сегодня хочу поделиться темой, которая регулярно спасает мне часы (а иногда и дни) работы — как быстро находить и устранять у
Сегодня хочу поделиться темой, которая регулярно спасает мне часы (а иногда и дни) работы — как быстро находить и устранять узкие места в производительности PHP-приложения. Когда проект начинает подтормаживать, первая реакция — «ну, наверное, сервер слабый». А на деле 80% проблем можно найти прямо в коде. Вот мой рабочий чеклист: 1. Включаю профилировщик. Если проект на Laravel — laravel-debugbar или Clockwork. Для чистого PHP — Xdebug или Tideways. Они показывают, какие функции и запросы жрут время. 2. Смотрю SQL-запросы. Удивительно, сколько «тормозов» сидит именно в базе. Часто помогает банальное добавление индексов или переписывание одного запроса. 3. Ищу повторяющиеся операции. Иногда вижу: одна и та же функция дергается в цикле по 1000 раз, хотя результат можно закешировать. 4. Анализирую работу с файлами. Если есть много file_get_contents() или операций с большими файлами — выношу их в фоновые задачи (очереди). 5. Включаю кэширование. Даже простой OPcache и Redis для хранения промежуточных данных творят чудеса. Мой совет: не пытайтесь «оптимизировать на глаз». Всегда начинайте с измерений — профилировщик покажет правду. А вы как ищете и устраняете узкие места? Какие инструменты используете чаще всего? 👉 @php_lib

🔥 Ищете эффективные способы кэширования в Symfony и хотите повысить производительность приложений?🚀 Присоединяйтесь к откры
🔥 Ищете эффективные способы кэширования в Symfony и хотите повысить производительность приложений?🚀 Присоединяйтесь к открытому уроку «Инструменты кэширования в Symfony» 7 августа в 20:00 МСК.Что вы узнаете: - Теория кэширования и её применение в Symfony - Как правильно использовать компоненты Symfony Cache - Эффективная работа с распределённым кешем и блокировками Получите практические знания, которые можно применить в реальных проектах, и улучшите производительность своих приложений с помощью продвинутых методов кэширования в Symfony. 📎Зарегистрируйтесь на урок и получите скидку на большую программу обучения «Symfony Framework»: https://vk.cc/cOfb5D Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru