PHPackages                             russsiq/laravel-assistant - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. russsiq/laravel-assistant

ActivePackage[Utility &amp; Helpers](/categories/utility)

russsiq/laravel-assistant
=========================

Ассистент приложения на Laravel 9.x.

0.5.1(3y ago)077[3 PRs](https://github.com/russsiq/laravel-assistant/pulls)1MITPHPPHP 8.1.\*

Since Jun 16Pushed 3y ago1 watchersCompare

[ Source](https://github.com/russsiq/laravel-assistant)[ Packagist](https://packagist.org/packages/russsiq/laravel-assistant)[ Docs](https://github.com/russsiq/laravel-assistant)[ RSS](/packages/russsiq-laravel-assistant/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (5)Versions (19)Used By (1)

Ассистент приложения на Laravel 9.x
===================================

[](#ассистент-приложения-на-laravel-9x)

**Не используйте этот пакет – он не имеет тестов и не завершен**

Введение
--------

[](#введение)

Ассистент приложения на Laravel 9.x является графической оболочкой для часто используемых команд консоли командной строки и включает в себя несколько пошаговых мастеров:

- [Установщик](#master-install);
- [Мастер обновлений](#master-update);
- [Архивариус](#master-archive);
- [Чистильщик](#master-clean).

При создании данного пакета преследовалась цель вынести часто повторяющиеся операции по обслуживанию и разворачивании небольших проектов на Laravel.

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

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

Для добавления зависимости в проект на Laravel, используйте менеджер пакетов Composer:

```
composer require russsiq/laravel-assistant
```

Если в вашем приложении включен отказ от обнаружения пакетов в директиве `dont-discover` в разделе `extra` файла `composer.json`, то необходимо самостоятельно добавить следующее в файле `config/app.php`:

- Провайдер услуг в раздел `providers`:

```
'providers' => [
    /*
     * Package Service Providers...
     */
    Russsiq\Assistant\AssistantServiceProvider::class,
],
```

- Псевдонимы классов (Фасады) в раздел `aliases`:

```
'aliases' => [
    'Archivist' => Russsiq\Assistant\Facades\Archivist::class,
    'Cleaner' => Russsiq\Assistant\Facades\Cleaner::class,
    'Installer' => Russsiq\Assistant\Facades\Installer::class,
    'Updater' => Russsiq\Assistant\Facades\Updater::class,
],
```

### Публикация файлов пакета

[](#публикация-файлов-пакета)

Публикация (копирование) всех доступных файлов для переопределения и тонкой настройки пакета осуществляется через интерфейс командной строки Artisan:

```
php artisan vendor:publish --provider="Russsiq\Assistant\AssistantServiceProvider"
```

Помимо этого, доступна групповая публикация файлов по отдельным меткам `config`, `lang`, `views` с префиксом `assistant-`:

```
php artisan vendor:publish --tag=assistant-config --force
```

```
php artisan vendor:publish --tag=assistant-lang --force
```

```
php artisan vendor:publish --tag=assistant-views --force
```

> Флаг `--force` является необязательным и используется для принудительной перезаписи опубликованных раннее файлов пакета. Может быть полезен после обновления зависимостей.

### Ограничение прав доступа к разделам Ассистента

[](#ограничение-прав-доступа-к-разделам-ассистента)

Следующие мастера имеют посредника `can:use-assistant` по всем маршрутам следующих мастеров:

- Мастер обновлений;
- Архивариус;
- Чистильщик.

В поставщике вашего приложения `App\Providers\AuthServiceProvider` необходимо самостоятельно описать это правило доступа. Например, используя следующую конструкцию, измените значение `'example@email.com'` на ваше собственное:

```
/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();

    //

    // Определить посредника, проверяющего,
    // что текущий пользователь имеет право
    // воспользоваться Ассистентом приложения.
    Gate::define('use-assistant', function ($user) {
        return in_array($user->email, [
            'example@email.com',
        ]);
    });
}
```

Краткое описание мастеров
-------------------------

[](#краткое-описание-мастеров)

На изображении ниже представлен общий вид Ассистента приложения. Каждый из мастеров состоит из нескольких шагов. Каждый из шагов может быть представлен несколькими экранами: например, экран с вводом данных и экран, отображающий результат.

[![Общий вид Ассистента](laravel-assistant.png)](laravel-assistant.png)

Каждый из экранов после публикации файлов может быть переопределен в зависимости от ваших предпочтений и требований. Чаще всего требуется простое переопределение строк перевода в языковых файлах.

### Установщик

[](#установщик)

Приложение считается установленным только после того как в файле `.env` данным мастером будет прописана дата установки `APP_INSTALLED_AT`. До этого момента Установщик будет принудительно перенаправлять пользователя на маршрут Установщика.

Данный мастер состоит из нескольких экранов.

#### Экран Приветствие Установщика

[](#экран-приветствие-установщика)

Экран с краткой вступительной речью, запрашивающий у пользователя следубщие данные:

- названия сайта;
- текущее окружение;
- и принятие лицензионного соглашения.

До того как начнет выполняться указанный вами класс, Установщик дополнит запрос из формы полями `APP_DEBUG`, `APP_URL` (при их отсутствии) и выполнит валидацию следующих обязательных полей:

```
// Режим отладки приложения.
'APP_DEBUG' => [
    'required',
    'boolean',
],

// Текущее окружение.
'APP_ENV' => [
    'required',
    Rule::in([
        'local',
        'dev',
        'testing',
        'production',
    ]),
],

// Название сайта.
'APP_NAME' => [
    'required',
    'string',
],

// Ссылка на главную страницу сайта.
'APP_URL' => [
    'required',
    'url',
],

// Принятие лицензионного соглашения.
'licence' => 'accepted',
```

#### Экран Требования Установщика

[](#экран-требования-установщика)

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

#### Экран База данных

[](#экран-база-данных)

Необходимо указать параметры подключения к предварительно созданной БД.

При нажатии кнопки Далее выполняется проверка подключения к БД, применяются миграции, расположенные в директории **database/migrations** вашего проекта.

Помимо этого возможно наполнение БД как начальными так и фиктивными данными. Наполнители располагайте в директории **database/seeds** вашего проекта. Имена классов указывайте в опубликованном файле конфигурации `config/assistant.php` в разделе `installer.seeds`, где значениями для ключей являются имена классов:

- `database` - имя класса с начальными данными, например `'DatabaseSeeder'`;
- `test` - имя класса с тестовыми данными, например `'TestContentSeeder'`.

> В качестве имени класса принимается только один класс, записанный строкой. Не указывайте массивы!

#### Экран Миграции и наполнение БД

[](#экран-миграции-и-наполнение-бд)

Информационный экран, отображающий результаты выполнения предыдущего шага.

#### Экран Общие параметры системы

[](#экран-общие-параметры-системы)

Завершающий экран установки. Необходимо указать набор данных, которые будут записаны в файл переменных окружения `.env`.

За вывод данного экрана отвечает шаблон `common.blade.php`, который будет доступен после публикации файлов пакета в директории `resources\views\vendor\assistant\install`.

Поля ввода, заданные вами в этой форме разделяются на два типа: предназначенные для записи в файл `.env` и не предназначенные для этого.

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

```

```

Поля ввода, имена которых не соответствуют этому правилу **не будут записаны** в файл `.env` и могут использоваться вами для построения бизнес-логики в классе финальной стадии Установщика.

Данный класс необходимо предварительно сгенерировать с помощью команды:

```
php artisan make:before_installed BeforeInstalled --force
```

Эта команда создаст файл `app\Services\Assistant\BeforeInstalled.php`. Укажите Ассистенту, что он должен использовать этот сгенерированный класс финальной стадии Установщика в опубликованном файле конфигурации `config/assistant.php` в разделе `installer`:

```
'before-installed' => App\Services\Assistant\BeforeInstalled::class,

```

> В данном классе вы **обязаны самостоятельно выполнить валидацию** добавленных вами полей в форме `common.blade.php`.

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

```
// Меняем название темы сайта для
// последующей записи в файл окружения.
$request->merge([
    'APP_THEME' => $theme,
]);
```

В вашем распоряжении также имеется возможность в файле настроек `config/assistant.php` дополнительно указать директории для копирования и создания ссылок:

```
// Копирование директорий: fromDir, toDir.
'directories' => [
    // 'fromDir' => 'toDir',
],

// Создание ссылок на директории: target => link.
'symlinks' => [
    storage_path('app/public') => public_path('storage'),
],
```

### Мастер обновлений

[](#мастер-обновлений)

Простой мастер, состоящий из двух экранов:

- Экран выбора опций обновления.
- Экран, отображающий результаты выполнения предыдущего шага.

### Архивариус

[](#архивариус)

Простой мастер, состоящий из двух экранов:

- Экран выбора опций архивации.
- Экран, отображающий результаты выполнения предыдущего шага.

### Чистильщик

[](#чистильщик)

Простой мастер, состоящий из двух экранов:

- Экран выбора опций очистки или кеширования.
- Экран, отображающий результаты выполнения предыдущего шага.

Удаление пакета из вашего проекта на Laravel
--------------------------------------------

[](#удаление-пакета-из-вашего-проекта-на-laravel)

```
composer remove russsiq/laravel-assistant
```

Тестирование
------------

[](#тестирование)

Неа, не слышал.

Лицензия
--------

[](#лицензия)

`laravel-assistant` - программное обеспечение с открытым исходным кодом, распространяющееся по лицензии [MIT](https://choosealicense.com/licenses/mit/).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 99.7% of commits — single point of failure

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

Every ~52 days

Recently: every ~86 days

Total

15

Last Release

1427d ago

PHP version history (4 changes)0.0.1PHP &gt;=7.3.0

0.1PHP ^7.3|^8.0

0.3.2PHP 8.0.\*

0.5.0PHP 8.1.\*

### Community

Maintainers

![](https://www.gravatar.com/avatar/128e56a6429fdc3f0bedabc7d9a353d68429d5219c33f87633e3ef21122d7b6e?d=identicon)[russsiq](/maintainers/russsiq)

---

Top Contributors

[![russsiq](https://avatars.githubusercontent.com/u/11920039?v=4)](https://github.com/russsiq "russsiq (363 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

laravellaravel-updaterlaravel Installerlaravel-assistantlaravel-app-manager

### Embed Badge

![Health badge](/badges/russsiq-laravel-assistant/health.svg)

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

###  Alternatives

[stevebauman/location

Retrieve a user's location by their IP Address

1.3k7.6M65](/packages/stevebauman-location)[nativephp/mobile

NativePHP for Mobile

82724.0k43](/packages/nativephp-mobile)[bensampo/laravel-embed

Painless responsive embeds for videos, slideshows and more.

142146.8k](/packages/bensampo-laravel-embed)[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[adrianorosa/laravel-geolocation

Laravel Geo Location package to get details for a given IP Address

6593.3k1](/packages/adrianorosa-laravel-geolocation)[bakame/laravel-domain-parser

Laravel package to integrate PHP Domain parser.

26534.8k4](/packages/bakame-laravel-domain-parser)

PHPackages © 2026

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