Привет, за клавиатурой Миша Радионов, и я снова расскажу вам про Laravel. Нет, не про тонкости этого фреймворка, а про Laravel-митап, который мы провели в Студии Флаг уже во второй раз.
Laravel *
Бесплатный веб-фреймворк с открытым кодом
Новости
Прикручиваем шаблонизатор Blitz к Laravel
Среди некоторого количества шаблонизаторов для php есть один, который мы долгое время активно использовали и используем в своих проектах. Это Blitz, который являясь расширением, во-первых достаточно быстрый, во-вторых реализует давнюю мечту - максимальное отделение представления от логики.
Пока наши старые проекты были написаны на нативном php, пачке самописного кода и всякого «исторического наследия» проблем особых и не было. Но пришел момент когда некоторые старые куски мы решили переписать «жестко отрефакторить» и заодно влиться во вселенную Laravel. Но для ускорения процесса, перспектива переделать быстро десятки существующих шаблонов на Blade мне показалась такой себе идеей, поэтому надо было как-то прикрутить Blitz к Laravel, желательно в стиле самого Laravel. Ну типа там инсталяция в пару команд и все такое.
С другой стороны, в Blade есть некоторые фичи, которых нет в Blitz, как-то наследование шаблонов через @section/@yeld и внедрение хелперов. И было бы неплохо их добавить, для упрощения дальнейшего перехода на Blade, если будет надо. Сказано – сделано. На коленке за пару-тройку вечеров получился некий адаптер, с которым и хочу ознакомить. Собственно нижележащий текст это вольная попытка озвучить по-русски README.md, где я вообще был лаконичен как никогда
Ресурсные контроллеры в CRUD приложении Laravel
Привет, Хабр. В этой статье я хочу поделиться своим опытом использования ресурсных контроллеров в CRUD приложении на фреймворке Laravel - простенькой CRM. Итак начнём.
Как отправлять электронную почту через PHPMailer из приложений Laravel 8
В данной статье описан алгоритм использования пакета PHPMailer для отправки писем из приложений Laravel 8 через SMTP серверы. PHPMailer - легкий в применении опенсорсный проект, включающий в себя большое количество фич таких как возможность множественной отправки писем, настройки параметров отправки, прикрепления вложений, а также с защитой от Header Injection атак в соответствии со стандартами безопасности.
Перестаньте использовать SQLite в Unit-тестах
TLDR; Использование Sqlite в Laravel (или любых других PHP приложениях) для Unit-тестирования может привести к false positive результатам тестов. Тот код который пройдет тесты, не заработает после переезда в production и использования других БД, например, MySQL. Вместо этого разверните тестовую БД с использованием той же технологии и движка, которые будут использоваться вашим приложением в production.
Во-первых, позвольте мне начать с того, что я очень рад видеть, что вы проводите Unit-тестирование — вы на верном пути! Laravel познакомил многих разработчиков с миром Unit-тестирования, сделав утилиты для тестирования первоклассной частью фреймворка. Это круто! Но нам нужно убедиться, что наше чувство безопасности, которое мы получаем от наших Unit-тестов, верно.
Один из механизмов, которые Laravel предлагает для Unit-тестов, основан на использовании базы данных SQLite . Для ускорения выполнения тестов, база данных запускается непосредственно в оперативной памяти. Такое решение работает в 95% случаев. Но, дьявол кроется в деталях, в этих 5%.
Поговорим о причинах, почему это не лучший выбор.
Миграция Laravel Nova с PostgreSQL на CockroachDB. Наш опыт и решение
Часто бывает, при ближайшем рассмотрении некоторая проблема выявляет более глубокую, погружаясь в решение которой находишь для себя много интересного.
О такой ситуации на одном из наших проектов и пойдет речь.
Как найти самый медленный запрос в приложении
Ваш сайт работает медленно? Грузится целую вечность? Пользователи жалуются, что он практически непригоден для использования? Вам следует проверить свои запросы к базе данных. И я собираюсь показать изящный способ легко профилировать все запросы к базе данных.
Создание API с использованием TDD в Laravel
Привет, Artisans, меня зовут Альберто Росас, я пользуюсь Laravel уже много лет, и одна из самых полезных и стоящих вещей, которые я узнал, — это создание правильных тестовых сьютов для своих приложений. Очень приятно видеть, что тестирование все чаще практикуется в сообществе Laravel, поэтому в этой статье мы начнем с основ TDD в Laravel и продолжим тему в других статьях.
Веб-приложение для видеотрансляций на Laravel
Привет, Хабр. В этой статье я хочу поделиться своим опытом создания приложения на фреймворке Laravel по трансляции видеоконтента. Итак начнём.
Демо Symfony конвертер валют
Недавно довелось делать тестовое задание на Symfony - конвертер валют с прямой и кросс-конвертацией. Получилось весьма неплохо, поэтому хочу поделиться с сообществом примером простого консольного приложения по всем канонам Symfony: DI, autowiring, тегирование сервисов, гибкая конфигурация, вот это вот всё. Надеюсь, это будет полезно начинающим "симфонистам".
Код приложения https://github.com/vladimirmartsul/symfony-exchange-demo
Приложение считает "обмен валюты" по прямым курсам (например, USD -> EUR), а также через "промежуточные" валюты (например, BTC -> EUR). Также есть фейковые курсы для тестов.
Курсы берутся с сайтов ecb.europa.eu (основные мировые валюты по отношению к EUR) и coindesk.com (BTC к USD). Триангуляция основана на принципах отсюда http://www.dpxo.net/articles/fx_rate_triangulation_sql.html. Для хранения данных используется БД SQLite.
PHP-Дайджест № 222/4 (26 апреля – 31 мая 2022)
Доброго дня! Представляю вашему вниманию очередной дайджест новостей из мира PHP.
В этом выпуске: новые версии PHP, новости RFC, новости популярных фреймворков, обзор интересных статей и многое другое.
Laravel Route Grouping: 6 Методов организации маршрутов
В процессе работы программисту всегда полезно иметь структурированные записи для последующего к ним возвращения. Это позволяет не терять нужные знания и разгрузить память. Вашему вниманию предлагается полезная в работе запись, к которой можно всегда обращаться для организации (рефакторинга) роутов. Перевод статьи известного в кругах Ларавел PovilasKorop
Laravel Routing - это функция, которую разработчики изучают с самого начала. Но по мере роста проектов становится все труднее управлять постоянно растущими файлами маршрутов, прокручивая их, чтобы найти нужное Route::get()
объявление. К счастью, существуют методы, позволяющие сделать файлы маршрутов короче и читабельнее, группируя маршруты и их настройки по-разному. Давайте посмотрим.
Здесь мы не будем говорить только об общем простом Route::group()
- это начальный уровень. Давайте погрузимся немного глубже.
Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)
Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.
Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые вынесены в заголовок, чтобы помочь из избежать повсеместной путаницы, сопровождающей эти темы.
Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!
Уменьшение трафика за счёт сжатия изображений. На примере Laravel
Как уменьшить трафик к вашему сайту в 200 раз? Возможно ли это?
В этой статье рассмотрено динамическое создание превьюшек для графических файлов и последующее сохранение результатов такого преобразования для последующего более быстрого доступа к ним.
Пример реализации на Laravel, его плюсы, минусы и возможные пути развития.
Истории
PHP Дайджест № 222/3 (26 марта – 25 апреля 2022)
Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.
Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.
Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.
Маленький баг в тестировании на Laravel
Статья будет небольшая, даже совсем короткая. Для фанатов TDD, верящих, что фреймворки делают в небесах.
Пару часов ковырялась с тестом $response->assertJson()->assertJsonMissing(); при одинаковом содержании обеих скобок:
Laravel: разработка пакетов
Каждый разработчик рано или поздно сталкивается с необходимостью повторного использования собственного кода. В проектах PHP для этих целей создаются пакеты, устанавливаемые с помощью Composer. При этом пакеты могут быть абстрагированы от каких-либо фреймворков, либо могут быть предназначены для использования в конкретном PHP-фреймворке. В данной статье рассказывается о том, как создать PHP-пакеты для фреймворка Laravel, но материал будет полезен и тем, кто собирается разрабатывать любые другие PHP-пакеты (как публичные, так и приватные).
Для лучшего понимания данного материала рекомендуется ознакомиться с разделом о разработке пакетов в официальной документации Laravel. А для более детального изучения темы будет полезен данный ресурс.
Данная статья в большей мере ориентирована на начинающих разработчиков.
PHP Дайджест № 222/2 (22 февраля – 25 марта 2022)
Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.
Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.
Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.
Laravel Sail под Windows
Подробное руководство по запуску Laravel Sail под управлением Windows 10 и 11 с примерами.
Кэш HTML на стороне NGINX с помощью Redis
Я поставил задачу сделать Кэш как можно проще, чтоб не увеличивать сложность сервиса и уровень вхождения программистов. На ум сразу приходит Varnish, и подобные инструменты выглядели заманчиво, но они кажутся оверхедом для такой задачи. Пилить микросервисы или масштабировать сервера тоже
Основная проблема - связать кэш с логикой, чтоб кэш сбрасывать только при изменениях. Если внутри Laravel или другого фреймворка мы имеем доступ к бизнес логике зависимых сущностей, то на стороне nginx у нас только параметры запроса.
Вклад авторов
-
pronskiy 4986.0 -
AlexLeonov 249.0 -
snowmage 205.0 -
spasibo_kep 184.1 -
dusterio 150.0 -
EproTM 88.0 -
genkovich 75.0 -
MaxRokatansky 70.0 -
phpclub 70.0 -
Helldar 66.5