PHPackages                             vasichmen/laravel-handbooks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. vasichmen/laravel-handbooks

ActiveLibrary

vasichmen/laravel-handbooks
===========================

Package Handbooks

v1.0.0(6mo ago)01MITPHPPHP ^8.4

Since Nov 7Pushed 6mo agoCompare

[ Source](https://github.com/vasichmen/laravel-handbooks)[ Packagist](https://packagist.org/packages/vasichmen/laravel-handbooks)[ RSS](/packages/vasichmen-laravel-handbooks/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

Подключение
===========

[](#подключение)

- установить пакет

```
 composer require vasichmen/laravel-handbooks
```

- подключить `\Laravel\Handbooks\LaravelHandbooksServiceProvider::class` в `config\app.php`
- опубликовать конфиг

```
php artisan vendor:publish --provider="Laravel\Handbooks\LaravelHandbooksServiceProvider"
```

- заполнить заготовку конфига `handbooks.php`.
- Пример конфига:

```
[
    'route_prefix' => env('HANDBOOKS_ROUTE_PREFIX', ''),
    'global_middleware' => ['user-auth', 'local-auth'],
    'defaults' => [
        'middleware' => [
            'create' => ['can-create'], //мидлвары для создания по умолчанию, например can:manage_handbooks
            'update' => ['can-update'], //мидлвары для обновления по умолчанию, например can:manage_handbooks
            'delete' => ['can-delete'], //мидлвары для удаления по умолчанию, например can:manage_handbooks
            'view' => ['can-view'], //мидлвары для просмотра по умолчанию, например can:manage_handbooks
        ],
    ],
    'dynamic' => [
        'model_base_namespace' => '\\App\\Models\\',
        'repository_base_namespace' => '\\App\\Repositories\\',
        'default_select' => ['id', 'name'],
        'default_with' => [],
        'default_searchable_fields' => ['name'],
        'custom' => [
            //модели, которые находятся в других пространствах имен или нужны кастомные настройки
//            'model-code' => [
//                'model' => ModelClass::class,
//                'resource' => ModelResourceClass::class,
//                'repository' => ModelRepositoryClass::class,
//                'select' => ['id','name'],//массив полей, которые надо доставать для short-лист. По умолчанию id,name
//                'with' => [], //массив отношений, которые надо доставать для short-лист. По умолчанию пустой
//                'searchable_fields' => [], //массив полей, по которым возможен поиск
//            ],
        ]
    ],
    'crud' => [
        'functional-area' => [
            'repository' => \App\Repositories\FunctionalAreaRepository::class,
            'resource' => \App\Http\Resources\FunctionalAreaResource::class,
            'create_request' => \App\Http\Requests\Handbook\Create\CreateFunctionalAreaRequest::class,
            'update_request' => \App\Http\Requests\Handbook\Update\UpdateFunctionalAreaRequest::class,
            'create_dto' => \App\DTO\Request\Handbook\FunctionalAreaHandbookDTO::class,
            'update_dto' => \App\DTO\Request\Handbook\FunctionalAreaHandbookDTO::class,
            'searchable_fields'=>['name'],
            'with'=>['detail'=>['system', 'architectManagers'],'list'=>['system']]
        ]
    ],
    'enums'=>[
        ComponentTypeEnum::class,
        MicroserviceCodeEnum::class,
    ]
]
```

- Пример реквеста создания:

```
class CreateFunctionalAreaRequest extends AbstractRequest
{
    protected ?string $dtoClassName = FunctionalAreaHandbookDTO::class;

    public function rules()
    {
        return [
            'name' => ['required', 'string', 'max:255', new Unique(FunctionalArea::class, 'name')],
            'architect_managers' => ['array', 'sometimes'],
            'architect_managers.*' => ['uuid', new Exists(User::class, 'id')],
            'corp_architects' => ['array', 'sometimes'],
            'corp_architects.*' => ['uuid', new Exists(User::class, 'id')],
        ];
    }
}
```

- Пример реквеста обновления:

```
class UpdateFunctionalAreaRequest extends CreateFunctionalAreaRequest
{
    protected ?string $dtoClassName = FunctionalAreaHandbookDTO::class;

    public function rules()
    {
        return [
            ...parent::rules(),
            'name' => [
                'sometimes',
                'string',
                'max:255',
                (new Unique(FunctionalArea::class, 'name'))->ignore($this->getRouteParameter('handbookId'))
            ],
        ];
    }
}
```

- Если в проекте используются кастомные связи BelongsToMany, то такие связи могут реализовать интерфейс [ProvidesUniqueRelatedKeys](src/ProvidesUniqueRelatedKeys.php).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance68

Regular maintenance activity

Popularity1

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

187d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1e88e04080699dd6bc9ec4a655ed8d63e0f8463ec73f829c919577c135dd789?d=identicon)[vasichmen](/maintainers/vasichmen)

### Embed Badge

![Health badge](/badges/vasichmen-laravel-handbooks/health.svg)

```
[![Health](https://phpackages.com/badges/vasichmen-laravel-handbooks/health.svg)](https://phpackages.com/packages/vasichmen-laravel-handbooks)
```

###  Alternatives

[anourvalar/eloquent-serialize

Laravel Query Builder (Eloquent) serialization

11320.2M21](/packages/anourvalar-eloquent-serialize)[namu/wirechat

A Laravel Livewire messaging app for teams with private chats and group conversations.

54324.5k](/packages/namu-wirechat)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135192.6k5](/packages/statamic-rad-pack-runway)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
