摘要:目的為了減少重復和新項目的配置麻煩等問題,就是為了騙星星如現有的生成工具雖然好用,但是不太喜歡樣式和代碼結構。有些本地,測試,線上的配置需要頻繁改動的需要。
目的
為了減少重復 CURD 和新項目的配置麻煩等問題,(就是為了騙星星:LaravelPlus )
如:
現有的 infyomlabs/laravel-generator CODE 生成工具雖然好用,但是不太喜歡樣式和代碼結構。
有些本地,測試,線上的配置需要頻繁改動的需要。
多個項目構建引入包,配置擴展等重復性操作
介紹LaravelPlus 基于 Laravel 增加部分軟件包初始安裝和進行業務使用功能改動,來創建一個開箱即用的應用
版本基礎當前版本基于
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
#### 復制項目
// 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-plus 目錄名
framework 腳本創建內容:
Controller, Service, Repository 等文件和對應關聯關系
Route 資源路由增加
Controller 中資源類型代碼和模型數據處理(開發中)
直接使用本項目內容(推薦)
$ 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 插件軟件包(更新進度略慢本項目)
$ composer require php-tool/laravel-plus-make
在 .env 中設置 ENABLE_HOT_SWITCHING=true 后,會在 AppServiceProvider 進行 dynamic 映射(對性能有一定影響,慎用)
使用方式:
dynamic 目錄文件說明
production 生產環境 (必須配置)
develop 開發環境 (必須配置,以下配置繼承 develop 配置)
test 測試環境
local 本地環境
simulation 仿真環境
Tips:
.env 配置 DYNAMIC_IS_STRICT 控制熱配是否嚴格模式(默認 false 關閉)
嚴格模式下不會繼承 production/develop,完全采用當前環境配置
默認在繼承基礎上有重復屬性,會覆蓋繼承項
繼承基礎特有屬性會被攜帶至當前配置
config/dynamic.php 為 IDEA 提示文件,使用空 key 即可
優化默認路由中閉包
路由中禁止使用閉包,如有需要請在 ClosureController 中注冊
緩存清理
php artisan optimize:clear // (慎用)
php artisan view:clear
php artisan cache:clear // 應用程序緩存清理(慎用- 會清理 config.cache 中啟用緩存(file/db/redis 等))
php artisan route:cache
php artisan config:clear
php artisan clear-compiled // 清理編譯
php artisan debug:clear
性能優化(只建議生產環境使用)
php artisan optimize // 類映射加載優化(該命令會自動緩存 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前端樣式構建
$ npm run dev // 本地開發,開啟 debug 模式 $ npm run prod // 線上部署(進行壓縮資源) $ npm run watch // 監視編譯(開發時建議啟用)
改動內容設置日志打印默認按天執行(.env::LOG_CHANNEL)
增加默認加載軟件包
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[doctrine/dbal]
barryvdh/laravel-debugbar debuger 工具
barryvdh/laravel-ide-helper ide 輔助工具
$ artisan ide-helper:generateovertrue/laravel-query-logger 日志工具
nunomaduro/phpinsights 統計檢測項目問題(類似 PHPCS,需求版本 php 7.2.* ,請手動安裝 composer require nunomaduro/phpinsights --dev)
infyomlabs/laravel-generator Code 代碼生成工具(可選)
增加前端資源
element-ui 樣式框架(可選方案 iview)
增加默認圖片存儲目錄(storage/app/public/images)
擴展結構分層 想法來源
系統分層
- Controllers 控制器層
主要分層
- Services 業務服務層 - Repositories Repository 數據倉庫層 - Models 模型層(無需創建,默認通過模型工具創建)
擴展分層
- Presenters 固定業務主持中控層 - Transformers 轉化層/篩選層(篩選后在選擇輸出) - Formatters 格式化層(對于輸出數據進行格式化,服務于 view 層),便于前端模版渲染與展示增加 Redis 多語言配置讀取
待辦完善資源功能:Controller 中模型數據處理和數據返回
增加 Redis 多語言數據庫,和遷移
增加動態視圖模式和靜態視圖模式(渲染后生成 view)切換
完善 wiki
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31674.html
摘要:年,由北京的團隊開發了涉足社交開源行業。終于,在年下半年,我們決定重寫這個程序,拋棄之前的每一行代碼。起初,我們選擇在中做生成函數,配合第三方包實現,功能實現了。的拓展不能直接以這種方式使用喲,因為我們做這個的想法是把配置移交到后臺配置。 什么是 ThinkSNS+ 好吧,這不是廣告。。。在 09 年,由北京的團隊開發了 ThinkSNS 涉足社交開源行業。09 年,由北京的團隊開發了...
摘要:需求場景發送驗證碼或者消息通知,可發送到手機或郵箱中。完成首先,在中的規范就是使用的消息通知,這里基于場景為驗證碼。所以我們在驗證碼模型中添加是完全符合通知的正確使用的。 順便發個小通知:7月15日ThinkSNS+開源版發布,同時非開源的APP也走出內測階段,體驗二維碼也全面發布體驗。 什么是ThinkSNS ? ThinkSNS(簡稱TS),一款全平臺綜合性社交系統,為國內外大中小...
閱讀 1669·2021-11-19 09:40
閱讀 2924·2021-09-24 10:27
閱讀 3215·2021-09-02 15:15
閱讀 1876·2019-08-30 15:54
閱讀 1202·2019-08-30 15:54
閱讀 1369·2019-08-30 13:12
閱讀 626·2019-08-28 18:05
閱讀 2794·2019-08-27 10:53