Download the PHP package dev-lnk/moonshine-builder without Composer
On this page you can find all versions of the php package dev-lnk/moonshine-builder. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package moonshine-builder
Создание проектов с использованием схем для MoonShine.
- Описание
- Установка
- Конфигурация
- Быстрый старт
- Методы генерации кода
- Создание из SQL-таблицы
- Создание из JSON-схемы
- Timestamps
- Soft delete
- Флаги для генерации файлов
- Генерация из openapi спецификации
- Генерация из консоли
- Массовый импорт таблиц
Описание
Этот пакет позволяет создавать Resource, Model и Migration со всеми полями, используя методы генерации из:
- SQL-таблицы,
- JSON-схемы,
- Openapi (beta)
- Генерация кода для нового ресурса из консоли.
Пакет генерирует следующие файлы:
Установка
Конфигурация
Опубликуйте файл конфигурации пакета:
В файле конфигурации укажите путь к вашим JSON-схемам:
Быстрый старт
Выполните команду:
Вам будут предложены варианты выбора методов генерации кода, например:
При выборе варианта json
:
Команда имеет следующую сигнатуру moonshine:build {target?} {--type=}
, где:
target
- сущность, по которой будет выполнена генерация,type
- тип или метод генерации, доступноtable
,json
,console
.
Методы генерации кода
Создание из SQL-таблицы
Вы можете создать ресурс, используя схему таблицы. Для этого выполните команду php artisan moonshine:build
и выберите вариант table
:
Выберите необходимую таблицу:
Вы можете сразу указать название таблицы и тип генерации. Пример:
Результат:
Создание из JSON-схемы
Структура JSON. В директории builds_dir
создайте файл схемы, например, category.json
:
Чтобы сгенерировать файлы проекта, выполните команду:
Более подробный пример с множественными ресурсами и связями можно найти здесь.
Timestamps
Вы можете указать флаг timestamps: true
:
Поля created_at
и updated_at
будут добавлены в сгенерированный код. Если вы укажете поля created_at
и updated_at
вручную, флаг timestamps
автоматически установится в true
.
Soft delete
Работает аналогично флагу timestamps
и полю deleted_at
.
Флаги для генерации файлов
С помощью флагов withResource
, withModel
, withMigration
вы можете настроить, что именно требуется сгенерировать для вашего ресурса:
Генерация из Openapi схемы (yaml)
Данная функция находится в разработке, но вы уже можете сформировать данные из своей openapi спецификации в формате yaml. Для этого вам необходимо в секции path, после указания HTTP метода, указать tag
Одинаковый tag можно использовать в разных paths одной сущности, это позволит собрать дополнительные поля для вашего ресурса. Например:
Генерация из консоли
Выполните команду php artisan moonshine:build
и выберите вариант console
, либо выполните команду moonshine:build-resource
. Далее вам необходимо задать имя ресурса и описать все поля:
Вы можете сразу создать ресурс с полями, выполнив следующую команду:
Результат:
Сигнатура команды moonshine:build-resource {entity?} {fields?*}
, где:
- entity - название ресурса,
- fields - поля для генерации вида name:Name:string или {column}:{columnName}:{type}
Все доступные {type} можно посмотреть, выполнив команду php artisan moonshine:build-types
Массовый импорт таблиц
Если у вас уже есть проект с собственной базой данных и вы не хотите генерировать ресурсы по одному, используйте следующую команду:
Сначала выберите все ваши pivot-таблицы для корректного формирования связи BelongsToMany, затем выберите все необходимые таблицы, для которых нужно сгенерировать ресурсы:
Будет создана JSON-схема, которую при желании можно отредактировать и использовать: