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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
2 098
مشترکین
-124 ساعت
-57 روز
-730 روز
آرشیو پست ها
Оптимизация скорости работы 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 кода — это не магия, а грамотный подход к написанию скриптов. Используйте эти советы, и ваши проекты станут быстрее! 📲 Мы в MAX 👉 @php_lib

Локализация текстов в Symfony: от статических переводов к динамическим данным из базы. Бесплатный урок курса «Symfony Framewo
Локализация текстов в Symfony: от статических переводов к динамическим данным из базы. Бесплатный урок курса «Symfony Framework» Перевести интерфейс через файлы — это только начало. Настоящие сложности начинаются тогда, когда переводить нужно не статичные строки, а содержимое из базы данных, которое живёт в административной панели, меняется редакторами и должно оставаться управляемым с точки зрения архитектуры. 📅 На открытом уроке 15 апреля в 20:00: — Разберём реальный сценарий локализации в Symfony — от стандартного подхода со статическими переводами до более сложной работы с динамическими текстами из базы данных. — Покажем возможности компонента symfony/translation, разберём подходы к хранению переводов, варианты моделей данных и практическую реализацию получения локализованного содержимого через Doctrine.
Урок не для тех, кто хочет решить многоязычность «одной таблицей на всё», не думает о поддержке архитектуры и считает, что локализация заканчивается на переводе кнопок и заголовков.
👉 Записаться: https://vk.cc/cWoJXu Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Совет по Laravel 💡 Знаете ли вы, что... вы можете временно отключить timestamps при сохранении модели? 📲 Мы в MAX 👉 @php_l
Совет по Laravel 💡 Знаете ли вы, что... вы можете временно отключить timestamps при сохранении модели? 📲 Мы в MAX 👉 @php_lib

🔥 Совет по Laravel: wherePivot. В отношениях "многие-ко-многим" можно добавить операторы where в таблицу pivot, используя ме
🔥 Совет по Laravel: wherePivot. В отношениях "многие-ко-многим" можно добавить операторы where в таблицу pivot, используя метод `wherePivot`. 📲 Мы в MAX 👉 @php_lib

Совет по Laravel 💡 Один из моих любимых недокументированных советов, который я регулярно использую. Используйте "wasRecentlyCreated", чтобы проверить, была ли модель создана или найдена в базе данных. 📲 Мы в MAX 👉 @php_lib

Совет по PHP/Laravel 💡 Вместо того чтобы выполнять цикл `foreach` по массиву для поиска значения записи, вы можете использов
Совет по PHP/Laravel 💡 Вместо того чтобы выполнять цикл `foreach` по массиву для поиска значения записи, вы можете использовать метод Laravel Collection `contains()`. 📲 Мы в MAX 👉 @php_lib

🚀 Подборка полезных 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 и др. 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика 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 Обучающие видео, книги по Физике и Математике Вакансии 📌 https://max.ru/progjob Вакансии в IT Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы

3 совета по тестированию, которые вы должны знать... источник 📲 Мы в MAX 👉 @php_lib

✨ Советы по Laravel ✨ Если вы создаете API в своем проекте: 🪐 Применяйте версионирование в самом первом релизе 🪐 Поддержива
✨ Советы по Laravel ✨ Если вы создаете API в своем проекте: 🪐 Применяйте версионирование в самом первом релизе 🪐 Поддерживайте чистоту в routes/api.php, создавая разные файлы маршрутов для каждой версии👇 🧹 Более чистый код, 📈 Лучшие результаты 📲 Мы в MAX 👉 @php_lib

🚀 Подборка полезных 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 и др. 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика 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 Обучающие видео, книги по Физике и Математике Вакансии 📌 https://max.ru/progjob Вакансии в IT Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы

Совет по Laravel 💡 Знаете ли вы... Во время итерации в цикле foreach внутри цикла будет доступна переменная $loop. Эта перем
Совет по Laravel 💡 Знаете ли вы... Во время итерации в цикле foreach внутри цикла будет доступна переменная $loop. Эта переменная предоставляет доступ к некоторым полезным битам информации. 📲 Мы в MAX 👉 @php_lib

Совет по Laravel 💡 Данные загружаются быстрее, если целевое значение является целым числом. Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴
Совет по Laravel 💡 Данные загружаются быстрее, если целевое значение является целым числом. Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом. 📲 Мы в MAX 👉 @php_lib

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

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

