paupaul/ppadmin

Laravel admin panel plugin (Ppadmin) - installable via Composer

Maintainers

Package info

gitlab.com/paupaul/ppadmin

Issues

Type:laravel-package

pkg:composer/paupaul/ppadmin

Statistics

Installs: 10

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.7 2026-02-08 00:54 UTC

This package is not auto-updated.

Last update: 2026-04-05 15:37:40 UTC


README

Плагин добавляет в приложение Laravel админ-панель с CRUD по ресурсам. Устанавливается через Composer. Ресурсы определяются в приложении в пространстве имён App\Ppadmin.

Установка

1. Установка пакета

Локально (текущий репозиторий):

В composer.json вашего проекта добавьте репозиторий и пакет:

{
    "repositories": [
        {
            "type": "path",
            "url": "../ppadmin"
        }
    ],
    "require": {
        "paupaul/ppadmin": "@dev"
    }
}

Либо из корня монорепозитория (если ppadmin лежит в корне):

"repositories": [
    { "type": "path", "url": "./ppadmin" }
],
"require": {
    "paupaul/ppadmin": "@dev"
}

Затем:

composer update paupaul/ppadmin

2. Создание связей (ресурсов админки)

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

php artisan ppadmin:install

Команда создаёт каталог app/Ppadmin и (при отсутствии) пример ресурса ExamplePpadmin.php. Далее:

  • В app/Ppadmin/ добавляйте классы ресурсов с суффиксом Ppadmin (например, ProductPpadmin, PromptPpadmin).
  • Каждый класс должен наследовать Ppadmin\Models\Resource, указывать $model, $title, $search и реализовывать метод fields(Request $request) с полями из Ppadmin\Models\Fields\*.

Пример минимального ресурса:

<?php

namespace App\Ppadmin;

use Illuminate\Http\Request;
use Ppadmin\Models\Resource;
use Ppadmin\Models\Fields\ID;
use Ppadmin\Models\Fields\Text;

class ProductPpadmin extends Resource
{
    public static $model = \App\Models\Product::class;
    public static $title = 'name';
    public static $search = ['id', 'name'];

    public static function label(): string
    {
        return 'Товар';
    }

    public function fields(Request $request): array
    {
        return [
            ID::make()->sortable(),
            Text::make('Название', 'name'),
        ];
    }
}

Доступные поля: ID, Text, Textarea, Number, Date, Boolean, Select, File, Image, Heading, NestedForm (из пространства имён Ppadmin\Models\Fields).

При сохранении записей пакет вызывает у модели статический метод preUpdatedFields(array $data), если он объявлен — так можно фильтровать или дополнять данные перед create/update. Если метода нет, используются переданные поля как есть.

3. Маршруты и авторизация

  • Маршруты регистрируются автоматически (префикс по умолчанию: /ppadmin).
  • К маршрутам админки по умолчанию подключены middleware web и auth — убедитесь, что в приложении настроена аутентификация и пользователь должен быть авторизован для доступа к админке.

4. Конфигурация (по желанию)

Опубликовать конфиг и изменить префикс или middleware:

php artisan vendor:publish --tag=ppadmin-config

В config/ppadmin.php:

  • route_prefix — префикс URL (по умолчанию ppadmin); можно задать через PPADMIN_ROUTE_PREFIX в .env.
  • middleware — массив middleware для маршрутов админки.

Использование в существующем проекте (yandex-gpt-integration)

Если вы переносите проект с уже существующей папкой ppadmin внутри приложения:

  1. Установите пакет paupaul/ppadmin из папки ppadmin в корне (как выше).
  2. Удалите из composer.json автозагрузку "Ppadmin\\": "ppadmin/" и подключение ppadmin/routes.php из RouteServiceProvider — маршруты и классы теперь идут из пакета.
  3. Оставьте в приложении только app/Ppadmin/ с вашими ресурсами (например, PromptPpadmin, HistoryPpadmin и т.д.).
  4. При необходимости выполните php artisan ppadmin:install и настройте конфиг (префикс/ middleware).

После этого связи в коде остаются те же: ресурсы в App\Ppadmin, наследование от Ppadmin\Models\Resource, поля из Ppadmin\Models\Fields\*.