爲了減小重複 CURD 和新項目的配置麻煩等問題,(就是爲了騙星星:LaravelPlus )
如:php
LaravelPlus 基於 Laravel 增長部分軟件包初始安裝和進行業務使用功能改動,來建立一個開箱即用的應用前端
當前版本基於react
PHP | Laravel(影響不大,下降版本理論能夠) |
---|---|
>=7.1.3 | >=5.8 |
// 1. github (推薦) $ git clone https://github.com/ElapseAnnals/LaravelPlus.git $ git checkout v5.8.0 // 切換至當前最新穩定版本 // 或 // 2. composer $ composer create-project elapse-annals/laravel-plus $ mv laravel-plus LaravelPlus
#### 複製項目nginx
// 1.在當前目錄運行自動複製腳本 (推薦) $ php LaravelPlus/create YourProject // 或 // 2.在當前目錄手動複製項目至自身項目 $ cd LaravelPlus $ rm composer.lock $ rsync -av --exclude . --exclude .. --exclude .git/ --exclude vendor/ --exclude .github/ LaravelPlus/* YourProject // 爲消除對稱 */ $ cd YourProject $ rm composer.lock .env .travis $ cp .env.example .env
$ cd YourProject // 進入 YourProject 項目中 $ composer install // 更新軟件包 (請先已安裝 composer ) $ php artisan key:generate // 更新 key $ php artisan vendor:publish // 發佈擴展包的資源 $ php artisan migrate // 遷移 $ php artisan storage:link // 圖片資源軟鏈接映射【非必須】
Tips:laravel
framework 腳本建立內容:git
直接使用本項目內容(推薦)github
$ php artisan make:framework Test // 建立分層結構(推薦) $ php artisan make:framework Test --basis // 建立系統分層和主要分層結構(Controller, Service, Repository) $ php artisan make:framework Test --D // 刪除分層結構
或引入 php-tool/laravel-plus-make Laravel Plus Make 插件軟件包(更新進度略慢本項目)redis
$ composer require php-tool/laravel-plus-make
在 .env 中設置 ENABLE_HOT_SWITCHING=true 後,會在 AppServiceProvider 進行 dynamic 映射(對性能有必定影響,慎用)數據庫
使用方式:npm
<?php $env = config('dynamic.env');
dynamic 目錄文件說明
develop 開發環境 (必須配置,如下配置繼承 develop 配置)
Tips:
.env 配置 DYNAMIC_IS_STRICT 控制熱配是否嚴格模式(默認 false 關閉)
優化默認路由中閉包
php artisan optimize:clear // (慎用)
php artisan debug:clear
php artisan optimize // 類映射加載優化(該命令會自動緩存 config/route)
$ sudo vim /etc/php/7.2/fpm/php.ini // set opcache.enable=1 // ... $ sudo service php5.6-fpm restart $ sudo service nginx restart
$ npm run dev // 本地開發,開啓 debug 模式 $ npm run prod // 線上部署(進行壓縮資源) $ npm run watch // 監視編譯(開發時建議啓用)
增長默認加載軟件包
production 生產環境
- [respect/validation](https://github.com/Respect/Validation) 驗證包 - [react/react](https://github.com/reactphp/react) ReactPHP 多進程異步擴展(能夠移除) - 引入 ElasticSearch For scout - [laravel/scout](https://github.com/laravel/scout) - [tamayo/laravel-scout-elastic](https://github.com/ErickTamayo/laravel-scout-elastic) - [elastic/elasticsearch-php](https://github.com/elastic/elasticsearch-php) 原生 ElasticSearch (可選) - rabbitMQ 擴展 - vladimir-yuldashev/laravel-queue-rabbitmq - php-amqplib/php-amqplib 原生(可選) - [rap2hpoutre/laravel-log-viewer](https://github.com/rap2hpoutre/laravel-log-viewer) 日誌展現 [訪問 host/logs] - [predis/predis](https://github.com/nrk/predis) Redis 插件(建議使用 php-redis 擴展) - [php-tool/laravel-plus-make](https://github.com/PHPTool/LaravelPlusMake) Laravel Plus Make 自動生成 framework 代碼插件軟件包(可單獨引用) - [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) Http 請求包 - [overtrue/laravel-lang](https://github.com/overtrue/laravel-lang) 多語言本地化 i18n
develop 開發環境
reliese/laravel 模型生成工具
$ php artisan code:models --table=tb_name
barryvdh/laravel-ide-helper ide 輔助工具
$ artisan ide-helper:generate
增長前端資源
擴展結構分層 想法來源
系統分層
- Controllers 控制器層
主要分層
- Services 業務服務層 - Repositories Repository 數據倉庫層 - Models 模型層(無需建立,默認經過模型工具建立)
擴展分層
- Presenters 固定業務主持中控層 - Transformers 轉化層/篩選層(篩選後在選擇輸出) - Formatters 格式化層(對於輸出數據進行格式化,服務於 view 層),便於前端模版渲染與展現
完善資源功能:Controller 中模型數據處理和數據返回
增長 Redis 多語言數據庫,和遷移
增長動態視圖模式和靜態視圖模式(渲染後生成 view)切換
完善 wiki