🚨 Совет по безопасности Livewire: Всегда выполняйте авторизацию своих действий! 🔒 Никогда не доверяйте пользовательскому вв
🚨 Совет по безопасности Livewire: Всегда выполняйте авторизацию своих действий! 🔒 Никогда не доверяйте пользовательскому вводу — всегда проверяйте права доступа перед выполнением важных операций. Если вы уже используете Gates и Policies, работа с Livewire покажется вам привычной! 🏡💪 #Laravel #Livewire 📲 Мы в MAX 👉 @php_lib

💡Советы и хитрости PhpStorm - Store Window Layout Вам не нравится адаптировать положение окон инструментов при каждом новом проекте? (например, дерево файлов слева направо). Вы можете сохранить их. 📲 Мы в MAX 👉 @php_lib

Админ vs студент: разбор тестового задания — сервис консультаций на Laravel за неделю Эта статья — подробный разбор тестового
Админ vs студент: разбор тестового задания — сервис консультаций на Laravel за неделю Эта статья — подробный разбор тестового задания на позицию PHP-разработчика, которое мне пришлось выполнить в краткие сроки из-за приближающей сессии. Я расскажу, с какими трудностями столкнулся, будучи студентом и новичком в веб-разработке, как построил архитектуру проекта «Школьные консультации» и что из этого вышло. Если вам интересен взгляд «с первоначального этапа» на классическую задачу или вы хотите узнать, чем всё кончилось, или у вас был похожий опыт (о котором вы хотели рассказать), то добро пожаловать. https://habr.com/ru/companies/ruvds/articles/983692/ 📲 Мы в MAX 👉 @php_lib

Совет по Laravel 💡 Легко обновляйте столбцы JSON с помощью синтаксиса стрелок Laravel! Используйте -> для указания конкретны
Совет по Laravel 💡 Легко обновляйте столбцы JSON с помощью синтаксиса стрелок Laravel! Используйте -> для указания конкретных ключей в ваших JSON-данных. Работает с MariaDB 10.3+, MySQL 5.7+ и PostgreSQL 9.5+. 📲 Мы в MAX 👉 @php_lib

Совет по Laravel 💡: Метод «diffInDaysFiltered» Вам когда-нибудь требовалось подсчитать количество дней между двумя датами пр
Совет по Laravel 💡: Метод «diffInDaysFiltered» Вам когда-нибудь требовалось подсчитать количество дней между двумя датами при фильтрации по условию? Поскольку Laravel использует Carbon под капотом, вы можете использовать «diffInDaysFiltered», чтобы сделать именно это 🚀. #laravel 📲 Мы в MAX 👉 @php_lib

Анемичная модель vs Богатая модель Ваши сущности, это просто "мешки для данных"? Типичная ошибка (Anemic Domain Model): У вас есть Entity Order, в которой только геттеры и сеттеры. А вся логика лежит в гигантском OrderService на 2000 строк. ❌ Как это выглядит (Анемия):

// Service
$order->setStatus('paid');
$order->setUpdatedAt(new DateTime());
// А вдруг забыли отправить ивент?
// А можно ли менять статус на 'paid', если сумма 0? 
// Сервис должен всё помнить.
$repo->save($order);

✅ Как должно быть (Rich Model): Переносим бизнес-логику внутрь сущности. Принцип "Tell, Don't Ask" (Говори, а не спрашивай).

class Order 
{
    // Свойства приватны! Извне их менять нельзя.
    private string $status;
    private array $items = [];

    public function pay(Payment $payment): void 
    {
        if ($this->status === 'paid') {
             throw new DomainException("Order already paid");
        }
        
        if ($payment->amount < $this->getTotal()) {
             throw new DomainException("Not enough money");
        }

        $this->status = 'paid';
        $this->recordEvent(new OrderPaid($this->id));
    }
}

// Service становится тонким и скучным (и это хорошо!):
$order->pay($payment);
$repo->save($order);

Суть: Сущность сама следит за своими инвариантами (правилами). Вы физически не можете перевести её в некорректное состояние. Сервисы просто дирижируют процессом, но не знают деталей бизнес-правил. Где сейчас живет ваша логика? В сервисах или в моделях? #ddd #architecture #oop #refactoring 📲 Мы в MAX 👉 @php_lib