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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Coolify

Это open-source альтернатива Heroku / NetLify / Vercel / и т. д.

Он помогает вам управлять своими серверами, приложениями, базами данных на вашем собственном оборудовании, все, что вам нужно, это SSH-соединение. Вы можете управлять VPS, Raspberry Pi и так далее.
👍2
Существуют определенные проблемы, связанные с традиционным моделью запрос-ответ в веб-разработке, поэтому здесь предлагается альтернативное решение, основанное на использовании ReactPHP для асинхронного выполнения PHP-кода.

В начале описывается привычная схема работы сервера: он выполняет задачу по запросу клиента и завершает свою работу после отправки ответа. Однако, когда количество одновременных запросов становится значительным, сервер может столкнуться с проблемой ограниченности производительности, особенно в случае выполнения медленных задач ввода-вывода (I/O), таких как обращение к базе данных.

Затем вводится понятие ReactPHP — библиотеки, позволяющей выполнять PHP-код асинхронно, подобно Go или Node.js. Эта библиотека не требует сложной установки и позволяет решить проблему блокировки сервера на медленных операциях I/O.

Здесь объясняется архитектура на основе событий, которая лежит в основе ReactPHP. Она предполагает создание бесконечного цикла, который ожидает событий и обрабатывает их. Затем приводится примеры использования таймеров, потоков (streams), обещаний (promises) и дочерних процессов (child processes) в ReactPHP для выполнения различных асинхронных задач, таких как чтение файлов, обработка HTTP-запросов и выполнение внешних команд.

Наконец, статья показывает, как использовать ReactPHP для обработки загрузки файлов в проекте Laravel. Она объясняет, как создать отдельный сервер на ReactPHP, который будет обрабатывать эти запросы асинхронно, в то время как основное приложение Laravel будет продолжать работать как обычно.
👍7
Анемичная модель предметной области и логика в сервисах

Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиcы рекомендуют писать только в редких случаях.

В этой статье показано, почему логика в сервисах является более правильным подходом. Рассмотрим пример бизнес-требований и их реализацию с Anemic domain model.
👍4😁3
💬Как часто вы пишете документацию?
😁36🔥3🙏1🥱1💯1
Сокращение нагрузки процессора PHP почти на 40% за счет обновления с Ubuntu 20.04 до 22.04

Команда разработчиков заметила, что после обновления Ubuntu 20.04 до 22.04 сама по себе уменьшилась нагрузка на ЦП следующим образом:

✔️Среднее использование ЦП на Ubuntu 20.04 LTS: 22.9%
✔️Среднее использование ЦП на Ubuntu 22.04 LTS: 13.2%
Это огромное снижение использования ЦП на 42% просто путем обновления операционной системы.

После этого было принято решение обновить остальные сервера и теория подтвердилась. Эти сервера используют Nginx & PHP-FPM, ничего более.

Посмотреть остальные результаты можно здесь.
👍17🤔7👏61🌚1
🔟 10 суровых истин, которые должен знать каждый джун

Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!

👉 Читать статью
👉 Зеркало
👍4🥰2
#дайджест новостей по PHP за неделю:

🔎PHP 8.3.4 и 8.2.17 выпущен! — Команда разработчиков PHP объявляет о немедленной доступности PHP 8.3.4. и 8.2.17. Это баг-фикс релиз.

🔎Laravel Herd выпускает v1.5.0 с новыми сервисами. — Laravel Herd v1.5 представляет новую захватывающую функцию: Services.

🔎Вышел Laravel 11 — Вот список нововведений

🔎Выпущен CakePHP 5.0.6 — Улучшения включают в себя: исправление проверки экземпляров Chronostime. Исправление дескриптора файла в stubconsoleinput и многое другое!

🔎Неделя Symfony #898 (11-17 марта 2024 г.)
6
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?

Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.

Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.

👉 Ссылка на опрос 👈

Прохождение займёт примерно 4 минуты
👍2🌚1
Оптимизированные файлы конфигурации в Laravel 11

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

Было решено удалить все конфигурационные файлы из стандартной установки и вместо этого предоставить возможность добавить только те файлы и опции, которые действительно нужны. Это позволяет создавать более компактные и чистые конфигурационные файлы, что может упростить процесс разработки и поддержки приложения.
🥱7👏3🌚1
Магический API Resource в Laravel

