Laravel 進階筆記

所謂進階, 剛摸了一個禮拜, 整體感受容易上手, 不少已經實現的模塊功能, 好比"記住我", "好比激活郵件", "好比用戶認證"等等, 這些東西, 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, 有改動它會自動編譯.

相關文章
相關標籤/搜索