Pros是Abnermouke倾心打造的一款高效的Laravel项目启动方案,无需重复构建基础结构/框架,开发高效,体验优良!

Installs: 45

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Language:JavaScript

0.0.7 2023-02-28 05:57 UTC

This package is auto-updated.

Last update: 2024-03-28 08:30:58 UTC


README

Power By Abnermouke abnermouke@outlook.com

此工具包由 Abnermouke abnermouke@outlook.com 开发并维护。

最后更新时间:2023年02月28日,持续更新中!!!

Requirement - 环境要求

  1. PHP >= 7.2(建议安装7.4)
  2. Composer
  3. abnermouke/easy-builder
  4. Laravel Framework 6+

Installation - 安装方法

$ composer require "abnermouke/pros"

Configuration - 配置

  • 一切就绪之前,请先确保 "abnermouke/easy-builder" 配置已就位

点击 abnermouke/easy-builder 查看配置方法

  • config/app.phpproviders注册服务提供者
Abnermouke\Pros\ProsServiceProvider::class,
  • 如果你想只在非production的模式中使用构建器功能,可在AppServiceProvider中进行register()配置
public function register()
{
  if ($this->app->environment() !== 'production') {
      $this->app->register(\Abnermouke\Pros\ProsServiceProvider::class);
  }
  // ...
}
  • 构建工具提供一配置文件帮助开发者自行配置自己的构建配置,导出命令:
php artisan vendor:publish --provider="Abnermouke\Pros\ProsServiceProvider"
  • 设置路由
protected $middlewareGroups = [

        // 其他路由配置

        'abnermouke.pros.console' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],


        'abnermouke.pros.console.auth' => [
            \App\Http\Middleware\Abnermouke\Pros\Console\ConsoleBaseMiddleware::class
        ],
    ];
  • 注册路由
  • 移除 app/Http/Kernel.php 默认中间件:\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,

设置默认服务注册 app/Providers/AppServiceProvider.php

    use Illuminate\Support\Facades\Route;
    use Illuminate\Support\Facades\Schema;


    public function register()
    {
    
        //其他配置
    
        //迁移配置
        Schema::defaultStringLength(191);
        //默认路由条件配置
        Route::pattern('page', '[0-9]+');
        Route::pattern('page_size', '[0-9]+');
        Route::pattern('id', '[0-9]+');
        Route::pattern('status', '[0-9]+');
        Route::pattern('parent_id', '[0-9]+');
        Route::pattern('order_sn', '[A-Z0-9]+');
    }

Laravel 6 与 Laravel 7 中配置路由服务 app/Providers/RouteServiceProvider.php

  public function map()
    {
        
        // 其他路由配置

        $this->mapAbnermoukeProConsoleRoutes();
    }

    /**
     * Define the "abnermouke/pros" console routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapAbnermoukeProConsoleRoutes()
    {
        Route::middleware('abnermouke.pros.console')
            ->namespace('App\Interfaces\Pros\Console\Controllers')
            ->group(base_path('routes/abnermouke/pros/console.php'));
    }

Laravel 8 中配置路由服务 app/Providers/RouteServiceProvider.php

public function boot()
{
    $this->configureRateLimiting();
    
    $this->routes(function () {
    
         // 其他路由服务注册

        Route::middleware('abnermouke.pros.console')
            ->namespace('App\Interfaces\Pros\Console\Controllers')
            ->group(base_path('routes/abnermouke/pros/console.php'));
    });
}

增加Csrf例外 app/Http/Middleware/VerifyCsrfToken.php (处理ueditor或其他插件文件上传无法加入csrf验证)

    protected $except = [
        
        //其他例外
        
    
        'pros/console/uploader/*'
    ];
  • 添加辅助函数自动加载至 composer.json
     "autoload": {
       
       // 
        
        "files": [
            
            //其他加载文件
            
            "app/Helpers/pros.php"
        ]
    },
  • 执行 Composer Autoload 以生效辅助函数
composer dump-autoload
  • 设置任务调度(app/Console/Kernel.php)
    protected $commands = [
    
        //
        
        
        \App\Console\Commands\Pros\Tasks\TemporaryFileCommand::class,
        \App\Console\Commands\Pros\Tasks\QueryAmapAreaCommand::class,
    ];

  
    protected function schedule(Schedule $schedule)
    {
      
        //
        
        //每五分钟清除过期文件
        $schedule->command('temporary_file:clear')->everyFiveMinutes();
        //每五分钟查询高德最新地图信息
        $schedule->command('amap:query')->everyFiveMinutes();
    }
  • 增加 migration 对pros的支持 (database/migrations/fillings)
public function up()
    {

        //执行默认 Abnermouke 相关构建模块迁移
        $this->migrate('abnermouke', 'Abnermouke');

        //执行其他指定模块迁移
        $this->migrate('pros', 'Pros');

    }

Usage 使用方法

执行命令:

php artisan builder:pros
更新记录

2022.07.26 - 项目发布

  • 全新构建结构,帮助开发者快速启动项目

2022.08.03 - 优化内容与修复已知问题

  • 新增Form表单构建 Values 模块(参数、属性)
  • 新增Form表单构建 Specifications 模块(商品规格)
  • 新增Form表单构建 Linkage 模块(N级联动)
  • 新增Form表单构建 Dynamic 模块(动态选择组件,select数据来自远程json链接,可设置触发创建按钮,编辑时快速新增内容项并自动刷新)
  • 新增Form表单构建 select 选择框模块可多选功能,调用builder的multiple方法即可
  • 其他已知问题修复

2022.09.30 - 修复已知问题

  • 修复Form表单构建 Values 模块存在select选项时被多次渲染问题
  • 修复Pros默认微信授权登录失败逻辑
  • 修复后台构建器金额处理时小与1会被强制转换为0的问题

2023.02.28 - 优化内容与修复已知问题

  • 新增QueryAmapAreaCommand命令,用于同步高德地图行政地区数据
  • 修复form-builder.js图片选择弹两次窗口的问题
  • 新增UpdateCommand命令,用于设置内容更新后强制同步等一系列操作

License

MIT