PHP и Laravel дайджест новостей за октябрь 2023 года

Всем привет! Краткий обзор новостей из мира PHP и Laravel за октябрь 2023 года от Сергея Пантелеева и Данила Щуцкого.
Бесплатный веб-фреймворк с открытым кодом
Всем привет! Краткий обзор новостей из мира PHP и Laravel за октябрь 2023 года от Сергея Пантелеева и Данила Щуцкого.
Всем привет! Меня зовут Данила Соловьев, я заместитель руководителя направления PHP в AGIMA. Недавно мы разработали собственное коробочное решение — это универсальный бэкенд для карьерных сайтов на Laravel. Мы можем разработать такой за четыре месяца. В этой статье объясняю, что побудило нас сделать такую коробку, из чего она состоит и кому может пригодиться.
Недавно в рабочем проекте потребовалось реализовать универсальную сортировку, которая подходила бы для большинства моделей. Если с обычной сортировкой по полю всё просто - её, подробно описанную, вы найдёте в документации к фреймворку, то для случаев сортировки, когда требуемое поле находится НЕ в основной таблице, а в одной из связанных, информации оказалось исключительно мало и она была весьма разрозненной.
После завершения задачи решил создать этот более-менее "всеохватывающий" гайд.
Можно ли заставить приложение на Laravel реагировать на события, происходящие в функциях и триггерах СУБД PostgeSQL? Если повезёт с конфигурацией приложения, то можно. Используя задания и очереди Laravel.
Увлекательный туториал на примере простейшего приложения.
В предущей части
Исследование выгрузки базы ГАР
Что в этой части?
Создание консольного приложения Laravel, способного по команде artisan загрузить свежую выгрузку с сервера ГАР, распарсить её, занести данные в таблицы, используя многопоточность, и выдать данные в удобном табличном виде, используя представление базы данных.
Не требует web-сервера и запущенных воркеров Laravel.
Готовое приложение, расположенное на github.com прилагается.
В качестве бонуса: реализация «актуализации» устаревшей, но тем не менее, годной к употреблению информации.
Всем привет!
В этой статье расскажу, как решил написать библиотеку https://packagist.org/packages/xman12/persistent-request и что там внутри.
Как и любая библиотека, эта решает свои задачи, а именно гарантированное выполнение запроса и последующую обработку. Я находил, как минимум, одно решение, которое работает с подобной проблематикой — это temporal.io, но система монструозная, а мне хотелось, чего-то более легкого и приземленного, поэтому я решил написать свое решение этой задачи.
Всем привет! Краткий обзор новостей из мира PHP и Laravel за сентябрь 2023 года от Сергея Пантелеева и Данила Щуцкого.
bcrypt - это функция хэширования паролей, используемая для их защиты в базах данных чтобы их не смог использовать тот, кто получит доступ к исходному кэшу. В настоящее время bcrypt является алгоритмом шифрования по-умолчанию как в Laravel, так и в самом PHP, и на момент написания статьи является наиболее безопасным вариантом хэширования паролей, но нужно увеличить количество проходов хэширования...
Привет, коллеги!
В этой статье я сделаю небольшой обзор NativePHP, который появился на последнем Laracon. Что из себя представляет NativePHP? Перед нами фреймворк, который позволяет нам писать нативные десктоп приложения, используя PHP. Приложения кроссплатформенные - можно писать под Mac, Windows и Linux. И все это с использованием нашего любимого PHP с использованием Laravel. Но как обещают разработчики в будущем появятся и другие драйверы.
Решаемая задача
Зная UUID дома (ранее идентификатор ФИАС) требуется найти почтовый индекс, город, улицу и номер дома для отдельно взятого региона, и на этих данных создать собственные справочники. Используемая РСУБД — PostgeSQL, используемый фреймворк — Laravel 10.
Для кого может оказаться полезен данный материал
Для тех, кто решает схожую задачу или, кто решает задачу от противного, т.е. приводит в порядок свои базы, находя «Идентификатор ФИАС» по наименованиям городов, улиц и т.п. А так же всем, кто хочет разобраться в структуре базы ГАР, в рамках решаемой задачи.
Что в 1-й части
Подробный анализ выгрузки базы ГАР, описание полей, нахождение реляций.
Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.
В этой статье я хотел бы рассказать о нескольких советах и рекомендациях, о которых узнал экспериментальным путём. Например, Вы когда-нибудь задумывались о том, чтобы тем или иным образом разделить жадные загрузки? Нет? Тогда, я уверен, Вы узнаете как минимум что-то новое, так что обязательно дочитайте до конца!
Если Вы ещё не читали первую часть, самое время это сделать.
Eloquent - это мощный и умный инструмент, нравящийся многим своими возможностями. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простоту использования. Реализуя паттерн Active Record (AR), описанный Фаулером в книге "PoEAA", является одним из лучших реализаций на сегодняшний день.
В этой статье я хотел бы рассказать о нескольких советах и рекомендациях, о которых узнал экспериментальным путём. Например, Вы когда-нибудь задумывались о том, чтобы тем или иным образом разделить жадные загрузки? Нет? Тогда, я уверен, Вы узнаете как минимум что-то новое, так что обязательно дочитайте до конца!
Как и все существующие инструменты, у Eloquent имеются свои нюансы. Как ответственные разработчики, мы всегда должны помнить о том, на что соглашаемся. Если Вы хотите узнать больше об AR и философии её разработки, очень рекомендую статью Шона МакКула.
Меня зовут Данил Щуцкий, я автор проекта CutCode. В этой статье я хотел рассказать вам о MoonShine — панели для администрирования для ваших проектов на Laravel.
Над MoonShine я работаю с участниками комьюнити CutCode. Это open‑source проект, основная задача которого — сделать админ‑панель максимально простую (для начинающих разработчиков) и в тоже время функциональную и кастомизируемую (для опытных).
На мой взгляд, для новичков очень непросто освоить другие, уже набравшие популярность панели администрирования, и дать им инструмент с невысоким порогом вхождения по знаниям. В то же время для бывалых разработчиков архитектура MoonShine позволяет создавать очень функциональные вещи.
В качестве стека был выбран TAL (Tailwindcss, Alpine.js, Laravel), на мой взгляд и функционально и перспективно.
На момент написания статьи актуальная версия MoonShine 1.62. Для работы MoonShine необходимо:
php >= 8.0
laravel >= 9.0
Для комфортного применения MoonShine написана документация, а также снят подробный видеогайд.
Текстовая версия дайджеста новостей PHP и Laravel за август 2023 от Сергея Пантелеева и Данила Щуцкого
Hola Amigos! На связи Евгений Шмулевский, PHP-разработчик в Amiga. Начал заниматься программированием с 2001 года, привет Basic и Express/Turbo Pascal. Веб-разработкой — с 2011 года, а профессионально в вебе с 2013 года. Работал продолжительное время с Битрикс, а с 2018 начал осваивать Laravel.
Часто разработчики интересуются почему не рекомендуется использовать тип поля enum
в базе данных, и в этой статье мы рассмотрим все плюсы и минусы данного типа.
Тип колонки enum
используется для хранения данных, которые могут принимать определённые значения из заранее определённого набора. Он обеспечивает ограничение значений, которые может принимать колонка, и позволяет более строго контролировать данные. Это может быть полезно для хранения статусов, категорий, типов или любых других значений, которые могут быть заданы только из ограниченного набора вариантов.
Но это в теории. А что на практике? Рассмотрим под катом.
Laravel Pint — это помощник, который подсвечивает предполагаемые ошибки в вашем PHP-коде. Инстурмент заточен специально для Framework Laravel и из коробки доступен в Laravel 10. Pint построен на основе PHP-CS-Fixer. С его помощью ваш код станет чистым и согласованным.
Предварительно необходимо убедиться, чтобы в контейнере под php-fpm у вас был пакет Xdebug. Нужно либо установить в ручную, либо зашить в Dockerfile - конечно же второе будет лучше, т.к не придется при перезапуске делать одно и то же действие с установкой.
Мой DockerFile пример с командами установщика
Привет, меня зовут Артем Рыбин, и я team lead backend developer в KOTELOV. Сегодня я покажу, как решить практическую задачку с помощью нейросети и сэкономить больше часа. Будем покрывать unit тестами DTO класс в приложении на Laravel.
Все привет, меня зовут Павел Жуковский и сегодня я расскажу о том как быстро развернуть Laravel на Windows.
Как развернуть Laravel с помощью OSPanel (Open Server Panel)?
На самом деле всё не так уж сложно, но повозиться придётся...