Submit Search
Upload
啟動 Laravel 與環境設定
•
8 likes
•
52,681 views
Shengyou Fan
Follow
在 2015 年 7 月至新北市樹林國小舉辦 Laravel 工作坊,讓參與的學員在 30 個小時內學會使用 Laravel 建置一個具 Open ID 認證功能的網路應用程式。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 63
Download now
Download to read offline
Recommended
Composer 套件管理
Composer 套件管理
Shengyou Fan
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
Shengyou Fan
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
使用 Controller
使用 Controller
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
An Intro into webpack
An Intro into webpack
Squash Apps Pvt Ltd
Maven Basics - Explained
Maven Basics - Explained
Smita Prasad
Composer 從入門到實戰
Composer 從入門到實戰
Shengyou Fan
Recommended
Composer 套件管理
Composer 套件管理
Shengyou Fan
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
Shengyou Fan
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
使用 Controller
使用 Controller
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
An Intro into webpack
An Intro into webpack
Squash Apps Pvt Ltd
Maven Basics - Explained
Maven Basics - Explained
Smita Prasad
Composer 從入門到實戰
Composer 從入門到實戰
Shengyou Fan
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
Shengyou Fan
Apache Maven
Apache Maven
Rahul Tanwani
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
Shengyou Fan
Maven tutorial
Maven tutorial
Dragos Balan
Ansible Tutorial.pdf
Ansible Tutorial.pdf
NigussMehari4
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
Shengyou Fan
PHP unserialization vulnerabilities: What are we missing?
PHP unserialization vulnerabilities: What are we missing?
Sam Thomas
Git hooks
Git hooks
Skills Matter
FHIR Server 安裝與使用
FHIR Server 安裝與使用
Lorex L. Yang
Flutter 踩雷心得
Flutter 踩雷心得
Weizhong Yang
Route 路由控制
Route 路由控制
Shengyou Fan
Maven 3 Overview
Maven 3 Overview
Mike Ensor
Apache maven 2 overview
Apache maven 2 overview
Return on Intelligence
Intro to vue.js
Intro to vue.js
TechMagic
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
Shengyou Fan
中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本
Lorex L. Yang
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Shengyou Fan
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發
Weizhong Yang
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
Aarti Parikh
Introduction to GNU Make Programming Language
Introduction to GNU Make Programming Language
Shih-Hsiang Lin
Package 安裝與使用
Package 安裝與使用
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
More Related Content
What's hot
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
Shengyou Fan
Apache Maven
Apache Maven
Rahul Tanwani
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
Shengyou Fan
Maven tutorial
Maven tutorial
Dragos Balan
Ansible Tutorial.pdf
Ansible Tutorial.pdf
NigussMehari4
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
Shengyou Fan
PHP unserialization vulnerabilities: What are we missing?
PHP unserialization vulnerabilities: What are we missing?
Sam Thomas
Git hooks
Git hooks
Skills Matter
FHIR Server 安裝與使用
FHIR Server 安裝與使用
Lorex L. Yang
Flutter 踩雷心得
Flutter 踩雷心得
Weizhong Yang
Route 路由控制
Route 路由控制
Shengyou Fan
Maven 3 Overview
Maven 3 Overview
Mike Ensor
Apache maven 2 overview
Apache maven 2 overview
Return on Intelligence
Intro to vue.js
Intro to vue.js
TechMagic
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
Shengyou Fan
中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本
Lorex L. Yang
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Shengyou Fan
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發
Weizhong Yang
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
Aarti Parikh
Introduction to GNU Make Programming Language
Introduction to GNU Make Programming Language
Shih-Hsiang Lin
What's hot
(20)
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
Apache Maven
Apache Maven
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
Maven tutorial
Maven tutorial
Ansible Tutorial.pdf
Ansible Tutorial.pdf
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
PHP unserialization vulnerabilities: What are we missing?
PHP unserialization vulnerabilities: What are we missing?
Git hooks
Git hooks
FHIR Server 安裝與使用
FHIR Server 安裝與使用
Flutter 踩雷心得
Flutter 踩雷心得
Route 路由控制
Route 路由控制
Maven 3 Overview
Maven 3 Overview
Apache maven 2 overview
Apache maven 2 overview
Intro to vue.js
Intro to vue.js
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
中正大學/FHIR 快速掃描 R4 版本
中正大學/FHIR 快速掃描 R4 版本
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
給 iOS 工程師的 Flutter 開發
給 iOS 工程師的 Flutter 開發
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
Introduction to GNU Make Programming Language
Introduction to GNU Make Programming Language
Viewers also liked
Package 安裝與使用
Package 安裝與使用
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Shengyou Fan
Model 設定與 Seeding
Model 設定與 Seeding
Shengyou Fan
Eloquent ORM
Eloquent ORM
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
驗證與訊息
驗證與訊息
Shengyou Fan
整合 Open ID
整合 Open ID
Shengyou Fan
工作坊總結
工作坊總結
Shengyou Fan
Route 機制
Route 機制
Shengyou Fan
Schema & Migration操作
Schema & Migration操作
Shengyou Fan
開發流程與工具介紹
開發流程與工具介紹
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
課程簡介
課程簡介
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
應用程式佈署
應用程式佈署
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
使用 Eloquent ORM
使用 Eloquent ORM
Shengyou Fan
Viewers also liked
(20)
Package 安裝與使用
Package 安裝與使用
開發環境建置
開發環境建置
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Model 設定與 Seeding
Model 設定與 Seeding
Eloquent ORM
Eloquent ORM
工作坊簡介
工作坊簡介
CRUD 綜合運用
CRUD 綜合運用
驗證與訊息
驗證與訊息
整合 Open ID
整合 Open ID
工作坊總結
工作坊總結
Route 機制
Route 機制
Schema & Migration操作
Schema & Migration操作
開發流程與工具介紹
開發流程與工具介紹
使用者認證
使用者認證
課程簡介
課程簡介
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
應用程式佈署
應用程式佈署
開發環境建置
開發環境建置
使用 Eloquent ORM
使用 Eloquent ORM
Similar to 啟動 Laravel 與環境設定
專案啟動與環境設定
專案啟動與環境設定
Shengyou Fan
Docker tutorial
Docker tutorial
azole Lai
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
imacat .
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率
Zhen Li
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率
Zhen Li
專案啟動與設定
專案啟動與設定
Shengyou Fan
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
Tao He
Lucene 全文检索实践
Lucene 全文检索实践
yiditushe
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
Maven初级培训
Maven初级培训
Cody Zhang
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
imacat .
Package安裝與使用
Package安裝與使用
Shengyou Fan
Subversion
Subversion
i7Xh
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
Flex 入门培训
Flex 入门培训
7rice
Laravel 5.2 教學
Laravel 5.2 教學
Cloud Wu
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
Yiwei Ma
自动生成 Makefile 的全过程详解!
自动生成 Makefile 的全过程详解!
hik_lhz
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Jackson Tian
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
Shengyou Fan
Similar to 啟動 Laravel 與環境設定
(20)
專案啟動與環境設定
專案啟動與環境設定
Docker tutorial
Docker tutorial
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率
使用Samba提升linux平台开发效率
專案啟動與設定
專案啟動與設定
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
Lucene 全文检索实践
Lucene 全文检索实践
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
Maven初级培训
Maven初级培训
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
Package安裝與使用
Package安裝與使用
Subversion
Subversion
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Flex 入门培训
Flex 入门培训
Laravel 5.2 教學
Laravel 5.2 教學
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
自动生成 Makefile 的全过程详解!
自动生成 Makefile 的全过程详解!
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
More from Shengyou Fan
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
Shengyou Fan
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
Shengyou Fan
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
Shengyou Fan
How I make a podcast website using serverless technology in 2023
How I make a podcast website using serverless technology in 2023
Shengyou Fan
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
Shengyou Fan
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
Shengyou Fan
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
Shengyou Fan
Using the Exposed SQL Framework to Manage Your Database
Using the Exposed SQL Framework to Manage Your Database
Shengyou Fan
[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園
Shengyou Fan
初探 Kotlin Multiplatform
初探 Kotlin Multiplatform
Shengyou Fan
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
Shengyou Fan
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
Shengyou Fan
Composer 經典食譜
Composer 經典食譜
Shengyou Fan
老派浪漫:用 Kotlin 寫 Command Line 工具
老派浪漫:用 Kotlin 寫 Command Line 工具
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
Shengyou Fan
用 Kotlin 打造讀書會小幫手
用 Kotlin 打造讀書會小幫手
Shengyou Fan
More from Shengyou Fan
(20)
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
How I make a podcast website using serverless technology in 2023
How I make a podcast website using serverless technology in 2023
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
Using the Exposed SQL Framework to Manage Your Database
Using the Exposed SQL Framework to Manage Your Database
[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園
初探 Kotlin Multiplatform
初探 Kotlin Multiplatform
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
Composer 經典食譜
Composer 經典食譜
老派浪漫:用 Kotlin 寫 Command Line 工具
老派浪漫:用 Kotlin 寫 Command Line 工具
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
用 Kotlin 打造讀書會小幫手
用 Kotlin 打造讀書會小幫手
啟動 Laravel 與環境設定
1.
啟動 Laravel 與環境設定 范聖佑
Shengyou Fan 新北市樹林國⼩小 (2015/07/07) 適 ⽤用 5.1 版
2.
單元主題 • 學習如何建⽴立全新的 Laravel
5.1 專案 - 使⽤用 Composer - 使⽤用 laravel-installer • 了解 Laravel 的專案資料夾結構 • 了解 Laravel 的環境變數設定⽅方式 • 建⽴立第⼀一個 git 版本儲存庫
3.
建⽴立 Laravel 5.1
專案
4.
Modern PHP 的開發架構 瀏覽網⾴頁 使⽤用者端
HTTP 伺服器 index.php public/ 網站根⺫⽬目錄 應⽤用程式進⼊入點 vendor/ 元件 A 元件 B 由 Composer 統⼀一 管理第三⽅方元件 config/ 共⽤用設定檔 應⽤用程式類別 app/ ⾃自⾏行依需求規劃應 ⽤用程式⺫⽬目錄架構 PSR-4 類別對應點
5.
新架構解決的問題 • 以往網址會曝露出程式語⾔言副檔名,除了網址較不 好看外,也容易讓駭客知道伺服器端使⽤用的技術, 較容易針對該語⾔言弱點進⾏行攻擊 • ⼀一改以往網址是由瀏覽的路徑由檔名決定,新架構 透過
Route 可以讓網址更符合語意及 RESTful • 以往所有的程式碼都放在 Document Root 底下,若 HTTP 伺服器沒有設定好或被破解,有可能讓所有源 始碼及系統設定等機敏資訊曝露出來 • 新架構的 Document Root 底下只有⼀一個 index.php 做 為程式進⼊入點,其餘程式都放置在網路伺服器⾮非公 開之處,可增加程式安全性
6.
Modern PHP 框架的
Skeleton • 由於 PHP-FIG 組織的成⽴立、Composer 的興起,各 Modern PHP 框架在新版都將框架內的各功能組件獨 ⽴立成 PHP 元件。因此,就算不是使⽤用該框架的開發 者,也能使⽤用該框架的元件另作他途 • ⽽而各框架為了讓其開發者有⼀一個「啟始包」,可以迅 速的架起⼀一個網路應⽤用程式雛型。因此,各框架也將 ⾃自⾝身框架的 Skeleton 包裝成⼀一個 Composer 元件 • 在 Laravel 的世界裡,laravel/laravel 這個 Composer 元件就是 Laravel 框架的 Skeleton。我們可 以透過 composer create-‐project 來啟動⼀一個 Laravel 專案
7.
在 Packagist 上查詢元件資訊 作者資訊 版本資訊 套件資訊 相依資訊
8.
$ composer create-‐project
laravel/laravel -‐-‐prefer-‐dist (⽤用 Composer 建⽴立 Laravel 專案 skeleton) ★ 官⽅方⽂文件:http://laravel.com/docs/5.1#installation
9.
composer create-‐project • 使⽤用
Composer 建⽴立 Laravel Skeleton - Composer 可以透過 create-project 指令將某個元件做為 建⽴立專案啟始包的⼀一種⽅方式 - ⺫⽬目前各主流框架都是透過這種⽅方式來建⽴立 Skeleton,⽽而 ⾮非傳統下載 zip 檔 • 範例: $ composer create-‐project vendor/package {target-‐directory} [version] -‐-‐prefer-‐dist 參數說明: vendor:元件開發者名稱 package:元件名稱 target-‐directory:預定建⽴立的資料夾名稱 version:預定使⽤用的版本 -‐-‐prefer-‐dist:使⽤用 zip 散佈檔⽽而不要 clone 整個源始碼
10.
採⽤用 laravel-‐installer 安裝 •
Composer 在取得套件相依資訊及下載元件時的速度 會受到機器運算能⼒力及網路下載速度影響其運⾏行速 度 • 為了加快產⽣生專案啟始包的速度,Laravel 官⽅方釋出 laravel-‐installer 指令列⼯工具,讓我們可以迅速 的完成 composer create-‐project 所執⾏行的動作 • 在使⽤用之前,需要先安裝 Composer Global Package 才能取⽤用 laravel-‐installer 指令 (請參考前⼀一章的教學 內容)
11.
$ laravel new
[project-‐name] (速度++) ★ 官⽅方⽂文件:http://laravel.com/docs/5.1#installation ⽤用 laravel-installer 建⽴立 laravel 專案 skeleton
12.
移除不必要檔案 • 專案內的說明檔可以移除,包括: - readme.md
13.
驗證安裝成功 • 開啟 UwAmp,確認
Document Root 指向 Laravel 專 案的 public,並啟動 Server • 打開瀏覽器:http://localhost:8000 確認 安裝成功
14.
安裝疑難排解
15.
遇到 Github 流量上限 •
Composer 在下載套件時,由於⼤大量依賴 Github 做 為下載來源。若⾃自⼰己在練習時重覆啟動數個 Laravel 專案多次;或是如⼯工作坊在電腦教室練習時,對外 IP 都是相同的狀況下,很容易因為⼤大量相同來源的 下載要求⽽而⽤用盡 Github 的下載流量上限 • 這時需要⽤用⾃自⼰己的 Github 帳號登⼊入 Github,並到帳 號設定內啟動⼀一組 token 供 Composer 使⽤用,設定成 功後就可以讓 Composer 繼續下載 (請事先申請 Github 帳號)
16.
Composer 已達下載上限
17.
⾄至 Github 帳號設定
18.
產⽣生新的 token
19.
設定 token 名稱及權限
20.
將 token 設定給
Composer
21.
⼀一時之間網路出問題 • 若是因為網路暫時出問題,⽽而無法透過 Composer 或
laravel-installer 從遠端取得 Laravel Skelton 的話, 可以先暫時使⽤用 wagon 內建的 Laravel 打包版做為替 代⽅方案: - 先將 laravel5.1.2.zip 檔案解壓縮 - 將資料夾移⾄至 uwampwww 底下 - 使⽤用 composer run-‐script 指令執⾏行未完成的啟 始動作
22.
Laravel 專案啟動時的動作 • 使⽤用
Composer 啟動 Laravel Skelton 時,預設會進⾏行 以下幾個動作: 1. 將 .env.example 檔案複製⼀一份成 .env 2. 最佳化 Class ⾃自動載⼊入 3. 產⽣生應⽤用程式⾦金鑰
23.
scripts 區段設定 "scripts": {
"post-‐install-‐cmd": [ "php artisan clear-‐compiled", "php artisan optimize" ], "pre-‐update-‐cmd": [ "php artisan clear-‐compiled" ], "post-‐update-‐cmd": [ "php artisan optimize" ], "post-‐root-‐package-‐install": [ "php -‐r "copy('.env.example', '.env');"" ], "post-‐create-‐project-‐cmd": [ "php artisan key:generate" ] },
24.
laravel-installer 的動作
25.
composer run-‐script • Composer
可以透過 run-‐script 來執⾏行 composer.json 內設定好的 scripts 動作 • 若是因為某些原因⽽而需要再次執⾏行 scripts 動作,可 ⽤用此種⽅方式觸發 • 範例: $ composer run-‐script post-‐root-‐package-‐install $ composer run-‐script post-‐install-‐cmd $ composer run-‐script post-‐create-‐project-‐cmd
26.
$ composer run-‐script
{event} (執⾏行 composer.json 內的 script 動作)
27.
Laravel 資料夾結構 ★ 參考⽂文件:http://laravel.com/docs/5.1/structure
28.
兩個 composer 檔案 根⺫⽬目錄底下有兩個
Composer 檔案:composer.json 及 composer.lock, 是⽤用來設定 Laravel 套件相依性之⽤用
29.
Laravel 的 composer.json {
"name": "{vendor}/{package-‐name}", "description": "{package description}", "keywords": ["{keyword1}", "{keyword2}"], "license": "{license}", "type": "project", "require": { "php": ">=5.5.9", "laravel/framework": "5.1.*" }, "require-‐dev": { "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1" }, /* 以下暫略 */ } 私有專案⽤用:proprietary 格式:"vendor/package-‐name": "version"
30.
composer.lock 的作⽤用 • 每當
Composer 分析完套件相依性、決定此次要安 裝的元件時,就會將每⼀一個元件的安裝版本資訊寫 ⼊入 composer.lock 檔內 • 如同其名,lock 檔的作⽤用就是把⺫⽬目前的相依性「鎖 定」在這個檔案裡。換⾔言之,當團隊內的其他成員 拿到源始碼時,只要執⾏行 composer install,就 可以安裝⼀一模⼀一樣的元件版本,避免發⽣生成員間因 元件版本不同⽽而產⽣生的開發錯誤 • 總⾔言之,請把 composer.lock 放⼊入版本控制系統內
31.
app app 是 Laravel
程式核⼼心 class 集中放置處,由於 Laravel 5.1 已全⾯面⽀支 援 PSR-4 規範,在此資料夾內新增 class 時,請依規範加 namespace
32.
PSR-4 載⼊入設定 {
/* 以上暫略 */ "autoload": { "classmap": [ "database" ], "psr-‐4": { "App": "app/" } }, "autoload-‐dev": { "classmap": [ "tests/TestCase.php" ] }, /* 以下暫略 */ } 依 PSR-‐4 載⼊入 class 設定 新增 class 在 app 資料夾 時,請注意 namespace
33.
bootstrap bootstrap 是 Laravel
的啟始引擎,功能在於呼叫 Composer 的⾃自動載 ⼊入以及啟動 App 核⼼心物件。底下的 cache 資料夾是⽤用來存放框架啟動 最佳化的快取檔
34.
config config 是 Laravel
放置所有設定檔的資料夾,不論是 Laravel 原⽣生提供 的設定或是其他套件提供的設定檔皆是放置在此
35.
database database 資料夾內有 3
個⼦子資料夾。migrations 放置所有資料庫變更紀 錄的操作 class;seeds 則是放置產⽣生測試假資料⽤用的 class;factories 則是 5.1 新增產⽣生 Model 欄位資料對應的 class
36.
public public 資料夾是 HTTP
伺服器設定 Document Root 的位置,裡⾯面的 index.php 是應⽤用程式進⼊入點,還包括所有公開檔案如 favicon.ico…
37.
resources resources 資料夾內有三個資料夾,分別放置 views
樣板檔案、lang 多 國語系對照表以及 assets 各種前端素材
38.
storage storage 資料夾存放所有框架動態產⽣生的檔案,包括:編譯過的 view、 儲存的
session 紀錄、快取、log 等…
39.
tests tests 資料夾存放所有關於測試⽤用的檔案,Laravel 內定使⽤用
PHPUnit 來做測試,裡⾯面已經有⼀一個範例檔在其中
40.
vendor vendor 資料夾是所有透過 Composer
安裝的第三⽅方套件,⼀一般⽽而⾔言不 需要更動裡⾯面的內容,在版本控制系統裡也會忽略它
41.
建⽴立第⼀一個 git 存檔點
42.
開啟書籤管理
43.
新增⼀一個儲存庫
44.
操作介⾯面 書籤管理 常⽤用功能鈕 working directory staging area 檔案差異 儲存庫⾴頁籤
45.
儲存⼀一個版本 加⼊入檔案 輸⼊入儲存紀錄
46.
瀏覽 git 線圖
47.
git ⼯工作流程概念 ★ 圖⽚片來源:http://thkoch2001.github.io/whygitisbetter/images/local-remote.png
48.
.gitignore • 有⼀一些檔案 (⽐比⽅方說
IDE 的設定檔) 我們不想要放到 版本控制系統裡,希望 git 可以⾃自動忽略這些檔案 • 只要把想忽略的規則寫⼊入 .gitignore 裡並 commit 到 儲存庫,⽇日後 git 就會⾃自動忽略這些檔案
49.
存檔點 • 試著把現在已經可以運作的程式碼加⼊入版本控制內 • 流程提醒: -
建⽴立⼀一個新的儲存庫 - working directory > staging area > commit
50.
Laravel 環境設定 ★ 參考⽂文件:http://laravel.com/docs/5.1/installation#environment-configuration
51.
開發流程與階段 [ development ] 開發⽤用、測試⽤用 [
local ] 本機端開發 [ staging ] 階段性發佈 [ production ] 正式上線 每個開發夥伴本機端 獨⽴立開發,開發完成 後送回版本控制系統 [version control] 原始碼管理 定期從版本控制系統 取出後,進⾏行整合、 單元等測試 專案階段完成後,進 ⾏行階段性發佈,給客 ⼾戶測試、確認 所有階段完成後佈署 ⾄至正式主機,對外公 開使⽤用
52.
什麼是環境設定? • 如上圖,在⼀一個網路應⽤用程式的開發過程中,程式 碼會依照不同的開發階段被部署在不同的機器上 • 常⾒見的實際狀況是,不同開發階段的機器可能會有 不同的設定值,如
DB 名稱、DB 帳號、DB 密碼等 • 在以往的作法裡,可能會將這些設定值寫死在⼀一個 config.php 的檔案內,並在所有的⾴頁⾯面裡載⼊入 • 將設定值寫死在程式碼內並放到版本控制系統裡, 除了會有機敏資訊曝光的⾵風險,在更換機器時也會 需求⼿手動修改這個檔案以適應不同的機器,無法讓 部署流程⾃自動化
53.
Laravel 的環境設定設計 • Laravel
的環境設定設計,是透過在根⺫⽬目錄放置⼀一 個 .env 的設定檔,在設定檔內紀錄所有的設定值。 ⽽而在程式運⾏行時,透過 env('CONFIG_KEY') 載⼊入 設定檔內的設定值 • .env 這個檔案預設就設定在 .gitignore 裡排除。也就 是說,.env 這個檔案不會被送⼊入版本控制系統內, 以免除機敏資訊被公開的⾵風險 • 透過環境變數的設計,讓程式碼可動態適應不同機 器上的不同設定,減少佈署時需⼿手動調整設定的負 擔
54.
如何知道⺫⽬目前的環境? $ php artisan
env 使⽤用 artisan 指令查詢⺫⽬目前的環境
55.
什麼是 artisan? • Laravel
專屬的指令列⼯工具,協助我們完成⽇日常繁瑣 ⼯工作事務,如: • 最佳化 (optimize) 應⽤用程式 - 清快取 (cache)、控制 queue - tinker 模式、maintenance 模式 • 可簡化眾多開發⼯工作及時程,如: - ⾃自動幫忙產⽣生想要的 class skeleton,少打⼀一些鍵盤 - ⾃自動最佳化 Laravel、啟動常⽤用的⼯工具
56.
$ [php] artisan
env 了解⺫⽬目前 Laravel 使⽤用的環境設定
57.
artisan env • 回傳
Laravel ⺫⽬目前所在環境 - artisan 會回傳⺫⽬目前 Laravel ⺫⽬目前的環境變數設定 • 範例: $ php artisan env
58.
如何修改環境設定? APP_ENV=local APP_DEBUG=true APP_KEY=SomeRandomString
DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret 編輯 .env 檔案 透過 artisan 驗證 $ php artisan env
59.
設定/產⽣生 APP_KEY • 在環境設定檔
(.env) 裡,有⼀一個 APP_KEY,是 Laravel 在應⽤用程式運作時,⽤用做加密運算使⽤用的 Key 值,其為⼀一組 32 字元⻑⾧長的隨機字串 • 在建⽴立新專案時,Composer 會透過 post-‐create-‐ project-‐cmd 內的指令來產⽣生⼀一組新的 Key,並將 其紀錄在 .env 檔案內 • 產⽣生 APP_KEY 也可以透過 artisan 指令來重新產 ⽣生
60.
$ [php] artisan
key:generate 產⽣生 Laravel 要使⽤用的 APP_KEY 並存在 .env 內
61.
artisan key:generate • 產⽣生
APP_KEY - artisan 會產⽣生⼀一組 32 字元⻑⾧長的隨機字串,並將其 紀錄在 .env 裡 • 範例: $ php artisan key:generate Application key [xxxxxxxxxxxxxxxxxx] set successfully
62.
單元總結 • 在這個單元裡我們學到了些什麼? - 透過兩種⽅方式建⽴立新的
Laravel 專案 - 了解 Laravel 的專案資料夾結構 - 如何設定 Laravel 的環境變數 - 學習使⽤用 artisan 指令列⼯工具
63.
Q & A 歡迎提問討論
Download now