Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.3K subscribers
1.33K photos
19 videos
26 files
4.01K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
🛠️ Batch vs Stream Processing: ключевые различия

Batch Processing — обработка данных партиями с последующим выводом финального результата.

Stream Processing — обработка данных в режиме реального времени по мере их поступления.

Подробнее см. на изображении. ⚡️

#инфографика
👍1
Подборка новостей по PHP за неделю:

🔎 Представлен CakePHP 5.1: упорядочены зависимости композитора, lib-ICU уже является неявной зависимостью через intl, проведены незначительные оптимизации за счет удаления избыточных присваиваний, проверок empty() и isset().

🔎 Поддержка файлов .env теперь встроена в PhpStorm, что устраняет необходимость хардкодинга этих значений в коде приложения.

🔎 В Laravel 11.38 добавлено правило валидации Fluent Email. Команда Laravel выпустила версию 11.38, в которой появилось правило валидации Fluent Email, возможность получения запроса формы или значения Fluent в виде массива, конвейерный метод finally() и многое другое.

🔎Вышли PHP 8.4.3 и PHP 8.3.16! — Это баг-фикс релизы.

🔎Неделя Symfony #942 (13-19 января 2025 года)

#дайджест
🔥3
💻Как загрузить больше данных с помощью ajax пагинации при прокрутке в laravel 11

В этой статье показано шаг за шагом, как загрузить больше данных с помощью ajax-пагинации при прокрутке в приложении laravel 11

👉Читать гайд

#туториал
🥱2👍1
⬆️Загружаемые трейты

Знаете ли вы, что Laravel автоматически загружает трейты, если они реализуют метод boot[TraitName]? Это позволяет вам легко определить общую логику для событий модели 🚀

#совет
🤔9👍1👾1
🗂️Библиотека: разделение базового файла PHPStan

Пакет предназначен для разделения базового файла PHPStan на несколько файлов, каждый из которых соответствует определенному идентификатору ошибки. Это позволяет более эффективно управлять и анализировать ошибки в вашем проекте.

Основные возможности:

🔸Разделение базового файла: Пакет разбивает общий файл phpstan-baseline.neon на отдельные файлы в директории baselines/, где каждый файл соответствует конкретному идентификатору ошибки.

🔸Поддержка форматов: Поддерживаются как форматы neon, так и php для базовых файлов.

🔗 GitHub

#инструменты
👍3
SOAP vs REST. В чем разница?

1. Принцип взаимодействия:

SOAP (Simple Object Access Protocol): Использует протокол XML для обмена сообщениями. Обычно отправляет запросы через HTTP, SMTP или другие протоколы.
REST (Representational State Transfer): Основан на простых HTTP методах (GET, POST, PUT, DELETE) и работает с ресурсами (например, URL). Возвращает данные в форматах JSON, XML или других текстовых форматах.

2. Простота и гибкость:

SOAP: Более сложный и тяжеловесный стандарт, предоставляющий много возможностей, но требует больше ресурсов и времени для разработки.
REST: Простой и гибкий, позволяет использовать различные форматы данных и не накладывает строгих правил на структуру сообщений.

3. Формат данных:

SOAP: Обычно использует XML для обмена данными, что может привести к большому объему сообщений из-за тегов и атрибутов XML.
REST: Часто использует JSON для передачи данных, что более компактно и легче читать для человека.

4. Состояние (Statelessness):

SOAP: Может поддерживать состояние сессии между запросами, что означает, что сервер должен помнить состояние клиента.
REST: Считается безсостоятельным (stateless), каждый запрос от клиента содержит всю необходимую информацию, и сервер не хранит состояние между запросами.

5. Безопасность:

SOAP: Предоставляет стандартизированные механизмы безопасности, такие как WS-Security, что делает его более подходящим для более критичных по безопасности приложений.
REST: Основывается на протоколе HTTPS для обеспечения безопасности передачи данных, но может потребовать дополнительных мер безопасности, таких как токены авторизации.

6. Кэширование:

SOAP: Поддерживает кэширование, но требует сложной настройки на стороне клиента и сервера.
REST: Имеет встроенную поддержку кэширования через HTTP методы, что упрощает процесс.

7. Использование веб-стандартов:

SOAP: Использует стандарты WSDL (Web Services Description Language) и UDDI (Universal Description, Discovery, and Integration) для описания веб-сервисов и их местоположения.
REST: Не имеет формальных стандартов описания интерфейсов, но использует стандарты HTTP и URI для доступа к ресурсам.
Эти различия имеют важное значение при выборе между SOAP и REST в зависимости от требований проекта. SOAP часто используется в корпоративных приложениях, требующих высокой надежности и безопасности, в то время как REST чаще используется в открытых API и веб-приложениях, где важна гибкость и простота использования.

#вопросы_с_собеседований
👍42😁1
💊Советы по оптимизации памяти в PHP

Оптимизация использования памяти в PHP очень важна для создания эффективных и масштабируемых приложений.

В статье содержатся несколько ключевых советов по оптимизации использования памяти в PHP.

