Advanced

Команды

Для выбора соответствующего пункта необходимо использовать клавишу пробел.

Установка

Команда для установки пакета MoonShine в ваш проект Laravel:

php artisan moonshine:install

Сигнатура:

moonshine:install {--u|without-user} {--m|without-migrations} {--l|default-layout} {--a|without-auth} {--d|without-notifications} {--t|tests-mode} {--Q|quick-mode}

Доступные опции:

  • --u|without-user - без создания супер-пользователя,
  • --m|without-migrations - без выполнения миграций,
  • --l|default-layout - выбор шаблона по умолчанию (без вопроса про компактную тему),
  • --a|without-auth - без аутентификации,
  • --d|without-notifications - без уведомлений,
  • --t|tests-mode - тестовый режим,
  • --Q|quick-mode - "быстрый" режим (пропускаются все диалоги с использованием параметров по умолчанию).

Для более подробной информации обратитесь к разделу Установка.

Пользователь

Команда для создания супер-пользователя:

php artisan moonshine:user

Сигнатура:

moonshine:user {--u|username=} {--N|name=} {--p|password=}

Доступные опции:

  • --u|username= - логин/email пользователя,
  • --N|name= - имя пользователя,
  • --p|password= - пароль.

Ресурс

Команда для создания ресурсов:

php artisan moonshine:resource

Сигнатура:

moonshine:resource {className?} {--type=} {--m|model=} {--t|title=} {--test} {--pest} {--p|policy} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --m|model= - Eloquent модель для ModelResource,
  • --t|title= - заголовок раздела,
  • --type= - быстрый выбор типа ресурса (1 - по умолчанию, 2 - со страницами, 3 - пустой),
  • --p|policy - также создать Policy,
  • --test или --pest - дополнительно сгенерировать тестовый класс,
  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

При создании ресурса доступно несколько вариантов:

  • Default model resource - ModelResource по умолчанию с объявлением полей в методах indexFields(), formFields() и detailFields(),
  • Model resource with pages - ModelResource c публикацией страниц IndexPage, FormPage и DetailPage,
  • Empty resource - пустой ресурс для кастомных реализаций.

После выполнения команды в директории app/MoonShine/Resources будет создан файл ресурса. Если создается ModelResource со страницами, то в директории app/MoonShine/Pages будут созданы дополнительные страницы.

Примеры:

php artisan moonshine:resource Post --model=CustomPost --title="Articles"
 
php artisan moonshine:resource Post --model="App\Models\CustomPost"

Для более подробной информации обратитесь к разделу ModelResource.

Страница

Команда для создания страниц:

php artisan moonshine:page

Сигнатура:

moonshine:page {className?} {--force} {--without-register} {--crud} {--dir=} {--extends=} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --force - не спрашивать тип страницы,
  • --without-register - без автоматической регистрации в провайдере,
  • --crud - создает группу страниц: индексную, детальную и форму,
  • --dir= - директория, в которой будут располагаться файлы относительно app/MoonShine, по умолчанию Page,
  • --extends= - класс, который будет расширять страница, например IndexPage, FormPage или DetailPage,
  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

После выполнения команды в директории app/MoonShine/Pages будет создана страница по умолчанию (или группа страниц).

Для более подробной информации обратитесь к разделу Страница.

Layout

Команда для создания layout'а:

php artisan moonshine:layout

Сигнатура:

moonshine:layout {className?} {--compact} {--full} {--default} {--dir=} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --compact - наследует компактную тему,
  • --full - наследует базовую тему,
  • --default - установить в конфиге как шаблон по умолчанию,
  • --dir= - директория, в которой будут располагаться файлы относительно app/MoonShine, по умолчанию Layouts,
  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

Для более подробной информации обратитесь к разделу Layout.

Компонент

Команда для создания пользовательского компонента:

php artisan moonshine:component

Сигнатура:

moonshine:component {className?} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

После выполнения команды в директории app/MoonShine/Components будет создан класс для компонента, а в директории resources/views/admin/components - файл Blade.

Для более подробной информации обратитесь к разделу Layout.

Поле

Команда для создания пользовательского поля:

php artisan moonshine:field

Сигнатура:

moonshine:field {className?} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

При выполнении команды можно указать, будет ли поле расширять базовый класс или другое поле.

После выполнения команды в директории app/MoonShine/Fields будет создан класс поля, а в директории /resources/views/admin/fields - файл Blade.

Для более подробной информации обратитесь к разделу Поле.

Команда для создания контроллера:

php artisan moonshine:controller

Сигнатура:

moonshine:controller {className?} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

После выполнения команды в директории app/MoonShine/Controllers будет создан класс контроллера, который можно использовать в маршрутах админ-панели.

Для более подробной информации обратитесь к разделу Контроллеры.

Обработчик

Команда для создания класса Handler:

php artisan moonshine:handler

Сигнатура:

moonshine:handler {className?} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

После выполнения команды в директории app/MoonShine/Handlers будет создан класс обработчика.

Для более подробной информации обратитесь к разделу Handlers.

Политика

Команда для создания класса Policy, привязанного к пользователю админ-панели:

php artisan moonshine:policy

После выполнения команды в директории app/Policies будет создан класс.

Для более подробной информации обратитесь к разделу Безопасность > Авторизация.

Приведение типов

Команда для создания класса TypeCast для работы с данными:

php artisan moonshine:type-cast

Сигнатура:

moonshine:type-cast {className?} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

После выполнения команды в директории app/MoonShine/TypeCasts будет создан файл.

Для более подробной информации обратитесь к разделу TypeCasts.

Публикация

Команда для публикации:

php artisan moonshine:publish

Для публикации доступно несколько вариантов:

  • Assets - ассеты админ-панели MoonShine,
  • Assets template - создает шаблон для добавления собственных стилей или создания собственной темы для MoonShine,
  • System Resources - системные MoonShineUserResource, MoonShineUserRoleResource, которые вы можете изменить,
  • System Forms - системные LoginForm, FiltersForm, которые вы можете изменить,
  • System Pages - системные ProfilePage, LoginPage, ErrorPage, которые вы можете изменить.

Вы можете сразу указать тип публикации в команде.

php artisan moonshine:publish assets

Доступные типы:

  • assets
  • assets-template
  • resources
  • forms
  • pages

Apply

Команда для создания класса apply:

php artisan moonshine:apply

Сигнатура:

moonshine:apply {className?} {--base-dir=} {--base-namespace=}

Доступные опции:

  • --base-dir=, --base-namespace= - изменить базовую директорию и неймспейс класса.

После выполнения команды в директории app/MoonShine/Applies будет создан файл. Созданный класс необходимо зарегистрировать в сервис-провайдере.

Для более подробной информации обратитесь к разделу Поля.