Конфигурация платформы

Suggest Edit

Платформа использует стандартную систему настроек для Laravel. Параметры располагаются в директории config, а основным источником для платформы является файл platform.php. Каждая настройка поставляется с комментарием поясняющим основную суть.

Примечание. Если вы кэшируете свои файлы конфигурации, не забудьте очистить их после изменения, используя команду php artisan config:clear

Ниже мы углубимся в файл конфигурации и дадим подробное описание каждого параметра.

Адрес платформы

'domain' => env('PLATFORM_DOMAIN', null),

Для многих проектов адрес расположения панели администрирования играет важную роль. Например, приложение располагается по адресу example.com, а платформа на admin.example.com или на стороннем домене.

Для этого требуется указать по какому адресу вы хотели её открывать.

'domain' => 'admin.example.com',

Помните, что ваши параметры веб-сервера должны быть настроены должным образом.

Префикс платформы

'prefix' => env('PLATFORM_PREFIX', 'admin'),

Предоставляется возможность смены префикса admin на любое другое название, например dashboard или administrator.

Middleware

'middleware' => [
    'public'  => ['web'],
    'private' => ['web', 'platform'],
],

Можете добавлять/изменять промежуточные слои (middleware) для графического интерфейса. На данный момент предусмотрены две группы: public, которую может видеть не авторизованный пользователь, например, страницу “Входа”, и private, которую наоборот видят только авторизованные пользователи.

Вы можете добавить сколько угодно новых промежуточных слоёв, например, слой фильтрации запросов только из белого списка IP адресов.

Страница авторизации

'auth' => true,

По умолчанию, когда параметр auth установлен в значение true, Orchid использует свой собственный простой интерфейс входа в систему. Если вам требуются более продвинутые функции, такие как восстановление пароля или двухфакторная аутентификация, то установите auth в false и используйте пакет Jetstream или создайте свой собственный.

Главная страница

Главная страница приложения записана в виде названия маршрута, именно её увидит пользователь при входе или нажатии на логотипы и ссылки.

'index' => 'platform.main',

Ресурсы панели управления

'resource' => [
    'stylesheets' => [],
    'scripts'     => [],
],

В ходе работы вам может потребоваться добавить свои собственные таблицы стилей или javascript сценарии глобально, на каждую страницу. В таком случае необходимо добавить пути для них в соответствующие массивы.

Также возможно указывать ресурсы через объект Dashboard, например в сервис провайдере:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Orchid\Platform\Dashboard;

class AppServiceProvider extends ServiceProvider
{
    public function boot(Dashboard $dashboard)
    {
        $dashboard->registerResource('stylesheets', 'custom.css');
        $dashboard->registerResource('scripts', 'custom.js');
    }
}

Шаблоны внешнего вида

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

'template' => [
    'header' => null,
    'footer' => null,
],

Переопределение Blade шаблонов

Бэкенд-страницы создаются с помощью Blade. Вы можете изменить их, используя механизм переопределения шаблонов Laravel (он одинаков для всех пакетов, а не только для Orchid);

Для переопределения шаблонов из пакета создайте директорию /resources/views/vendor/platform/ в вашем приложении и и создайте новые шаблоны по тому же пути, что и исходные.

Например, чтобы переопределить /vendor/orchid/platform/resources/views/partials/search.blade.php, создайте новый шаблон по адресу /resources/views/vendor/platform/partials/search.blade.php. Наглядный пример:

your-project/
├─ ...
└─ resources/
   └─ views/
      └─ vendor/
         └─ platform/
            └─ partials/
                └─ search.blade.php          

Примечание. Переопределенные шаблоны не получают обновлений или исправлений ошибок. Думайте об этом как об отключении автопилота.

Модельные классы

Вполне нормальным является желание изменить поведение некоторых классов из стандартной поставки. Для того чтобы платформа использовала ваши классы моделей вместо своих, необходимо заранее зарегистрировать их подмену, с помощью:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Orchid\Support\Facades\Dashboard;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Dashboard::useModel(
            \Orchid\Platform\Models\User::class,
            \App\User::class
        );
    }
}

Можно использовать параметр конфигурации, что позволит определить все подмены сразу:

Dashboard::configure([
    'models' => [
        User::class => MyCustomClass::class,
    ],
]);

Our Friends