🔗Medium
👍3😢2
🔗Реализация паттерна Chain of Responsibility на примере котиков в PHP

Если вы когда‑нибудь пытались настроить бизнес‑логику в своём проекте так, чтобы она не выглядела как свалка if-else и работала хорошо, то этот материал для вас.

Сегодня вы узнаете один из самых приятных паттернов — Chain of Responsibility, или «Цепочка обязанностей».


👉Хабр
🔥17😢2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2😁1
💻Seeder vs Factory: Наполнение тестовых данных в Laravel

В Laravel для работы с данными в процессе разработки и тестирования используются два удобных инструмента — сидеры и фабрики. Каждый из них помогает заполнять базу данных, создавая подходящую среду для работы и проверки приложений. Разберём, как и когда применять каждый из них, а также почему они отлично дополняют друг друга.

Сидеры: Предопределённые данные для приложения


Сидеры используются для заполнения базы данных фиксированными или полуфиксированными данными, которые являются основой приложения. Это может быть информация о ролях, правах, странах или других справочниках. Например, в интернет-магазине с помощью сидеров можно:

🔸создать категории товаров, такие как «Электроника», «Одежда» или «Книги»;
🔸настроить роли пользователей, например «Администратор», «Продавец» и «Покупатель».

Применение сидеров обеспечивает согласованность данных и упрощает развертывание приложения в разных средах — локальной, тестовой или боевой.

Фабрики: Генерация динамических данных для тестирования

Фабрики идеально подходят для создания большого объёма случайных данных, которые можно использовать при тестировании и разработке. Например, в блоге фабрики помогут:

🔹создать 500 пользователей с уникальными именами и адресами электронной почты;
🔹сгенерировать 1000 записей с рандомным содержимым.

Фабрики упрощают моделирование реальных сценариев, ускоряя тестирование и позволяя быстро обновлять тестовые данные.

Сочетание сидеров и фабрик

Эти инструменты хорошо работают вместе. Сидеры задают основополагающие данные, такие как категории или роли, а фабрики добавляют реалистичные тестовые данные. Например, в CRM можно использовать:

сидеры для создания ролей, категорий и аккаунтов администратора;
фабрики для генерации профилей клиентов и историй взаимодействий.

👉Статья с практическими примерами
1
👨‍💻 Что делаете во время кодинга?

👍 — слушаю музыку
❤️ — смотрю видео
👏 — работаю в полной тишине
🤩 — другое (напишу в комментариях)
👍94👏7110👾3
🛠️regexpbuilderphp — регулярные выражения, понятные человеку

Библиотека упрощает создание и делает их более читаемыми. Она подойдет для разработчиков, которые часто используют регулярки, но сложно ориентируются в их традиционном синтаксисе.

🔗Github

#инструменты
👍12😁8🥱5
Что такое транзакция?

Транзакция — это последовательность операций чтения и записи, объединенных в единое логическое действие. Транзакция должна быть атомарной, согласованной, изолированной и долговечной (ACID-свойства).

Атомарность означает, что транзакция либо выполняется полностью, либо откатывается целиком. Если хотя бы одна операция внутри транзакции не может быть выполнена, то все изменения откатываются.

Согласованность подразумевает, что транзакция должна переводить базу данных из одного согласованного состояния в другое. Все ограничения и правила, заданные для данных, должны быть соблюдены.

Изолированность гарантирует, что транзакция ведется в отдельной среде и не вмешивается в работу других транзакций, одновременно выполняющихся в системе. Результат выполнения транзакции должен быть таким же, как если бы она была выполнена последовательно.

Долговечность обеспечивает сохранение результатов выполненной транзакции даже в случае сбоев системы или отключения питания. Результаты транзакции должны быть сохранены в базе данных и доступны после восстановления системы.

Транзакции обычно применяются для группировки логически связанных операций, чтобы гарантировать целостность данных при работе с базой данных. В языке программирования PHP транзакции могут быть реализованы с использованием соответствующих функций и методов для работы с базами данных, таких как mysqli или PDO.
👍3
↔️Преобразование значений Fluent в массивы в Laravel

Новый метод array() в Laravel обеспечивает чистый способ преобразования значений без ручного приведения.


🔗Ссылка на медиум
👍4👏1🌚1
️ Если вы вдруг забыли: у нас можно купить рекламу

Библиотека программиста — медиа с миллионной аудиторией из IT-сферы. Что у нас есть:

• 60+ телеграм-каналов по разным IT-направлениям, от Python до DevOps

• 25 000 daily active users на сайте, который поможет усилить продвижение

• Возможность сделать нативную интеграцию, виральный пост и не только

За айтишной аудиторией — к нам 😏

По вопросам рекламы пишите сюда → @proglib_adv
2👍1🥱1
💬Метод «foreignIdFor»

При определении внешних id Laravel предлагает несколько методов, один из которых — foreignIdFor(). Этот метод использует имя модели и добавляет к нему «id». Это не только делает ваш код более читабельным, но и позволяет быстро перейти к модели из миграции 🚀

👉Документация

#совет
🔥8🥱1