Библиотека PHP программиста 👨🏼💻👩💻
Kanalga Telegram’da o‘tish
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon По всем вопросам @evgenycarter
Ko'proq ko'rsatish2 041
Obunachilar
-124 soatlar
-97 kun
-1830 kun
Postlar arxiv
Когда вы заменяете кучу проверок
isset() на optional chaining (?->):
Это умное решение или удар по читаемости?
👉 @php_libПишете на PHP, но чувствуете, что застряли на одном уровне?
На практическом курсе от OTUS вы разберёте реальные продуктовые задачи, научитесь применять принципы DDD, Clean Architecture, Layered Architecture на практике, освоите автоматическое тестирование и деплой в продакшн, поймёте, как оценивать производительность и строить отказоустойчивые системы.
❗️ Программа составлена практикующими экспертами, а диплом OTUS востребован у ведущих IT-компаний. Вас ждет особый упор на инфраструктуру: Docker, облака, очереди, базы данных и современные инструменты командной работы. Это последний шанс попасть в поток.
• Живые лекции от экспертов;
• Реальная практика;
• Востребованный диплом.
✅ Пройдите короткое вступительное тестирование, получите скидку по промокоду PHP_PROF_10 и закрепите за собой место:
https://vk.cc/cQBAUG
Срок действия промокода с 25.10 по 10.11 подробности уточняйте у менеджеров!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Сегодня хочу показать вам, как магические методы в PHP могут упростить жизнь, если использовать их с умом.
Многие знают о
__construct() и __destruct(), но PHP предлагает целый арсенал магических методов - от __get() и __set() до __invoke() и __callStatic().
Например, рассмотрим кейс с динамическими свойствами:
class Config {
private array $data = [];
public function __get($name) {
return $this->data[$name] ?? null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$config = new Config();
$config->appName = 'MyApp';
echo $config->appName; // MyApp
Мы не определяли свойство appName, но с помощью __get() и __set() сделали объект гибким, почти как массив. Это удобно для конфигов, DTO и API-ответов.
Но! ⚠️
Если переусердствовать - код становится магическим не только для PHP, но и для вас самого 😄
Отладка, автодополнение и читаемость страдают. Поэтому правило простое:
используйте магию осознанно.
👉 @php_libТы используешь ?? или остаёшься на isset()?
Удобное сокращение или запутанный синтаксис? Что думаешь...
👉 @php_lib
⚡️ Laravel-разработчики, готовы вывести работу с иерархиями на новый уровень?
Бесплатный вебинар «Использование Nested Sets в Laravel»
🗓 22 октября, 20:00
На вебинаре вы:
• Погрузитесь в необычную структуру данных Вложенные множества
• Разберёте плюсы и минусы этой структуры
• Увидите, как применять её на практике в Laravel-приложении
🎯 Кому будет полезно:
• Веб-разработчикам, работающим с иерархическими или древовидными структурами в своих проектах
⚠️ Это редкий шанс увидеть реальный пример использования Nested Sets в Laravel. Кто придёт первым - получит навыки, которые обычно осваивают месяцы!
❗️Напоминаем, что до 24 октября действует скидка 15% при полной оплате на курс «Framework Laravel». Не упустите возможность прокачать свои проекты и навыки!
Записаться на вебинар: https://vk.cc/cQwaJN
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Вы предпочитаете отправлять почту напрямую в коде или использовать класс Mailable?
👉 @php_lib
Совет по Laravel💡
Знал ли ты… что можно импортировать несколько классов из одного пространства имён вот так☝️
👉 @php_lib
🔥 От PHP-разработчика к эксперту по Битрикс24! Старт набора в группу курса “Разработчик Битрикс24" в OTUS. Открыт прием заявок
Разработка на Битрикс24 — востребованная компетенция для автоматизации бизнес-процессов. Отправьте заявку на обучение и получите спеццену при поступлении в группу.
Вы научитесь:
✅ Разворачивать Битрикс24 на собственном сервере
✅ Создавать компоненты, модули и REST-приложения
✅ Автоматизировать процессы с помощью бизнес-процессов
✅ Интегрировать Битрикс24 с внешними системами
🎓 Подробности уточняйте у менеджера
🚀 Не упустите шанс стать экспертом по Битрикс24 и повысить свою квалификацию!
👉 Оставить заявку https://vk.cc/cQqXs9
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Оптимизация скорости работы 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_libСегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и устойчивый код - магические методы.
Да, те самые
__get, __set, __call, __toString и компания. Они вроде бы удобные: можно ловко обращаться к несуществующим свойствам, вызывать методы, которых нет, и всё работает. Но вот вопрос — а как это тестировать и поддерживать?
Когда код полагается на магию, отладка превращается в игру «угадай, откуда взялось это значение». IDE не подсказывает типы, автодополнение не работает, а дебаггер видит лишь хаос. Я не говорю, что магические методы нужно запретить. Они бывают полезны, например, в паттерне Proxy или для ленивой загрузки. Но использовать их стоит осознанно, с понятным контрактом.
👉 Советы от меня:
- Если хочешь гибкости — лучше внедри __call через интерфейс или трейт с чёткой логикой.
- Если используешь __get / __set — документируй все «виртуальные» свойства в phpdoc.
- И главное - не прячь логику под магию. Пусть код говорит сам за себя.
👉 @php_lib🐘 Ваш PHP-код «ест» слишком много ресурсов и работает медленнее, чем хотелось бы? Это частая проблема даже у опытных разработчиков.
Алгоритмы не всегда решают задачу. Чтобы ускорить код, нужно понимать, как работает память и что происходит «под капотом» PHP. Именно это и будет темой нашего открытого урока курса.
🚀 Вместе мы разберём как PHP хранит данные, и освоим простые приёмы оптимизации, которые реально сокращают время выполнения кода и экономят ресурсы.
🔴 Присоединяйтесь к открытому вебинару 15 октября в 20:00 (МСК): https://vk.cc/cQm0EF
Урок проходит в преддверии старта курса «PHP Developer. Professional».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Совет по Laravel💡
Если вы хотите автоматически удалять старые записи, используйте трейт Prunable.
Нет необходимости писать собственные команды.
👉 @php_lib
Совет по Laravel💡
Знаете ли вы .... tap() = Tweak and Return 🪄
Да, в Laravel метод tap() позволяет изменить объект и вернуть его обратно — идеально для чистого и читаемого кода.
👉 @php_lib
🔥 PHP-разработчики, готовы прокачать Laravel до уровня, на который другие тратят годы?
Онлайн курс «Framework Laravel» - ваш шанс за 3 месяца освоить фреймворк, который делает разработку проще, быстрее и интереснее.
Какие преимущества обучения по Laravel:
• Laravel ускоряет разработку за счет элегантного синтаксиса, богатой экосистемы и инструментов Artisan.
• Интуитивный ORM Eloquent упрощает работу с данными и повышает читаемость кода.
• Фреймворк масштабируется от MVP до высоконагруженных систем, имеет встроенные средства оптимизации, легко интегрируется с Vue/React/Angular, поддерживается активным сообществом и подтвержден практикой крупных компаний.
Также приглашаем вас на бесплатный вебинар «Advanced Eloquent Relations в Laravel»
🗓 7 октября, 20:00
На вебинаре:
• Кастомные отношения в Laravel Eloquent — от Post до Comment и Author
• Использование отношений за пределами реляционных БД
• Практика на реальных примерах
Кто придёт первым - освоит секреты продвинутого Laravel и научится создавать отношения там, где другие даже не думают их строить.
Записаться на вебинар: https://vk.cc/cQ0xUP
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🚀 Если производительность является приоритетом в вашем проекте, возможно, стоит полностью отключить lazy loading.
Eloquent выбросит огромное исключение, если вы попытаетесь обратиться к связи, которая не была загружена заранее (eager-loaded).
👉 @php_lib
Вы когда-нибудь импортировали несколько классов из одного пространства имён вот так?
Это изящный ход или грязная ошибка? Делись мнением в комментариях!
#Laravel
👉 @php_lib
🚫 Хватит бороться с монолитом!
Узнайте, как создавать масштабируемые и гибкие приложения на 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
👉 @php_lib💡Совет по Laravel
Определение языка пользователя
Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀
👉 @php_lib
