1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Scaffold for laravel基于 Laravel 的后臺腳手架

        聯(lián)合創(chuàng)作 · 2023-09-20 04:35

        zgldh/Scaffold

        基于 Laravel 5.5, Vue 2, ElementUI 2, vueAdmin-template 制作的后臺腳手架。

        預(yù)制功能:

        • 用戶,角色,權(quán)限體系

        • 文件上傳

        • 通知系統(tǒng)

        • 完全脫離 Cookie/Session 機制。全面擁抱 JWT。自動刷新 Token

        • 強化的前端數(shù)據(jù)表格,使用 datatables 協(xié)議。

        • 多語言

        開始使用

        1. composer create-project zgldh/scaffold your-project-dir

        2. 配置好 .env 數(shù)據(jù)庫相關(guān)

        3. php artisan scaffold:init

          會自動執(zhí)行以下命令

        • migrate

        • storage:link

        • db:seed --class=ScaffoldInitialSeeder

        • scaffold:update-permissions

        • lang:dump

      2. 配置好 frontend/config/dev.env.js 的 BASE_API

      3. npm install

      4. npm run start

      5. 生成器

        名稱 命令
        模塊初始化 scaffold:module {moduleName} {--force}
        模型初始化 scaffold:model {modelStarterClass} {--only=*} {--force}
        API 生成 scaffold:api {method} {route} {moduleName} {--controller=} {--action=}
        權(quán)限生成 scaffold:update-permissions {type=api : set guard name}
        語言文件導(dǎo)出 lang:dump

        模塊初始化

        scaffold:module {moduleName} {--force}

        模塊是指一個獨立的功能領(lǐng)域。使用本命令將初始化一個模塊。

        Example

        scaffold:module Post

        將創(chuàng)建好如下目錄和文件:

        • Modules/Post

        • Modules/Post/routes.php

        • Modules/Post/PostServiceProvider.php

        • frontend/src/store/modules/post.js

        并自動修改好如下文件:

        • config/api.php

        • routes/api.php

        • frontend/src/store/index.js

        模型初始化

        scaffold:model {modelStarterClass} {--only=*} {--force}

        模型是指數(shù)據(jù)模型,對應(yīng)著一個數(shù)據(jù)表。需要一個 Starter Class 來描述該模型。

        使用本命令將初始化該模型的migration filecontrollermodelrequestrepositoryroutefactory, PHP 單元測試和前端腳手架文件?;镜?CRUD 都準備好了。

        如何編寫 Starter Class 請參考源碼: Modules\Post\PostStarter.php

        --only 取值: controller, request, repository, model, migration, api, resource, language, route, factory, phpunit 將只生成對應(yīng)文件。

        Example

        scaffold:model Modules/Post/PostStarter.php

        將創(chuàng)建好如下目錄和文件:

        • Modules/Post

        • Modules/Post/Controllers/PostController.php

        • Modules/Post/Repositories/PostRepository.php

        • Modules/Post/Models/Post.php

        • Modules/Post/Requests/CreatePostRequest.php

        • Modules/Post/Requests/UpdatePostRequest.php

        • resources/lang/en/post.php

        • resources/lang/zh-CN/post.php

        • database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php

        • database/factories/PostFactory.php

        • tests/Modules/Post

        • tests/Modules/Post/Post/PostIndexTest.php

        • tests/Modules/Post/Post/PostStoreTest.php

        • tests/Modules/Post/Post/PostShowTest.php

        • tests/Modules/Post/Post/PostUpdateTest.php

        • tests/Modules/Post/Post/PostDestroyTest.php

        • frontend/src/api/post.js

        • frontend/src/views/post

        • frontend/src/views/post/Post/List.vue

        • frontend/src/views/post/Post/Editor.vue

        并自動修改好如下文件:

        • Modules/Post/routes.php

        • frontend/src/router/dynamicRouterMap.js

        API 生成

        scaffold:api {method} {route} {moduleName} {--controller=} {--action=}

        方便的生成一個單獨的 API 和周邊的各種類、單元測試、前臺接口等。

        Example

        scaffold:api put /post/{id}/like Post

        將創(chuàng)建好如下目錄和文件:

        • Modules/Post/Requests/PutIdLikeRequest.php

        • Modules/Post/routes.php

        • tests/Modules/Post/Post/PutIdLikeTest.php

        并自動修改好如下文件:

        • Modules/Post/Controllers/PostController.php

        • Modules/Post/routes.php

        • frontend/src/api/post.js

        并創(chuàng)建權(quán)限:

        • Post@putIdLike

        權(quán)限生成

        scaffold:update-permissions {type=api : set guard name}

        遍歷 Modules 下所有的 controller 和 repository。 根據(jù)其公共函數(shù)生成一系列權(quán)限,并自動賦予超級管理員。

        如果函數(shù)的注釋內(nèi),包含有 @no-permission 標記,則跳過該函數(shù)。

        Example

        scaffold:update-permissions

        將自動修改對應(yīng) model 的語言文件的 permissions 數(shù)組,并創(chuàng)建一系列權(quán)限。

        會自動跳過重復(fù)權(quán)限。

        語言文件導(dǎo)出

        lang:dump

        將 PHP 語言文件導(dǎo)出為前端語言文件。使得前端 vue-i18n 組件也可使用。

        導(dǎo)出產(chǎn)物儲存在 frontend/src/lang/languages.js

        組件說明

        TODO

        預(yù)制功能說明

        TODO

        感謝

        瀏覽 23
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            91精品国产乱码久久久 | 北条麻妃中文字幕在线 | 青草无码视频在线观看 | 粉嫩欧美一区二区三区高清影视 | 国产裸体无遮挡免费视频 | 国产综合区 | 成人精品三级AV在线看 | 超碰天天搞 | 国产一级片无码 | 国产肥臀对白刺激在线视频 |