所謂進階, 剛摸了一個禮拜, 整體感受容易上手, 不少已經實現的模塊功能, 好比"記住我", "好比激活郵件", "好比用戶認證"等等, 這些東西, thinkphp都沒有(或者我無知, 有可是我不知道), 如今有一些問題:php
1. 不重複造輪子固然好, 可是若是想在輪子上鑲點兒鑽, 是否是就麻煩了?css
2. 增刪改查, 以及join類的查詢應該怎麼作, 還不是太清楚, 或者, 我壓根看不到sql語句, 並不知道ORM跟sql語句以前的直接聯繫, 感受學到的東西很模糊, 難以記憶, 估計要看大量Laravel的文檔才行.前端
接下來一週是進階課程.mysql
進階課程是有關一個簡單的BBSlaravel
首先產品定義, 須要開發的項目有三種元素:git
1. 角色: 即admin, 管理員, 遊客, 註冊用戶, 4個角色role, admin即系統的root用戶, 對管理員有管理權.github
2. 信息:redis
用戶: 模型名稱叫User, UGC產品, 內容都是User產生sql
話題: 模型名Topic, 即帖子, 帖子由用戶產生thinkphp
分類: 模型名稱Category, 即咱們常說的版塊, 板塊由管理員產生
回覆: Reply, 也又用戶本身產生, 其實這個Reply是否是也是話題的一種, 即每一個話題增長一個屬性, 即父話題.
3. 動做:
無非增刪改查.
其實過去寫接口, 沒有玩到Session, 安全性的問題, 在這種php先後一塊兒混着搞的項目中, 這些東西都要涉及並考慮到.
例如權限, 能夠細分到可怕的程度:
https://laravel-china.org/courses/laravel-intermediate-training/5.7/product-decomposition/2601
而權限的問題, 只要寫好對應的policy, 在Laravel裏面變得沒那麼困難了.
$ composer config -g repo.packagist composer https://packagist.laravel-china.org
compose加速.
首先, 用composer建立項目, 這個目錄在vagrant虛擬機和物理主機之間都要能訪問到, 這樣才能利用Win/Mac的IDE工具方便的編輯代碼.
$composer create-project laravel/laravel larabbs --prefer-dist "5.7.*"
具體環境搭建, 下面這個連接:
https://laravel-china.org/docs/laravel-development-environment/5.7
修改Homestead.yaml這個構建文件, 增長新的虛擬站點和數據庫名稱, 同時修改host文件
> cd ~/Homestead && vagrant provision && vagrant reload
這裏碰到第一個坑, 改yaml文件後, 沒法provision了, 後來直接複製粘貼了下面的內容才行:
ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/Code to: /home/vagrant/Code sites: - map: homestead.test to: /home/vagrant/Code/Laravel/public - map: larabbs.test # <--- 這裏 to: /home/vagrant/Code/larabbs/public # <--- 這裏 databases: - homestead - larabbs # <--- 這裏 variables: - key: APP_ENV value: local
修改了一下cpu數量跟RAM大小, 否則感受vm不給力.
接着修改根目錄的.env文件
APP_NAME=LaraBBS APP_ENV=local APP_KEY=your_app_key APP_DEBUG=true APP_URL=http://larabbs.test DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=larabbs DB_USERNAME=homestead DB_PASSWORD=secret CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_CONNECTION=sync
以及redis配置, 注意, 咱們立刻要玩redis了..
若是hosts文件修改好了,直接訪問larabbs.test應該能夠看到默認首頁了.
若是看到提示說"No input file specified.", 檢查yaml配置中的目錄大小寫.
接着就是在github上建立repository, 方便備份. (這麼說有點兒不對哈, 怎麼能把git當備份工具呢?)
而後修改config/app.php, 時區爲"Asia/Shanghai
", local爲'zh-CN
', 這樣有些錯誤信息, 會由第三方的翻譯插件翻譯成中文.
在composer.json文件的autoload裏面加上本身新增的輔助函數文件app/helpers.php
"autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories" ], "files": [ "app/helpers.php" ] },
而後用composer dump-autoload從新加載.
接着, 先構建一個統一的前端佈局layout文件, 在views/layout文件夾中
app.blade.php, 主佈局文件, 其餘view都要繼承它
_header.blade.php和_footer.blade.php, 頭尾佈局
_messages.blade.php, flash裏面的消息.
而後即便建立控制器:
$ php artisan make:controller PagesController
接着就是view跟路由.
而後把前端任務自動化管理工具Laravel Mix用yarn 裝好.
$ yarn config set registry https://registry.npm.taobao.org $ yarn install $ cnpm run watch-poll
就能夠看到主頁了.
cnpm run watch-poll 會持續地關注scss, 有改動它會自動編譯.