Библиотека PHP программиста 👨🏼💻👩💻
الذهاب إلى القناة على Telegram
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon По всем вопросам @evgenycarter
إظهار المزيد2 040
المشتركون
+124 ساعات
-87 أيام
-1630 أيام
أرشيف المشاركات
Неортодоксальный Eloquent. Часть 2
Это краткая, но незаменимая (для меня, по крайней мере) глава. В какой-то момент Вы, вероятно, задались вопросом как можно разгрузить жадные загрузки, особенно те, которые выполняют дополнительную загрузку данных, но, тем не менее, в итоге просто копируете участки кода. Хотя копипаст вполне приемлемый вариант, на самом деле существуют более эффективные способы решения этой проблемы. Повторение подобных операций может быстро стать громоздким из-за применения дополнительных условий запроса. Это может произойти, например, при использовании фантасмагорического проекта laravel-medialibrary от Spatie.
https://habr.com/ru/articles/762690/
👉 @php_lib
⁉️ Как PHP-разработчику повысить свою ценность на рынке?
🦾 Пополнить список своих инструментов новыми фреймворками. Сделайте это за пару часов на бесплатном открытом уроке «Как устроены современные PHP-фреймворки» от OTUS.
- изучим DI, IoC и другие важные термины;
- заглянем «под капот» одного из популярных фреймворков;
- сравним между собой Laravel, Symfony и Yii;
- посмотрим на аналогичные решения в других языках программирования.
📌 Занятие пройдёт 18 октября в 20:00 мск и будет приурочено к старту курса «PHP Developer. Professional». После вебинара у вас будет возможность продолжить обучение на курсе по специальной цене в рассрочку.
Это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени!
👉 Зарегистрируйтесь на событие прямо сейчас, чтобы ничего не пропустить, а мы заранее напомним в день вебинара.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruНеортодоксальный Eloquent. Часть 1
Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.
В этой статье я хотел бы рассказать о нескольких советах и рекомендациях, о которых узнал экспериментальным путём. Например, Вы когда-нибудь задумывались о том, чтобы тем или иным образом разделить жадные загрузки? Нет? Тогда, я уверен, Вы узнаете как минимум что-то новое, так что обязательно дочитайте до конца!
https://habr.com/ru/articles/762598/
👉 @php_lib
Веб-скрепинг с помощью PHP: Пошаговое руководство
Веб-скрепинг становится все более популярным и в настоящее время является одной из актуальных тем в ИТ-сообществе. В результате появилось несколько библиотек, позволяющих собирать данные с веб-сайтов. Здесь вы узнаете, как создать веб-скрепер на PHP, используя одну из самых популярных библиотек для веб-скрепинга.
В этом уроке вы узнаете об основах веб-скрейпинга на PHP. Затем вы узнаете, как обойти наиболее популярные системы защиты от скрапинга, а также познакомитесь с более продвинутыми техниками и концепциями, такими как параллельный скрапинг и безголовые браузеры.
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, "https://www.w3schools.com/jquery/demo_test_post.asp");
// specify that the cURL request is a POST
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// define the body of the request
curl_setopt($curl, CURLOPT_POSTFIELDS,
// http_build_query is required to simulate
// a FormData request. Ignore it on a JSON request
http_build_query(
array(
"name" => "Donald Duck",
"city" => "Duckburg"
)
)
);
// define the body of the request
curl_setopt($curl, CURLOPT_POSTFIELDS,
array(
"name" => "Donald Duck",
"city" => "Duckburg"
)
);
// replicate the AJAX call
$result = curl_exec($curl);
https://www.zenrows.com/blog/web-scraping-php
👉 @php_lib🚀 Как решать проблемы масштабирования приложений?
⚡️ Обсудим на бесплатном открытом уроке «Проблема вертикального масштабирования и синхронизация», который пройдёт в рамках курса «Архитектура и шаблоны проектирования» от OTUS.
На эфире мы сосредоточимся на следующих аспектах:
- Предпосылки возникновения проблемы масштабирования
- Проблемы многопоточности, нежелательные состояния и синхронизация
- Обзор модели вычислений, обходящей ограничения «традиционной», и вариантов её реализации
- Обзор подходов к архитектуре приложений, преобладавших в разное время, их особенности, плюсы и недостатки
🔥 Это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени. После этого вы сможете приобрести полный курс в рассрочку на комфортных условиях.
Встречаемся 10 октября в 20:00 мск.
👉 Регистрируйтесь бесплатно прямо сейчас и ставьте событие в календарь
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Выявление медленных запросов до того, как они попадут в рабочую базу данных
Статический анализ кода доступа к базам данных стал реальностью с появлением phpstan-dba. Просто придерживайтесь правил, и все будет в порядке:
При включении phpstan-dba будет сообщать об ошибках в случае неэффективности запросов. Анализатор сообщает о проблемах, связанных с запросами, не использующими индекс, полными сканированиями таблиц и слишком большим количеством неиндексированных чтений.
https://staabm.github.io/2022/08/16/phpstan-dba-query-plan-analysis.html
👉 @php_lib
Как добавить функцию миграции структуры базы данных в ваши старые PHP-проекты?
Во вселенной существует огромное количество старых проектов, написанных на PHP. Старые кодовые базы трудно поддерживать, и нелегко создать среду разработки для старых приложений. У меня была такая же проблема; у меня есть много решений для создания stateless среды разработки для старых проектов. Сегодня я остановлюсь на одном из них, связанном с базами данных.
https://emre.xyz/how-to-add-a-database-structure-migration-feature-to-your-legacy-php-projects
👉 @php_lib
😎 Пройди тест по PHP и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "PHP Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .
🎫 Курс можно приобрести в рассрочку
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruРасширенные возможности MessagePack
MessagePack — бинарный формат сериализации данных, позиционируемый авторами как более эффективная альтернатива JSON. Благодаря своей компактности и скорости, его часто выбирают в качестве формата обмена данными в системах, где важна производительность. Простота реализации также способствует его широкому распространению — ваш любимый язык программирования, скорее всего, уже имеет несколько библиотек для работы с этим форматом.
В этой статье я не буду рассказывать, как устроен MessagePack или сравнивать его с аналогами: материалов на эту тему в Интернете предостаточно. Чего действительно не хватает, так это информации о расширенной системе типов MessagePack. Я постараюсь объяснить и показать на примерах, что это такое и как с помощью дополнительных типов сделать сериализацию еще более эффективной.
https://habr.com/ru/companies/vk/articles/555748/
👉 @php_lib
High Performance with Laravel Octane: Learn to fine-tune and optimize PHP and Laravel apps using Octane and an asynchronous approach
Автор: Roberto Butti (2023)
Laravel Octane - это мощный компонент в экосистеме Laravel, который поможет вам добиться потрясающей производительности приложений. В Laravel Octane вы найдете инструменты (очереди, кэш и таблицы), которые облегчают новый асинхронный подход для повышения производительности приложений.
Достоинства:
+ Книга предоставляет детальную информацию об использовании Laravel Octane и асинхронного подхода для оптимизации и ускорения PHP-приложений.
+ Автор книги имеет большой опыт в области веб-разработки и способен объяснить сложные концепции в понятной форме.
Недостатки:
- Книга ориентирована на разработчиков, которые уже знакомы с PHP и Laravel, поэтому для начинающих разработчиков может быть сложна.
- Книга фокусируется исключительно на Laravel Octane, поэтому не рассматривает другие методы оптимизации и ускорения.
👉 @php_lib
Свой личный SMS-шлюз. Часть 2 – создаём API и форму отправки
Представляю вам вторую часть из серии статей по созданию своего шлюза.
В первой части мы настроили Gammu, рассмотрели особо интересные параметры и успешно произвели отправку SMS сообщения. Сейчас нам предстоит задача посложнее – создать некую программную прослойку (API), для того, чтобы можно было работать со шлюзом путем отправки запросов на этот API. В первую очередь это комфорт, во вторую – большое количество дополнительных возможностей.
https://habr.com/ru/companies/ruvds/articles/555422/
👉 @php_lib
⁉️ Как сделать код удобнее для чтения?
‼️ Использовать шаблонизаторы!
➡️ Какими шаблонизаторы бывают, как работают и как настраиваются, – поговорим на открытом вебинаре «Шаблонизаторы в PHP» курса «PHP Developer. Professional». В качестве примера возьмём шаблонизатор Twig.
🟠Будет интересно PHP-разработчикам с опытом от года, а также тем, кто больше трёх лет использует другие языки ООП.
Понравился вебинар? Записывайтесь на курс «PHP Developer. Professional» – прокачивайте навыки до уровня middle+
📢📢 Занятие «Шаблонизаторы в PHP» пройдёт 5 октября, в 20:00 МСК.
Бесплатно.
🟠Для регистрации на вебинар необходимо пройти тест.
➡️ Зарегистрироваться!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruСвой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование
Представляю вам цикл статей по созданию собственного шлюза для отправки SMS-сообщений.
В первой части мы определим цели и некоторые аспекты использования своего шлюза, настроим программное обеспечение для отправки SMS с использованием USB-модемов, а также рассмотрим несколько интересных вариантов отправки
Начнем мы статью с вопроса – для чего отправлять SMS, ведь на дворе 2021 год? Да, мы уже привыкли к различным мессенджерам, уведомлениям в чат-боты, но SMS до сих пор обладает наиболее гарантированным уровнем доставки. Нет зависимости от наличия интернета и сообщение поступит даже в сети 2G и при слабом сигнале и на устройство без доступа к интернет. Таким образом, если планируется отправлять сообщения, которые гарантированно должны быть доставлены и критичны к времени доставки, то SMS – это возможно лучший выбор.
Под SMS-шлюзом мы понимаем программно-аппаратное устройство подключенное к сети сотового оператора и позволяющее производить автоматизированную отправку сообщений.
https://habr.com/ru/companies/ruvds/articles/554868/
👉 @php_lib
Проверка sql-запросов на наличие ошибок
https://staabm.github.io/2022/08/05/phpstan-dba-syntax-error-detection.html
👉 @php_lib
🔥 Пройди тест по Laravel ! 🔥
➡️ Проверь себя и свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Framework Laravel" от OTUS по специальной цене.
👩💻 Присоединяйся к новому потоку онлайн-курса «Framework Laravel» в OTUS. В программе курса — удобные и мощные наработки огромного Laravel-сообщества, а практика — решение бизнес-задач.
👨💻 За 4 месяца обучения твое портфолио пополнится мини-проектами и выпускной работой. 28 сентября начинаем занятия.
🎫Курс можно приобрести в рассрочку
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruОткройте для себя новые пакеты Laravel
Наша цель - помочь сообществу Laravel найти новые и полезные пакеты Laravel в одном месте.
https://laravel-package-ocean.com/
👉 @php_lib
Простые решения - Active Record против Data Mapper
https://matthiasnoback.nl/2022/08/simple-solutions-1-active-record-versus-data-mapper/
👉 @php_lib
💪 Пройди тест по PHP и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "PHP Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса🎁 .
🎫 Курс можно приобрести в рассрочку
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruUnorthodox Eloquent
Eloquent - это великолепный инструмент, полюбившийся многим. Он позволяет с легкостью выполнять операции с базами данных, сохраняя при этом простой в использовании API. Реализуя паттерн Active Record (AR), описанный Фаулером в книге PoEAA, он является одной из лучших реализаций AR, доступных на сегодняшний день.
https://muhammedsari.me/unorthodox-eloquent
👉 @php_lib
Действительно ли генераторы помогают экономить память?
Недавно я обратил внимание на одно заблуждение, связанное с генераторами, а точнее — с тем, как они позволяют экономить память. Такое ощущение, что многие воспринимают генераторы как инструмент, который позволит им получить "большой прирост производительности" из ничего. Или за такую шляпу фокусника, в которую можно засунуть бесконечное количество данных и не тратить память в самом скрипте.
Сначала я удивился — откуда взялись такие идеи? Ведь мы много лет работали с большими объемами данных без всяких генераторов. Лучшая статья про генераторы в РНР, опубликованная ещё десять лет назад, Что генераторы могут для вас сделать Антонио Феррары тоже практически не упоминает экономию памяти. У меня и у самого всегда было чёткое ощущение, что хотя генераторы — это совершенно отличное изобретение, у которого есть множество разнообразных применений, но вот только экономии памяти среди них нет.
В итоге у меня разыгралось любопытство и я решил разобраться с этим вопросом.
https://habr.com/ru/articles/599113/
👉 @php_lib
