摘要:目的為了減少重復和新項目的配置麻煩等問題,就是為了騙星星如現(xiàn)有的生成工具雖然好用,但是不太喜歡樣式和代碼結(jié)構(gòu)。有些本地,測試,線上的配置需要頻繁改動的需要。
目的
為了減少重復 CURD 和新項目的配置麻煩等問題,(就是為了騙星星:LaravelPlus )
如:
現(xiàn)有的 infyomlabs/laravel-generator CODE 生成工具雖然好用,但是不太喜歡樣式和代碼結(jié)構(gòu)。
有些本地,測試,線上的配置需要頻繁改動的需要。
多個項目構(gòu)建引入包,配置擴展等重復性操作
介紹LaravelPlus 基于 Laravel 增加部分軟件包初始安裝和進行業(yè)務(wù)使用功能改動,來創(chuàng)建一個開箱即用的應(yīng)用
版本基礎(chǔ)當前版本基于
PHP | Laravel(影響不大,降低版本理論可以) |
---|---|
>=7.1.3 | >=5.8 |
// 1. github (推薦) $ git clone https://github.com/ElapseAnnals/LaravelPlus.git $ git checkout v5.8.0 // 切換至當前最新穩(wěn)定版本 // 或 // 2. composer $ composer create-project elapse-annals/laravel-plus $ mv laravel-plus LaravelPlus
#### 復制項目
// 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 // 發(fā)布擴展包的資源 $ php artisan migrate // 遷移 $ php artisan storage:link // 圖片資源軟連接映射【非必須】
Tips:
兼容 laravel-plus 目錄名
framework 腳本創(chuàng)建內(nèi)容:
Controller, Service, Repository 等文件和對應(yīng)關(guān)聯(lián)關(guān)系
Route 資源路由增加
Controller 中資源類型代碼和模型數(shù)據(jù)處理(開發(fā)中)
直接使用本項目內(nèi)容(推薦)
$ php artisan make:framework Test // 創(chuàng)建分層結(jié)構(gòu)(推薦) $ php artisan make:framework Test --basis // 創(chuàng)建系統(tǒng)分層和主要分層結(jié)構(gòu)(Controller, Service, Repository) $ php artisan make:framework Test --D // 刪除分層結(jié)構(gòu)
或引入 php-tool/laravel-plus-make Laravel Plus Make 插件軟件包(更新進度略慢本項目)
$ composer require php-tool/laravel-plus-make
在 .env 中設(shè)置 ENABLE_HOT_SWITCHING=true 后,會在 AppServiceProvider 進行 dynamic 映射(對性能有一定影響,慎用)
使用方式:
dynamic 目錄文件說明
production 生產(chǎn)環(huán)境 (必須配置)
develop 開發(fā)環(huán)境 (必須配置,以下配置繼承 develop 配置)
test 測試環(huán)境
local 本地環(huán)境
simulation 仿真環(huán)境
Tips:
.env 配置 DYNAMIC_IS_STRICT 控制熱配是否嚴格模式(默認 false 關(guān)閉)
嚴格模式下不會繼承 production/develop,完全采用當前環(huán)境配置
默認在繼承基礎(chǔ)上有重復屬性,會覆蓋繼承項
繼承基礎(chǔ)特有屬性會被攜帶至當前配置
config/dynamic.php 為 IDEA 提示文件,使用空 key 即可
優(yōu)化默認路由中閉包
路由中禁止使用閉包,如有需要請在 ClosureController 中注冊
緩存清理
php artisan optimize:clear // (慎用)
php artisan view:clear
php artisan cache:clear // 應(yīng)用程序緩存清理(慎用- 會清理 config.cache 中啟用緩存(file/db/redis 等))
php artisan route:cache
php artisan config:clear
php artisan clear-compiled // 清理編譯
php artisan debug:clear
性能優(yōu)化(只建議生產(chǎn)環(huán)境使用)
php artisan optimize // 類映射加載優(yōu)化(該命令會自動緩存 config/route)
php artisan config:cache // 配置緩存
php artisan route:cache // 路由
php artisan view:cache // 視圖緩存
composer dump-autoload --optimize //
開啟 OpCache
$ sudo vim /etc/php/7.2/fpm/php.ini // set opcache.enable=1 // ... $ sudo service php5.6-fpm restart $ sudo service nginx restart前端樣式構(gòu)建
$ npm run dev // 本地開發(fā),開啟 debug 模式 $ npm run prod // 線上部署(進行壓縮資源) $ npm run watch // 監(jiān)視編譯(開發(fā)時建議啟用)
改動內(nèi)容設(shè)置日志打印默認按天執(zhí)行(.env::LOG_CHANNEL)
增加默認加載軟件包
production 生產(chǎn)環(huán)境
- [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 開發(fā)環(huán)境
reliese/laravel 模型生成工具
$ php artisan code:models --table=tb_name[doctrine/dbal]
barryvdh/laravel-debugbar debuger 工具
barryvdh/laravel-ide-helper ide 輔助工具
$ artisan ide-helper:generateovertrue/laravel-query-logger 日志工具
nunomaduro/phpinsights 統(tǒng)計檢測項目問題(類似 PHPCS,需求版本 php 7.2.* ,請手動安裝 composer require nunomaduro/phpinsights --dev)
infyomlabs/laravel-generator Code 代碼生成工具(可選)
增加前端資源
element-ui 樣式框架(可選方案 iview)
增加默認圖片存儲目錄(storage/app/public/images)
擴展結(jié)構(gòu)分層 想法來源
系統(tǒng)分層
- Controllers 控制器層
主要分層
- Services 業(yè)務(wù)服務(wù)層 - Repositories Repository 數(shù)據(jù)倉庫層 - Models 模型層(無需創(chuàng)建,默認通過模型工具創(chuàng)建)
擴展分層
- Presenters 固定業(yè)務(wù)主持中控層 - Transformers 轉(zhuǎn)化層/篩選層(篩選后在選擇輸出) - Formatters 格式化層(對于輸出數(shù)據(jù)進行格式化,服務(wù)于 view 層),便于前端模版渲染與展示增加 Redis 多語言配置讀取
待辦完善資源功能:Controller 中模型數(shù)據(jù)處理和數(shù)據(jù)返回
增加 Redis 多語言數(shù)據(jù)庫,和遷移
增加動態(tài)視圖模式和靜態(tài)視圖模式(渲染后生成 view)切換
完善 wiki
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31674.html
摘要:年,由北京的團隊開發(fā)了涉足社交開源行業(yè)。終于,在年下半年,我們決定重寫這個程序,拋棄之前的每一行代碼。起初,我們選擇在中做生成函數(shù),配合第三方包實現(xiàn),功能實現(xiàn)了。的拓展不能直接以這種方式使用喲,因為我們做這個的想法是把配置移交到后臺配置。 什么是 ThinkSNS+ 好吧,這不是廣告。。。在 09 年,由北京的團隊開發(fā)了 ThinkSNS 涉足社交開源行業(yè)。09 年,由北京的團隊開發(fā)了...
摘要:的機器學習庫的機器學習庫,包括算法交叉驗證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來的大會上,她將和大家分享在機器學習領(lǐng)域的全新可能。入門總結(jié)入門相關(guān),如安裝配置基本使用等。 基于 Swoole 開發(fā) PHP 擴展 Swoole-1.9.7 增加了一個新特性,可以基于 Swoole 使用 C++ 語言開發(fā)擴展模塊,在擴展模塊中可以注冊 PHP 內(nèi)置函數(shù)和類。現(xiàn)在可以基于 Swoole 來編寫 PHP ...
摘要:需求場景發(fā)送驗證碼或者消息通知,可發(fā)送到手機或郵箱中。完成首先,在中的規(guī)范就是使用的消息通知,這里基于場景為驗證碼。所以我們在驗證碼模型中添加是完全符合通知的正確使用的。 順便發(fā)個小通知:7月15日ThinkSNS+開源版發(fā)布,同時非開源的APP也走出內(nèi)測階段,體驗二維碼也全面發(fā)布體驗。 什么是ThinkSNS ? ThinkSNS(簡稱TS),一款全平臺綜合性社交系統(tǒng),為國內(nèi)外大中小...
閱讀 1686·2021-11-19 09:40
閱讀 2939·2021-09-24 10:27
閱讀 3227·2021-09-02 15:15
閱讀 1888·2019-08-30 15:54
閱讀 1213·2019-08-30 15:54
閱讀 1377·2019-08-30 13:12
閱讀 642·2019-08-28 18:05
閱讀 2808·2019-08-27 10:53