Submit Search
Upload
專案啟動與環境設定
•
3 likes
•
8,999 views
Shengyou Fan
Follow
在 2015 年 5 月,我們與臺中科大資工系合作,舉辦 Laravel 工作坊,讓參與的學員在 20 個小時內學會使用 Laravel 建置一個簡易的 Blog 系統。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 69
Download now
Download to read offline
Recommended
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
課程簡介
課程簡介
Shengyou Fan
Package 安裝與使用
Package 安裝與使用
Shengyou Fan
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
Recommended
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
課程簡介
課程簡介
Shengyou Fan
Package 安裝與使用
Package 安裝與使用
Shengyou Fan
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
應用程式佈署
應用程式佈署
Shengyou Fan
Model 設定與 Seeding
Model 設定與 Seeding
Shengyou Fan
使用 Controller
使用 Controller
Shengyou Fan
開發工具與環境建置
開發工具與環境建置
Shengyou Fan
Route 路由控制
Route 路由控制
Shengyou Fan
驗證與訊息
驗證與訊息
Shengyou Fan
COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南
Shengyou Fan
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
Shengyou Fan
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Shengyou Fan
Composer 套件管理
Composer 套件管理
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
Route路由控制
Route路由控制
Shengyou Fan
應用程式部署
應用程式部署
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Package安裝與使用
Package安裝與使用
Shengyou Fan
驗證與訊息
驗證與訊息
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Migrations 與 Schema操作
Migrations 與 Schema操作
Shengyou Fan
More Related Content
What's hot
應用程式佈署
應用程式佈署
Shengyou Fan
Model 設定與 Seeding
Model 設定與 Seeding
Shengyou Fan
使用 Controller
使用 Controller
Shengyou Fan
開發工具與環境建置
開發工具與環境建置
Shengyou Fan
Route 路由控制
Route 路由控制
Shengyou Fan
驗證與訊息
驗證與訊息
Shengyou Fan
COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南
Shengyou Fan
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
Shengyou Fan
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Shengyou Fan
Composer 套件管理
Composer 套件管理
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
Route路由控制
Route路由控制
Shengyou Fan
應用程式部署
應用程式部署
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Package安裝與使用
Package安裝與使用
Shengyou Fan
驗證與訊息
驗證與訊息
Shengyou Fan
What's hot
(20)
應用程式佈署
應用程式佈署
Model 設定與 Seeding
Model 設定與 Seeding
使用 Controller
使用 Controller
開發工具與環境建置
開發工具與環境建置
Route 路由控制
Route 路由控制
驗證與訊息
驗證與訊息
COSCUP 2016 Laravel 部署工作坊 - 部署指南
COSCUP 2016 Laravel 部署工作坊 - 部署指南
使用 laravel 的前與後
使用 laravel 的前與後
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Composer 套件管理
Composer 套件管理
工作坊簡介
工作坊簡介
開發環境建置
開發環境建置
開發環境建置
開發環境建置
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
Route路由控制
Route路由控制
應用程式部署
應用程式部署
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Package安裝與使用
Package安裝與使用
驗證與訊息
驗證與訊息
Viewers also liked
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Migrations 與 Schema操作
Migrations 與 Schema操作
Shengyou Fan
Eloquent ORM
Eloquent ORM
Shengyou Fan
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
CRUD 綜合應用
CRUD 綜合應用
Shengyou Fan
專案啟動與設定
專案啟動與設定
Shengyou Fan
開發流程與工具介紹
開發流程與工具介紹
Shengyou Fan
Model & Seeding整合
Model & Seeding整合
Shengyou Fan
Schema & Migration操作
Schema & Migration操作
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
使用 Eloquent ORM
使用 Eloquent ORM
Shengyou Fan
工作坊總結
工作坊總結
Shengyou Fan
Route 機制
Route 機制
Shengyou Fan
整合 Open ID
整合 Open ID
Shengyou Fan
使用 Controller
使用 Controller
Shengyou Fan
Viewers also liked
(15)
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Migrations 與 Schema操作
Migrations 與 Schema操作
Eloquent ORM
Eloquent ORM
CRUD 綜合運用
CRUD 綜合運用
CRUD 綜合應用
CRUD 綜合應用
專案啟動與設定
專案啟動與設定
開發流程與工具介紹
開發流程與工具介紹
Model & Seeding整合
Model & Seeding整合
Schema & Migration操作
Schema & Migration操作
使用者認證
使用者認證
使用 Eloquent ORM
使用 Eloquent ORM
工作坊總結
工作坊總結
Route 機制
Route 機制
整合 Open ID
整合 Open ID
使用 Controller
使用 Controller
Similar to 專案啟動與環境設定
Laravel 5.2 教學
Laravel 5.2 教學
Cloud Wu
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Shengyou Fan
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
Wamp环境下安装 wordpress
Wamp环境下安装 wordpress
strugglesmen
Maven初级培训
Maven初级培训
Cody Zhang
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
Maven初级培训
Maven初级培训
ytsolar
Asp.net core v1.0
Asp.net core v1.0
chang kuo-chao
Asp.net core v1.0
Asp.net core v1.0
國昭 張
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
self study
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
rewinx
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
Frank Cai
Docker tutorial
Docker tutorial
azole Lai
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
Ceph customize ap is for programmatic access with python
Ceph customize ap is for programmatic access with python
Bo-Yu Chen
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
Phalcon phpconftw2012
Phalcon phpconftw2012
Rack Lin
Phalcon the fastest php framework 阿土伯
Phalcon the fastest php framework 阿土伯
Hash Lin
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
Shengyou Fan
Similar to 專案啟動與環境設定
(20)
Laravel 5.2 教學
Laravel 5.2 教學
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Wamp环境下安装 wordpress
Wamp环境下安装 wordpress
Maven初级培训
Maven初级培训
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Maven初级培训
Maven初级培训
Asp.net core v1.0
Asp.net core v1.0
Asp.net core v1.0
Asp.net core v1.0
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
Docker tutorial
Docker tutorial
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
Ceph customize ap is for programmatic access with python
Ceph customize ap is for programmatic access with python
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Phalcon phpconftw2012
Phalcon phpconftw2012
Phalcon the fastest php framework 阿土伯
Phalcon the fastest php framework 阿土伯
[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] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
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
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
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
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] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園
初探 Kotlin Multiplatform
初探 Kotlin Multiplatform
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
以 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
專案啟動與環境設定
1.
專案啟動與環境設定 范聖佑 Shengyou Fan 臺中科⼤大資⼯工系
(2015/05/30) 適 ⽤用 5.0 版
2.
單元主題 • 學習 Modern
PHP 的網路應⽤用程式開發概念 • 學習 Composer 的操作指令 • 學習透過 Composer 及 laravel-installer 建⽴立全新的 Laravel 5.0 專案 • 了解 Laravel 的專案資料夾結構 • 了解 Laravel 的環境變數設定⽅方式
3.
Modern PHP 元件
與 Composer 相依管理
4.
常⾒見的 PHP 開發架構 瀏覽網⾴頁 使⽤用者端
HTTP 伺服器 網站根⺫⽬目錄 index.php posts.php inc/ libs/ 共⽤用設定檔 應⽤用程式類別 函式庫 A 函式庫 B classes/ bootstrap.php 依 URL 對應 ⾄至各 php 檔案
5.
可能⾯面臨的問題 • 瀏覽的路徑由檔名決定,網址較不好看;且曝露出 副檔名也讓別⼈人⾺馬上就知道伺服器端使⽤用的技術, 容易針對該語⾔言弱點進⾏行攻擊 • 所有的程式碼都放在
Document Root 底下,若 HTTP 伺服器沒有設定好或被破解,有可能讓所有源 始碼及系統設定等機敏資訊曝露出來 • 使⽤用的第三⽅方元件沒有統⼀一的管理機制,有可能發 ⽣生相依缺漏或衝突 • 元件載⼊入的⽅方式沒有統⼀一的策略,每新增⼀一個元件 就得⼿手動修改 bootstrap 檔案,沒有效率且容易出錯
6.
Modern PHP 的解決⽅方式 •
由 PHP-FIG 所推動的通⽤用元件規範,統⼀一了所有第 三⽅方元件的 namespace、autoload 的作法,讓所有的 元件開發者皆能依此遵循;也讓所有的元件使⽤用者 僅需學習⼀一種⽅方式就可以使⽤用任何第三⽅方元件 • 由社群主動推出 Composer 相依管理⼯工具,取代傳 統⼿手動剪貼或 Pear 過時的管理⽅方式,讓所有的開發 者都能透過指令很簡單的取得/載⼊入第三⽅方元件,也 能依同樣邏輯散佈⾃自⼰己的元件 更多詳細原理可參考 Modern PHP 第四章 更詳細的 Composer 說明可參考官網
7.
Modern PHP 的開發架構 瀏覽網⾴頁 使⽤用者端
HTTP 伺服器 index.php public/ 網站根⺫⽬目錄 應⽤用程式進⼊入點 vendor/ 元件 A 元件 B 由 Composer 統⼀一 管理第三⽅方元件 config/ 共⽤用設定檔 應⽤用程式類別 app/ ⾃自⾏行依需求規劃應 ⽤用程式⺫⽬目錄架構 PSR-4 類別對應點
8.
什麼是 Composer? • 早期的
PEAR 套件散佈⽅方式有諸多問題,造成⼤大多 數的 PHP 開發者往往重覆製造輪⼦子且難以共享開發 成果 • 現由 Composer + Packagist 取代,成為 Modern PHP 套件管理與散佈⽅方式 • 本單元將簡介幾個⼯工作坊會⽤用到的指令,讓學員熟 悉幾個必要的 Composer 指令操作
9.
什麼是 Packagist? • Modern
PHP 的元件管理中⼼心,開發者在⾃自⼰己的 Github 上儲放源始碼,並到 Packagist 上登記,就可 以讓其他開發者取得該元件 • 在 Packagist 上⾯面可以查詢到所有開放源始碼的第三 ⽅方元件的版本資訊、元件相依性及安裝/下載數等統 計資訊 • 簡⽽而⾔言之,Packagist 是尋找元件的地⽅方;Composer 是安裝元件的⼯工具
10.
composer [list] • 顯⽰示
composer 所有的指令 • 若在下指令的時候,突然忘了指令的全名時,可以 先⽤用這個指令查詢⼀一下,再重新輸⼊入指令即可 • 範例: $ composer $ composer list
11.
composer {cmd} -‐-‐help
• 部份 composer 指令可接受額外參數,若⼀一時忘記參 數的使⽤用⽅方式時,可先加 --help 於該指令後⽅方,即 顯⽰示該指令的說明⽂文件,待確認⽤用法後再重新輸⼊入 指令 • 範例: $ composer list -‐-‐help $ composer install -‐-‐help $ composer help list $ composer help install
12.
composer self-‐update • Composer
本⾝身更新⾮非常頻繁,除了增加新功能、修 正錯誤外,也在逐步改善效能不彰的問題 • 請務必養成定期更新 Composer 的習慣,若超過 30 天沒有更新,在使⽤用 Composer 指令時,也會有更 新提⽰示 • 範例: $ composer self-‐update $ composer selfupdate
13.
$ [sudo] composer
self-‐update 現在就更新!
14.
建⽴立專案 Skeleton ★ 參考⽂文件:http://laravel.com/docs/5.0/installation
15.
Modern PHP 框架的
Skeleton • 由於 PHP-FIG 組織的成⽴立、Composer 的興起,各 Modern PHP 框架在新版都將框架內的各功能組件獨 ⽴立成 PHP 元件。因此,就算不是使⽤用該框架的開發 者,也能使⽤用該框架的元件另作他途 • ⽽而各框架為了讓其開發者有⼀一個「啟始包」,可以迅 速的架起⼀一個網路應⽤用程式雛型。因此,各框架也將 ⾃自⼰己的框架 Skeleton 包裝成⼀一個 Composer 元件 • 在 Laravel 的世界裡,laravel/laravel 這個 Composer 元件就是 Laravel 框架的 Skeleton。我們可 以透過 composer create-‐project 來啟動⼀一個專案
16.
在 Packagist 上查詢元件資訊
17.
$ composer create-‐project
laravel/laravel -‐-‐prefer-‐dist (⽤用 Composer 建⽴立 Laravel 專案 skeleton)
18.
composer create-‐project • Composer
可以透過 create-project 指令將某個元件 做為建⽴立專案啟始包的⼀一種⽅方式 • ⺫⽬目前各主流框架都是透過這種⽅方式來建⽴立 Skeleton, ⽽而⾮非傳統下載 zip 檔 • 範例: $ composer create-‐project vendor/package {target-‐directory} [version] -‐-‐prefer-‐dist 參數說明: vendor:元件開發者名稱 package:元件名稱 target-‐directory:預定建⽴立的資料夾名稱 version:預定使⽤用的版本 -‐-‐prefer-‐dist:使⽤用 zip 散佈檔⽽而不要 clone 整個源始碼
19.
採⽤用 laravel-‐installer 安裝 •
Composer 在取得套件相依資訊及下載元件時的速度 會受到機器運算能⼒力及網路下載速度影響其運⾏行速 度 • 為了加快產⽣生專案啟始包的速度,Laravel 官⽅方釋出 laravel-‐installer 指令列⼯工具,讓我們可以迅速 的完成 composer create-‐project 所執⾏行的動作 • 在使⽤用之前,需要先安裝 Composer Global Package 才能取⽤用 laravel-‐installer 指令
20.
composer global • ⼤大多數的
Composer 元件是獨⽴立安裝於各別專案 內,但 Composer 元件也可以做為散佈指令列⼯工具 的⼀一種⽅方式。 • 透過將元件以 global 的⽅方式安裝,Composer 會將該 元件安裝在 COMPOSER_HOME ⺫⽬目錄底下,將 COMPOSER_HOME/vendor/bin 加⼊入 PATH 後,即可 全域使⽤用該指令 • 範例: $ composer global reguire vender/package:version
21.
$ composer global
require laravel/installer:"~1.2" (安裝 laravel-‐installer) ★ 套件會安裝⾄至 COMPSER_HOME: Windows 位置:C:UsersUSERNAMEAppDataRoamingComposervendorbin *nix 位置:~/.composer/vendor.bin
22.
設定環境變數 (PATH) • 需要在作業系統裡將
Composer Global Package 的路 徑設定⾄至環境變數內,這樣當我們執⾏行指令時,作 業系統才能知道該去哪裡尋找我們要執⾏行的程式 • 環境變數裡可以設定多個路徑位置,作業系統會依 照填寫路徑的順序逐⼀一去尋找指令程式。若都找不 到才會回傳錯誤 • 各家作業系統設定⽅方式略有不同,請參考各作業系 統環境變數設定的教學。若使⽤用 wagon 的話,在 cmder 啟動時會⾃自動載⼊入搭配預載 Composer 的 Global Package 位置進環境變數內
23.
export PATH=$PATH:~/.composer/vendor/bin (*nix 作業系統在
.bashrc 裡加⼊入 PATH) ★ $PATH 的前後順序是有影響的,請依需求⾃自⾏行調整 @set COMPOSER_HOME=%WAGON_ROOT%composer @set PATH=%COMPOSER_HOME%vendorbin (wagon 則是在 wagoncmdervendorinit.bat 裡設定)
24.
$ laravel new
[project-‐name] (速度++) ★ 官⽅方⽂文件:http://laravel.com/docs/5.0#install-laravel ⽤用 laravel-installer 建⽴立 laravel 專案 skeleton
25.
移除不必要檔案 • 專案內的說明檔可以移除,包括: - readme.md
26.
驗證安裝成功 • 開啟 UwAmp,確認
Document Root 指向 Laravel 專 案的 public,並啟動 Server • 打開瀏覽器:http://localhost:8000 確認 安裝成功
27.
Laravel 資料夾結構 ★ 參考⽂文件:http://laravel.com/docs/5.0/structure
28.
兩個 composer 檔案 根⺫⽬目錄底下有兩個
Composer 檔案:composer.json 及 composer.lock, 是⽤用來設定 Laravel 套件相依性之⽤用
29.
解析 composer.json {
"name": "{vendor}/{package-‐name}", "description": "{package description}", "keywords": ["{keyword1}", "{keyword2}"], "license": "{license}", "type": "project", "require": { "laravel/framework": "5.0.*" }, "require-‐dev": { "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.0 已全⾯面⽀支 援 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.
config config 是 Laravel
放置所有設定檔的資料夾,不論是 Laravel 原⽣生提供 的設定或是其他套件提供的設定檔皆是放置在此
34.
database database 資料夾內有兩個⼦子資料夾。migrations 放置所有資料庫變更紀 錄的操作
class;seeds 則是放置產⽣生測試假資料⽤用的 class
35.
public public 資料夾是 HTTP
伺服器設定 Document Root 的位置,裡⾯面的 index.php 是應⽤用程式進⼊入點,還包括所有公開檔案如 css, robots.txt…
36.
resources resources 資料夾內有三個資料夾,分別放置 views
樣板檔案、lang 多 國語系對照表以及 assets 各種前端素材
37.
vendor vendor 資料夾是所有透過 Composer
安裝的第三⽅方套件,⼀一般⽽而⾔言不 需要更動裡⾯面的內容,在版本控制系統裡也會忽略它
38.
使⽤用git建⽴立第⼀一個存檔點
39.
建⽴立新儲存庫
40.
選定位置後啟始儲存庫
41.
SmartGit 主畫⾯面
42.
commit 變更
43.
操作回應與歷史紀錄
44.
歷史線圖
45.
git ⼯工作流程概念 ★ 圖⽚片來源:http://thkoch2001.github.io/whygitisbetter/images/local-remote.png
46.
.gitignore • 有⼀一些檔案 (⽐比⽅方說
IDE 的設定檔) 我們不想要放到 版本控制系統裡,希望 git 可以⾃自動忽略這些檔案 • 只要把想忽略的規則寫⼊入 .gitignore 裡並 commit 到 儲存庫,⽇日後 git 就會⾃自動忽略這些檔案
47.
存檔點 • 試著把現在已經可以運作的程式碼加⼊入版本控制內 • 流程提醒: -
建⽴立⼀一個新的儲存庫 - working directory > staging area > commit
48.
Laravel 環境設定 ★ 參考⽂文件:http://laravel.com/docs/5.0/configuration#environment-configuration
49.
開發流程與階段 [ development ] 開發⽤用、測試⽤用 [
local ] 本機端開發 [ staging ] 階段性發佈 [ production ] 正式上線 每個開發夥伴本機端 獨⽴立開發,開發完成 後送回版本控制系統 [version control] 原始碼管理 定期從版本控制系統 取出後,進⾏行整合、 單元等測試 專案階段完成後,進 ⾏行階段性發佈,給客 ⼾戶測試、確認 所有階段完成後佈署 ⾄至正式主機,對外公 開使⽤用
50.
什麼是環境設定? • 如上圖,在⼀一個網路應⽤用程式的開發過程中,程式 碼會依照不同的開發階段被部署在不同的機器上 • 常⾒見的實際狀況是,不同開發階段的機器可能會有 不同的設定值,如
DB 名稱、DB 帳號、DB 密碼等 • 在以往的作法裡,可能會將這些設定值寫死在⼀一個 config.php 的檔案內,並在所有的⾴頁⾯面裡載⼊入 • 將設定值寫死在程式碼內並放到版本控制系統裡, 除了會有機敏資訊曝光的⾵風險,在更換機器時也會 需求⼿手動修改這個檔案以適應不同的機器,無法讓 部署流程⾃自動化
51.
Laravel 的環境設定設計 • Laravel
的環境設定設計,是透過在根⺫⽬目錄放置⼀一 個 .env 的設定檔,在設定檔內紀錄所有的設定值。 ⽽而在程式運⾏行時,透過 env('CONFIG_KEY') 載⼊入設 定檔內的設定值 • .env 這個檔案預設就設定在 .gitignore 裡排除。也就 是說,.env 這個檔案不會被送⼊入版本控制系統內, 以免除機敏資訊被公開的⾵風險 • 透過環境變數的設計,讓程式碼可動態適應不同機 器上的不同設定,減少佈署時需⼿手動調整設定的負 擔
52.
如何知道⺫⽬目前的環境? $ php artisan
env 使⽤用 artisan 指令查尋⺫⽬目前的環境
53.
什麼是 artisan? • Laravel
專屬的指令列⼯工具,協助我們完成⽇日常繁瑣 ⼯工作事務,如: • 最佳化 (optimize) 應⽤用程式 - 清快取 (cache)、控制 queue - tinker 模式、maintenance 模式 • 可簡化眾多開發⼯工作及時程,如: - ⾃自動幫忙產⽣生想要的 class skeleton,少打⼀一些鍵盤 - ⾃自動最佳化 Laravel、啟動常⽤用的⼯工具
54.
$ [php] artisan
env 了解⺫⽬目前 Laravel 使⽤用的環境設定
55.
artisan env • 回傳
Laravel ⺫⽬目前所在環境 - artisan 會回傳⺫⽬目前 Laravel ⺫⽬目前的環境變數設定 • 範例: $ php artisan env
56.
如何修改環境設定? 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
57.
設定/產⽣生 APP_KEY • 在環境設定檔
(.env) 裡,有⼀一個 APP_KEY,是 Laravel 在應⽤用程式運作時,⽤用做加密運算使⽤用的 Key 值,其為⼀一組 32 字元⻑⾧長的隨機字串 • 在建⽴立新專案時,Composer 會透過 post-‐create-‐ project-‐cmd 內的指令來產⽣生⼀一組新的 Key,並將 其紀錄在 .env 檔案內 • 產⽣生 APP_KEY 也可以透過 artisan 指令來重新產 ⽣生
58.
$ [php] artisan
key:generate 產⽣生 Laravel 要使⽤用的 APP_KEY 並存在 .env 內
59.
artisan key:generate • 產⽣生
APP_KEY - artisan 會產⽣生⼀一組 32 字元⻑⾧長的隨機字串,並將其 紀錄在 .env 裡 • 範例: $ php artisan key:generate Application key [xxxxxxxxxxxxxxxxxx] set successfully
60.
Shell 常⽤用指令補充
61.
ls [opt] {path} •
List = 列出檔案列表 - [ -a ] 列出所有(包含隱藏)檔案 - [ -l ] 以列表的⽅方式呈現 • 範例: $ ls -‐la
62.
cd {path} • Change
Directory = 切換⼯工作⺫⽬目錄 - { . } 當前⺫⽬目錄 - { .. } 回到上⼀一層⺫⽬目錄 • 範例: $ cd ../ $ cd Projectsblog
63.
mkdir {directory} • Make
Directory = 建⽴立資料夾 • 範例: $ mkdir blog $ mkdir my_project
64.
rm [opt] {file/dir} •
Remove = 刪除檔案 - [ -r ] 刪除資料夾 - [ -f ] 強制刪除 (不詢問) • 範例: $ rm test.txt $ rm -‐r test_folder $ rm -‐rf *.txt
65.
mv {from} {to} •
Move = 移動/重新命名檔案 - { from } 來源路徑 - { to } ⺫⽬目標路徑 • 範例: $ mv test.txt ../ $ mv test.txt test.html
66.
clear • clear =
清空螢幕 - 當指令打太多,想要有個乾淨的螢幕時可以使⽤用的 指令 • 範例: $ clear
67.
⼩小技巧 • ⾃自動補完 - 在輸⼊入指令時,若⼀一時忘記指令的全名時,可按鍵 盤
Tab 鍵數次,若該指令在系統有設定提⽰示時,會 出現對應的提⽰示,再依提⽰示將指令補完即可送出
68.
單元總結 • 在這個單元裡我們學到了些什麼? - 如何透過兩種⽅方式建⽴立新的
Laravel 專案 - 了解 Laravel 的專案資料夾結構 - 如何設定 Laravel 的環境變數 - composer、artisan 及各種開發所謂的指令列⼯工具
69.
Q & A 歡迎提問討論
Download now