iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
1
Modern Web

Laravel 6.0 初體驗!怎麼用最新的 laravel 架網站!系列 第 2

[Day 2] 版本怎麼不是 6.0?聊聊版本編號與 Laravel 架構

  • 分享至 

  • xImage
  •  

安裝好了 Laravel 專案之後,我們來看看現在的版本號碼

怎麼看呢?在 Laravel 裡面,我們使用 php artisan 這個工具來看看。

$ php artisan

Laravel Framework 5.8.34

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
......

!!!怎麼是 Laravel Framework 5.8?說好的 Laravel 6.0 教學呢?

騙我

慢著!別擔心!

慢著

這時候我們打開 composer.json 檔案,將 laravel 版本改成 6.0

"require": {
    "php": "^7.1.3",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "6.0.*", 
    "laravel/tinker": "^1.0"
},

特別注意 "laravel/framework": "6.0.*", 這段

改好之後,我們重新跑一次 composer update 看看

$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 5 updates, 0 removals
  - Updating doctrine/lexer (1.0.2 => 1.1.0): Loading from cache
  - Updating opis/closure (3.3.1 => 3.4.0): Downloading (100%)
  - Updating monolog/monolog (1.24.0 => 2.0.0): Downloading (100%)
  - Updating laravel/framework (v5.8.34 => v6.0.0): Downloading (100%)
  - Updating fideloper/proxy (4.2.0 => 4.2.1): Downloading (100%)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

好像成功了?我們看一下現在的版本號碼

$ php artisan

Laravel Framework 6.0.0

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
......

成功啦!現在真的是貨真價實的 Laravel 6.0 教學了!

補充:

如果覺得每次都看到許多的提示很繁瑣的話,可以使用 php artisan --version 這個指令

$ php artisan --version
Laravel Framework 6.0.0

這樣就只會看到版本號,不會看到所有指令的提示訊息囉!

感謝 latte0205 邦友的留言!


趁著剛安裝好框架這個機會,我們來簡單聊聊 Laravel 這個框架的結構。

相信安裝的過程中,聰明的讀者們都注意到了,Laravel 安裝時直接就建立了許多的資料夾,看起來非常嚇人。

不過,沒問題的!隨著後面的教學,我們會帶領各位讀者一個一個的看過這些資料夾與類別,並學習裡面的內容。


如果部分讀者有過網頁開發的相關經驗,應該會對所謂的 MVC 框架相當熟悉。看到一個新的網頁框架時,或許會期待裡面應該有 Models/ Controllers/ Views/ 三個資料夾。

BUT!

很奇怪的是,你在 Laravel 框架裡面,可以在 app/Http 裡面找到 Controllers,可以在 resources 裡面找到 views。可是,卻找不到 Models/ 這個資料夾,這是為什麼呢?

在 Laravel 說明文件 https://laravel.com/docs/6.0/structure#introduction 我們可以看到,這其實是 Laravel 刻意的設計。

原因是這樣的:傳統網頁開發 MVC 框架內的模型(Model),對不同的工程師來說,有不同的意義

對於有的工程師來說,Model 代表的是一個物件,比方說電商網站的某個商品本身。所以,對應的程式應該要包含該物件相關的所有商業邏輯。

對於有的工程師來說,Model 代表的則是資料庫內的一筆資料,比方說電商網站某個商品的資料。所以,只應該包含資料庫內商品資料結構和關聯物件,不應該包含商業邏輯。

為了避免這樣的爭議, Laravel 選擇了刻意不使用 Models/ 資料夾的方式,直接免去這樣的爭論。

所以,Laravel 與傳統的 MVC 框架略有出入。雖然一樣有 Views/ 資料夾,包含處理網頁外觀的物件。一樣有 Controllers/ 資料夾處理網頁事件。但是針對資料庫處理的部份,物件則預設直接放在 app/ 裡面。

在後面的教學裡,筆者會採用自己習慣的方式:建立 Entities/ 資料夾放置 Eloquent Model,建立 Services/ 資料夾放置商業邏輯相關的 Service 類別,來進行後續的開發。

今天的教學就這樣囉!各位明天見~


上一篇
[Day 1] 開始使用 Laravel 6.0
下一篇
[Day 3] 框架裝好了,那畫面呢?聊環境建置,docker 和 laradock
系列文
Laravel 6.0 初體驗!怎麼用最新的 laravel 架網站!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1

本文第二行查看版本是 php artisan --version

https://ithelp.ithome.com.tw/upload/images/20190904/200928169cdjwvGF1Y.png

目前這邊是看起來有6.0.0了

ReccaChao iT邦研究生 5 級 ‧ 2019-09-04 11:44:40 檢舉

感謝補充/images/emoticon/emoticon37.gif

沒錯!如果只要看版本的話,可以用 php artisan --version 就好

謝謝您的回應

0
阿瑜
iT邦研究生 3 級 ‧ 2019-09-08 16:24:16

我的一開始 就是 6.0.1
但 找不到 Controllers/ 和 Views/

ReccaChao iT邦研究生 5 級 ‧ 2019-09-08 20:41:00 檢舉

Controllersapp/Http 資料夾裡面
Viewsresources 裡面喔!

阿瑜 iT邦研究生 3 級 ‧ 2019-09-08 21:35:04 檢舉

好的 ,謝謝你 XD
我跟著教學做到Day3但因為我的作業系統是Windows,所以要改用Linux來 產生第一個 Laravel 畫面 /images/emoticon/emoticon13.gif

推推 詳細且有趣的教學 /images/emoticon/emoticon15.gif

0
ckp6250
iT邦好手 1 級 ‧ 2019-11-26 16:40:19

上課打卡!

0
阿展展展
iT邦好手 1 級 ‧ 2020-02-20 08:14:42

騙我XDDDD

我要留言

立即登入留言