В Laravel есть удобные API ресурсы, с которыми легко и приятно работать в области трансформации данных для ответа на запрос. Но что делать когда возникает необходимость изменить их структуру в соответствии с бизнес-потребностями? Рассказывается здесь!
👍7🥱3
Назовите 3-4 нормальные формы реляционных БД.

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

Первая нормальная форма (1NF): В этой форме все атрибуты в таблице являются атомарными, то есть каждая ячейка содержит только одно значение.

Вторая нормальная форма (2NF): Вторая нормальная форма требует, чтобы каждый неключевой атрибут полностью зависел от ключа, то есть не должно быть частичной зависимости.

Третья нормальная форма (3NF): В этой нормальной форме устраняются транзитивные зависимости. Это означает, что если A зависит от B, а B зависит от C, то A не должно зависеть от C.

Бойса-Кодда нормальная форма (BCNF): Это расширение третьей нормальной формы, которое гарантирует, что каждое неключевое поле зависит только от ключа целиком, а не от его части.

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

#вопросы_с_собеседований
👍131
Laravel Zero — создание TCP-сервера

🔍 Описание задачи:
Автор начинает, описывая цель: создание TCP-сервера для участия в ежегодном CTF. 🛡️ Команда выбирает Laravel Zero для разработки консольного приложения.

🌐 Основы TCP-серверов:
Объясняется, что TCP-серверы принципиально важны, а затем описывается процесс их работы и важность создания сервера для обработки входящих соединений от клиентов.

🚀 Создание сервера:
Здесь показано, как устанавливать Laravel Zero и Swoole и создавать команду для запуска сервера. Затем описываются этапы создания TCP-сервера с использованием событий Start, Connect, Receive и Close.

🖼️ Использование Blade и Tailwind CSS:
Автор обсуждает использование шаблонов Blade для форматирования логов и ответов сервера, а также применение Tailwind CSS для стилизации консольных приложений.
👍7
Система уведомлений в ресурсах Laravel

В предыдущей статье по работе с API ресурсами в Laravel была затронута тема изменения бизнес-потребностей в области формирования внешнего вида объекта ответа на запрос к API приложения.

В этой вводится новая бизнес-потребность под названием «нотификации». Их суть в том, чтобы вместе с ответом на запрос добавлять информацию о каких-либо действиях.
😁6👍3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
Обновление сайтов Symfony на AssetMapper

Здесь описывается процесс перехода с использования Webpack Encore на AssetMapper в Symfony приложениях. Начиная с описания проблем с Webpack Encore, связанных с сложностью настройки и медленным развертыванием из-за необходимости сборки ассетов при каждом деплое, статья переходит к объяснению преимуществ AssetMapper и процесса их внедрения.

Первый шаг — установка AssetMapper с помощью Composer. Затем создается файл importmap.php, который указывает, какие ассеты используются в приложении, и заполняется с помощью команд importmap:require для каждой зависимости. После этого запускается команда importmap:install, которая загружает ассеты в директорию assets/vendor/. Энтрипоинты (точки входа) также определяются в файле importmap.php, а также производятся небольшие изменения в файлах ассетов и шаблонах.

Здесь также говорится о переходе с Sass на чистый CSS и упоминается использование Tailwind CSS. Изменения в CI/CD процессе также описываются, а в заключении авторы отмечают значительное упрощение и улучшение производительности после перехода на AssetMapper.
🔥5👍1
#дайджест #phpdevjob

Вакансии PHP разработчиков уровня Junior

▪️PHP-разработчик
Новомосковск. Экспресс РМС — спектр услуг для интернет-магазинов и компаний дистанционной торговли
Подробнее

▪️PHP-разработчик
Москва. Д-проджект — проектирование и разработкa интернет-систем
Подробнее

Вакансии PHP разработчиков уровня Middle

▪️PHP программист
Санкт-Петербург. СОФТПАРТ — разработкa веб-сервисов для сферы торговли автозапчастями
Подробнее

▪️PHP-разработчик
Удаленка. Офис в Екатеринбурге. Электронные платформы — EdTech стартап
Подробнее

Вакансии PHP разработчиков уровня Senior

▪️Веб-разработчик
Москва. Стройтерминал — разработка ПО
Подробнее

▪️PHP-разработчик
Удаленка. Офис в Санкт-Петербурге. ЭБС Лань — технологическая компания
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
4