Библиотека пхпшника | 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
🔗Реализация паттерна 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
🌵🔍 Git-квест: 10 испытаний для повелителя репозиториев

Готовы проверить свои навыки работы с Git? Пройдите наш квест и узнайте, насколько искусны в управлении репозиториями.

Посмотрим, пугают ли вас git stash, git rebase и прочие страшные слова 🤨

🔗 Пройти тест
Please open Telegram to view this post
VIEW IN TELEGRAM
😢3👏2👍1😁1🌚1
🎞️ Видео, от которого сложно оторваться: эволюция языков программирования с 1958 по 2025

В этом ролике — детальная инфографика, которая показывает, как менялись самые популярные языки программирования за последние 67 лет.

Что внутри:

▪️ Как C, Java и Python захватывали мир.

▪️ Когда Fortran и COBOL теряли свои позиции.

▪️ Какие языки стали лидерами в последние годы.

Рейтинг построен на основе опросов, данных GitHub, книг и статей, а также аналитики популярности за последние годы.
👍2🥱2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😂 Dev Memes: утренние дилеммы, правки и зарплаты

Третья неделя года позади, а мы всё ещё смеёмся над мемами. Ловите подборку лучших шуток из нашего канала «Библиотека IT-мемов».

🔗 Подборка самых топовых мемов
😁81👍1
🧩Экономичные контейнерные Smoke-тесты, которые должен иметь каждый проект Symfony

Smoke-тесты — это простые проверки, которые не требуют подключения к базе данных, внешним сервисам, или использования моков. Они работают с контейнером зависимостей Symfony, пишутся быстро и будут полезны на протяжении всего жизненного цикла проекта.

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

👉Читать статью
5😁5👍2