russsiq/laravel-assistant

Laravel 9.x 应用程序助手。

0.5.1 2022-06-14 23:27 UTC

README

不要使用此包 - 它没有测试并且未完成

介绍

Laravel 9.x 应用程序助手是一个用于常用命令行控制台命令的图形界面,并包括几个逐步向导

创建此包的目的是将常见的小型Laravel项目维护和部署操作提取出来。

连接

要将依赖项添加到Laravel项目,请使用Composer包管理器

composer require russsiq/laravel-assistant

如果您的应用程序在composer.json文件的extra部分中启用了dont-discover指令,则必须在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"

此外,还可以通过前缀为assistant-的单独标签configlangviews进行分组发布文件

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',
        ]);
    });
}

向导简述

以下图片展示了应用程序助手的整体外观。每个向导由多个步骤组成。每个步骤可以由多个屏幕表示:例如,输入数据屏幕和显示结果的屏幕。

Общий вид Ассистента

发布文件后,每个屏幕都可以根据您的偏好和需求进行重定义。通常,只需要简单地重定义语言文件中的字符串。

安装器

只有当向导在.env文件中记录了APP_INSTALLED_AT的安装日期时,应用程序才被认为是已安装的。在此之前,安装器将强制将用户重定向到安装器路由。

此向导包含多个屏幕。

安装器欢迎屏幕

包含简短介绍性演讲的屏幕,请求用户提供以下数据

  • 网站名称;
  • 当前环境;
  • 以及接受许可协议。

在执行您指定的类之前,安装器将添加以下字段到表单请求中(如果它们不存在)并执行以下必填字段的验证:

// Режим отладки приложения.
'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,输入字段的名称必须为大写字母,并且使用下划线作为分隔符,例如

<input type="text" name="SOME_VAR" value="{{ old('SOME_VAR', 'default') }}" />

<select name="OTHER_VAR">
    <!-- остальная разметка -->
</select>

不符合此规则的输入字段 不会被写入 文件 .env,您可以将其用于在安装器的最终阶段类中构建业务逻辑。

您需要使用以下命令预先生成此类

php artisan make:before_installed BeforeInstalled --force

该命令将创建文件 app\Services\Assistant\BeforeInstalled.php。向助手指出,它应该在发布的配置文件 config/assistant.phpinstaller 部分中,使用此生成的安装器最终阶段类。

'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 项目中删除包

composer remove russsiq/laravel-assistant

测试

不,我没听说过。

许可

laravel-assistant 是一个开源软件,根据 MIT 许可证分发。MIT 许可证