Laravel Actions 5.0.0 released
Removed
- Removed changelog generator
- Removed support for older versions of Laravel
https://github.com/TheDragonCode/laravel-actions/releases/tag/5.0.0
#laravel_actions #actions #laravel
Removed
- Removed changelog generator
- Removed support for older versions of Laravel
https://github.com/TheDragonCode/laravel-actions/releases/tag/5.0.0
#laravel_actions #actions #laravel
GitHub
Release 5.0.0 · TheDragonCode/laravel-deploy-operations
Removed
Removed changelog generator by @andrey-helldar in #153
Removed support for older versions of Laravel by @andrey-helldar in #152
Removed changelog generator by @andrey-helldar in #153
Removed support for older versions of Laravel by @andrey-helldar in #152
Laravel Deploy Operations 6.0.0 released
Changed
- Added suggestion for dragon-code/laravel-data-dumper
- Database transaction settings moved to configuration file
- The $async property moved to configuration file
- The enabledTransactions method has been renamed to hasTransactions
- Update doc's title
-
Fixed
- Fixed documentation hostname
- Fixed upgrade processor
https://github.com/TheDragonCode/laravel-deploy-operations/releases/tag/6.0.0
#laravel_deploy_operations #deploy #laravel #operations
Changed
- Added suggestion for dragon-code/laravel-data-dumper
- Database transaction settings moved to configuration file
- The $async property moved to configuration file
- The enabledTransactions method has been renamed to hasTransactions
- Update doc's title
-
[6.x] Rename the project to “Deploy Operations” from “Deploy Actions”Fixed
- Fixed documentation hostname
- Fixed upgrade processor
https://github.com/TheDragonCode/laravel-deploy-operations/releases/tag/6.0.0
#laravel_deploy_operations #deploy #laravel #operations
GitHub
Release 6.0.0 · TheDragonCode/laravel-deploy-operations
Changed
Added suggestion for dragon-code/laravel-data-dumper by @andrey-helldar in #162
Database transaction settings moved to configuration file by @andrey-helldar in #158
The $async property mov...
Added suggestion for dragon-code/laravel-data-dumper by @andrey-helldar in #162
Database transaction settings moved to configuration file by @andrey-helldar in #158
The $async property mov...
Laravel Deploy Operations 6.1.0 released
Changed
- Changed typing of the method property for events
- Removed operations:stub command
- Update documentation
https://github.com/TheDragonCode/laravel-deploy-operations/releases/tag/6.1.0
#laravel_deploy_operations #deploy #laravel #operations
Changed
- Changed typing of the method property for events
- Removed operations:stub command
- Update documentation
https://github.com/TheDragonCode/laravel-deploy-operations/releases/tag/6.1.0
#laravel_deploy_operations #deploy #laravel #operations
GitHub
Release 6.1.0 · TheDragonCode/laravel-deploy-operations
Changed
Changed typing of the method property for events by @andrey-helldar in #169
Removed operations:stub command by @andrey-helldar in #167
Update documentation by @andrey-helldar in #168
Changed typing of the method property for events by @andrey-helldar in #169
Removed operations:stub command by @andrey-helldar in #167
Update documentation by @andrey-helldar in #168
Github Notifications 1.9.0 released
Changed
- Added search for saved authorization token
- Welcome message added
Dependencies
- Bump dependencies
https://github.com/TheDragonCode/github-notifications/releases/tag/1.9.0
#github_notifications #github #notifications
Changed
- Added search for saved authorization token
- Welcome message added
Dependencies
- Bump dependencies
https://github.com/TheDragonCode/github-notifications/releases/tag/1.9.0
#github_notifications #github #notifications
GitHub
Release 1.9.0 · TheDragonCode/github-notifications
Changed
Added search for saved authorization token by @andrey-helldar in #101
Welcome message added by @andrey-helldar in #105
Dependencies
Bump dependencies by @andrey-helldar in #102
Added search for saved authorization token by @andrey-helldar in #101
Welcome message added by @andrey-helldar in #105
Dependencies
Bump dependencies by @andrey-helldar in #102
Docker Hub - всё
Сегодня с утра на территории России перестал открываться Docker Hub. Ведь это так поможет бороться...
В сети уже появились ссылки на китайские зеркала, но доверие к ним под большим вопросом. Не хочется стать помощником в распространении вполне вероятного вредоносного ПО с их стороны...
Сегодня с утра на территории России перестал открываться Docker Hub. Ведь это так поможет бороться...
В сети уже появились ссылки на китайские зеркала, но доверие к ним под большим вопросом. Не хочется стать помощником в распространении вполне вероятного вредоносного ПО с их стороны...
😡1
Инструкция по настройке зеркала для Docker
Вследствие внезапно возникшего сообщения о блокировке сервиса Docker Hub на территории России.
Необходимо указать зеркала сервиса одним из способов:
1. Через файл конфигурации докера
2. Через Docker Desktop
Перейдите в настройки, далее вкладка "Docker Engine" и добавьте зеркала.
Зеркала для добавления (указывайте на свой страх и риск):
Известные прокси:
Доверять ли этим прокси - решать только Вам.
Вследствие внезапно возникшего сообщения о блокировке сервиса Docker Hub на территории России.
Необходимо указать зеркала сервиса одним из способов:
1. Через файл конфигурации докера
Linux, regular setup
/etc/docker/daemon.json
Linux, rootless mode
~/.config/docker/daemon.json
Windows
C:\ProgramData\docker\config\daemon.json
Windows с Docker Desktop
%USERPROFILE%\.docker\daemon.json
2. Через Docker Desktop
Перейдите в настройки, далее вкладка "Docker Engine" и добавьте зеркала.
Зеркала для добавления (указывайте на свой страх и риск):
{ "registry-mirrors" : [ "https://huecker.io", "https://mirror.gcr.io" ] }Известные прокси:
Хуёкер https://huecker.io
Google https://mirror.gcr.io
China https://daocloud.io
China https://c.163.com
China https://registry.docker-cn.com
Доверять ли этим прокси - решать только Вам.
Сегодня внезапно из России перестал работать домен dragon-code.pro со всеми его поддоменами, включая deploy-operations.dragon-code.pro
На сайт пускает только под VPN. Подобное поведение уже было, когда Роскомнадзор внёс в список блокировок пул адресов CloudFlare. В этой ситуации остаётся лишь ждать когда либо CF изменят пул, либо РКН снимет блокировку ☹️
На сайт пускает только под VPN. Подобное поведение уже было, когда Роскомнадзор внёс в список блокировок пул адресов CloudFlare. В этой ситуации остаётся лишь ждать когда либо CF изменят пул, либо РКН снимет блокировку ☹️
Laravel Http User Agent 1.0.0 released
First Release
https://github.com/TheDragonCode/laravel-http-user-agent/releases/tag/1.0.0
#laravel_http_user_agent #agent #http #laravel #user
First Release
https://github.com/TheDragonCode/laravel-http-user-agent/releases/tag/1.0.0
#laravel_http_user_agent #agent #http #laravel #user
GitHub
Release 1.0.0 · TheDragonCode/laravel-http-user-agent
First Release
Laravel Http User Agent 1.1.0 released
Changed
- Replacing the use of the globalOptions method with middleware
https://github.com/TheDragonCode/laravel-http-user-agent/releases/tag/1.1.0
#laravel_http_user_agent #agent #http #laravel #user
Changed
- Replacing the use of the globalOptions method with middleware
https://github.com/TheDragonCode/laravel-http-user-agent/releases/tag/1.1.0
#laravel_http_user_agent #agent #http #laravel #user
GitHub
Release 1.1.0 · TheDragonCode/laravel-http-user-agent
Changed
Replacing the use of the globalOptions method with middleware by @andrey-helldar in #1
Replacing the use of the globalOptions method with middleware by @andrey-helldar in #1
Список удобных алиасов для работы с Laravel и Composer
composer normalize приводит состояние файла composer.json согласно официальной схеме Composer. Реализуется путём глобальной установки пакета ergebnis/composer-normalize.Forwarded from Andrey Helldar
Простой и быстрый способ локализации маршрутов 🗺
Сегодня наша команда поздравляет Вас с выходом одного из запланированных проектов - laravel-lang/routes.
Его задача заключается в локализации приложения при входящих запросах посредством URL-параметра, заголовка, куков или данных сессии.
Информацию по установке и использованию можно найти в документации: https://laravel-lang.com/packages-routes.html
Сегодня наша команда поздравляет Вас с выходом одного из запланированных проектов - laravel-lang/routes.
Его задача заключается в локализации приложения при входящих запросах посредством URL-параметра, заголовка, куков или данных сессии.
Информацию по установке и использованию можно найти в документации: https://laravel-lang.com/packages-routes.html
👍1
Порядок регистрации пакетов в Laravel
Сегодня столкнулись с проблемой, следствием которой стала невозможность установки пакетов в приложение.
Разобравшись в деталях, была найдена причина и возможные варианты её обхода. Возможно, кому-то пригодится.
Итак, в данном случае устанавливали пакет laravel-lang/common, который имеет свои зависимости. Некоторые из них, в конечном итоге, обращаются к пакету конфигурации, вынесенному отдельно для удобства работы с ними в рамках проекта Laravel-Lang.
Так вот, после установки, Laravel вызывает механизм
Далее идёт цепочка:
1. Actions вызывает внутреннюю механику Publisher
2. Publisher обращается к скрытой (читай системной) области конфигураций
3. Конфигурация возвращает ошибку потому что в этот момент она ещё не была зарегистрирована.
Добавлять вызов сервис-провайдера от Config в блок
Но что же делать? - спросите.
И решения найдено два:
1. В случае "отсутствия" конфигурации тип конечной переменной должен быть готов принять
2. Можно добавить вызов регистрации сервис-провайдера в метод
Но если таких пакетов много, то второй вариант максимально близок к утопии.
Сегодня столкнулись с проблемой, следствием которой стала невозможность установки пакетов в приложение.
Разобравшись в деталях, была найдена причина и возможные варианты её обхода. Возможно, кому-то пригодится.
Итак, в данном случае устанавливали пакет laravel-lang/common, который имеет свои зависимости. Некоторые из них, в конечном итоге, обращаются к пакету конфигурации, вынесенному отдельно для удобства работы с ними в рамках проекта Laravel-Lang.
Так вот, после установки, Laravel вызывает механизм
Illuminate\Foundation\ComposerScripts::postAutoloadDump, который проходит по всем пакетам и регистрирует их. Composer отдаёт этот список в алфавитном порядке, а так как Actions находится выше Config, то и инициализируется раньше.Далее идёт цепочка:
1. Actions вызывает внутреннюю механику Publisher
2. Publisher обращается к скрытой (читай системной) области конфигураций
3. Конфигурация возвращает ошибку потому что в этот момент она ещё не была зарегистрирована.
Добавлять вызов сервис-провайдера от Config в блок
extra файла composer.json тоже бесполезно - не работает, проверено.Но что же делать? - спросите.
И решения найдено два:
1. В случае "отсутствия" конфигурации тип конечной переменной должен быть готов принять
null в качестве значения, либо его инициализатор должен учитывать это состояние и подставлять "дефолтное" значение.2. Можно добавить вызов регистрации сервис-провайдера в метод
register самого пакета. Например:use \LaravelLang\Config\ServiceProvider as CSP;
$this->app->register(CSP::class);
Но если таких пакетов много, то второй вариант максимально близок к утопии.
🔥1
Laravel Deploy Operations 6.2.0 released
Added
- Added file name question
https://github.com/TheDragonCode/laravel-deploy-operations/releases/tag/6.2.0
#laravel_deploy_operations #deploy #laravel #operations
Added
- Added file name question
https://github.com/TheDragonCode/laravel-deploy-operations/releases/tag/6.2.0
#laravel_deploy_operations #deploy #laravel #operations
GitHub
Release 6.2.0 · TheDragonCode/laravel-deploy-operations
Added
Added file name question by @andrey-helldar in #172
Added file name question by @andrey-helldar in #172
Работа с новой архитектурой в Laravel 11
Основная "киллер-фича" фреймворка Laravel версии 11 - "плоский код". Под капот убрано всё, что большинством разработчиков не используется и, по сути, является "мусором". А также убраны некоторые действительно полезные вещи.
В статье мы рассмотрим что куда делось и как улучшить взаимодействие с новой архитектурой.
https://habr.com/ru/articles/822185/
Основная "киллер-фича" фреймворка Laravel версии 11 - "плоский код". Под капот убрано всё, что большинством разработчиков не используется и, по сути, является "мусором". А также убраны некоторые действительно полезные вещи.
В статье мы рассмотрим что куда делось и как улучшить взаимодействие с новой архитектурой.
https://habr.com/ru/articles/822185/
🔥4❤1
Алиасы устанавливаемых зависимостей
При разработке пакетов часто нужно подгружать
Конечно, можно указать алиас ветки в том самом репозитории, но это не всегда срабатывает, да и Packagist любит превращать их тег, например, в
Но решение есть и очень простое - инлайновый алиас. Всё что нужно сделать - это указать
Главное, не забудьте её переключить перед релизом 😉
При разработке пакетов часто нужно подгружать
dev версии зависимостей и с этим могут возникнуть проблемы, если другие используемые зависимости требуют стабильную версию.Конечно, можно указать алиас ветки в том самом репозитории, но это не всегда срабатывает, да и Packagist любит превращать их тег, например, в
1.0.x-dev при том, что алиас задан как 1.0-dev, что делает практически невозможным их установку.Но решение есть и очень простое - инлайновый алиас. Всё что нужно сделать - это указать
dev версию той самой зависимости как стабильную и выполнить команду composer update. И зависимость будет без проблем установлена.Главное, не забудьте её переключить перед релизом 😉
❤5🤯2
Состоялся первый публичный релиз Laravel Lang: Models v1.0-beta1 🔥
Проект, реализующий перевод контента в приложении с удобным хранением и использованием.
Документация будет в ближайшее время 💪
https://github.com/Laravel-Lang/models
Проект, реализующий перевод контента в приложении с удобным хранением и использованием.
Документация будет в ближайшее время 💪
https://github.com/Laravel-Lang/models
🔥2❤1
Иногда возникает необходимость выполнить какие-либо действия над коллекцией релейшена для использования в нескольких местах приложения.
Один из часто встречаемых вариантов - это метод
Метод
Один из часто встречаемых вариантов - это метод
keyBy, когда нужно ключи массива превратить в какое-либо значение из результата.Метод
afterQuery в Laravel 11.4+ позволяет выполнить эти действия, сохранив результат в релейшены. Таким образом, снаружи больше не будет необходимости их повторять.❤3😱2🔥1
Отслеживание запросов N+1 к базе данных - это легко!
Одна из основных проблем средних и больших приложений в том, что, в какой-то момент времени разработчики перестают отслеживать множественные запросы при обращении к релейшенам.
Именно для этого существует метод
Работает он просто - если при запуске приложения обнаружено обращение к релейшену коллекции, для которого не была применена жадная загрузка, такой запрос упадёт с ошибкой, сообщив об этом.
При этом, совсем не стоит бояться выгружать его на продакшен - именно для этого в его аргумент можно передать условие активации везде, кроме прода.
Таким образом, если Ваше приложение покрыто тестами, Вы на этапе их запуска узнаете об этом 🙂
https://laravel.com/docs/eloquent-relationships#preventing-lazy-loading
Одна из основных проблем средних и больших приложений в том, что, в какой-то момент времени разработчики перестают отслеживать множественные запросы при обращении к релейшенам.
Именно для этого существует метод
Model::preventLazyLoading, который позволяет активировать их обнаружение.Работает он просто - если при запуске приложения обнаружено обращение к релейшену коллекции, для которого не была применена жадная загрузка, такой запрос упадёт с ошибкой, сообщив об этом.
При этом, совсем не стоит бояться выгружать его на продакшен - именно для этого в его аргумент можно передать условие активации везде, кроме прода.
Таким образом, если Ваше приложение покрыто тестами, Вы на этапе их запуска узнаете об этом 🙂
https://laravel.com/docs/eloquent-relationships#preventing-lazy-loading
🔥1🤯1
The Dragon Code News
Иногда возникает необходимость выполнить какие-либо действия над коллекцией релейшена для использования в нескольких местах приложения. Один из часто встречаемых вариантов - это метод keyBy, когда нужно ключи массива превратить в какое-либо значение из результата.…
Обнаружен нюанс метода afterQuery - если в модель прокинуть вызов
Но и решение проблемы банально простое - нужно в модели переопределить метод
with с релейшенами, то он перезатирает результат.Но и решение проблемы банально простое - нужно в модели переопределить метод
setRelation. Да, костыль. Зато работает.Переиспользуемые скоупы
Традиционно, переиспользуемые скоупы запросов всегда определялись в самой модели с помощью магического метода
Подробнее об этом и не только способе можно прочитать здесь и здесь.
Традиционно, переиспользуемые скоупы запросов всегда определялись в самой модели с помощью магического метода
scopeXXX, макросов или специального класса Builder. В первых двух случаях проблема заключается в том, что они оба опираются на неявную магию, что делает (почти) невозможным получение подсказок со стороны IDE без применения специальных инструментов. Ещё хуже то, что в случае регистрации макросов, может возникнуть конфликт имён. Однако, существует и четвёртый, на мой взгляд, более эффективный подход: использование переиспользуемых скоупов (tappable scopes).Подробнее об этом и не только способе можно прочитать здесь и здесь.
👍3❤1