Upload
shengyou-fan
View
7.404
Download
18
Embed Size (px)
Citation preview
跟著 Laravel'5.1 一起 成為更好的 PHP 開發者
5.1
PHPConf'Taiwan'2015
2015/10/9
名 'Shengyou'Fan
范聖佑@shengyou http://shengyoufan.com https://www.facebook.com/shengyoufan
得寬科技 研究員 Laravel 台灣 傳教士 Laravel Dojo 作者
Questions/ˈkwɛs'tʃən/
常見疑問
(Frequency)
性http://nos.twnsnd.co/image/108924593125
技術討論區最常出現的
三大月經文…
PHPConf'Taiwan'2015
得能著
PHPConf'Taiwan'2015
性http://www.geocaching.com/geocache/GC5BJ10_the-matrix
PHPConf'Taiwan'2015
TL DR不是要來引戰的,不過…
;
PHPConf'Taiwan'2015
得能著
性http://w3techs.com/technologies/overview/programming_language/all
(PHP 嗎 )
PHP
PHPConf'Taiwan'2015
性 http://matrix.wikia.com/wiki/Rescue_of_Morpheus
( 我真 很 ^.< )
PHPConf'Taiwan'2015
(2015 )
性 http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/
Laravel
History/ˈhɪs'tri/
血淚史
性http://nos.twnsnd.co/image/101262858376
PHPConf'Taiwan'2015
(起 ) 友
們
Laravel
年
啊 更…
Aug. 2013 ~
Laravel
Symfony
Phalcon
已 可
次
Jun. 2013
MVC 的
Ruby on Rails
ASP.NET MVC
Node.js, Sails.js
Python, Django
Java, Play
成愛下 您
Feb. 2010
Codeigniter
MVC 的
得來的
Oct. 2009
Pure PHP
得來 .php
⼤大享
~ Mar. 2009
Why Laravel?為何選擇 Laravel?
PHPConf'Taiwan'2015
Laravel 5.1• 有⼿手 年 Laravel 5.1 性
- Feature - 能- Standard - 對- Workflow -
- Ecosystem -
(Language)
Feature/ˈfi'tʃər/'
語法特色
(Language)
性https://www.flickr.com/
PHPConf'Taiwan'2015
才 的• PHP 5.4 Sep. 2015 以學 活 PHP
PHP 5.5
PHP 時與 經性http://php.net/supported-versions.php
PHPConf'Taiwan'2015
• PHP 能 性- PHP 5.3 - Namespaces
- PHP 5.4 - []但Traits但Built-in web server
- PHP 5.5 - Generators
- PHP 5.6 - Variadic functions via …但phpdbg
- PHP 7 - Performance++
同
PHPConf'Taiwan'2015
( )
PHPUnit 5.0 性https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-5.0.0
PHPUnit 性https://twitter.com/JeroenDeDauw/status/649825871533109248
PHPUnit 5.0 時與 PHP 5.6
PHPConf'Taiwan'2015
Laravel New PHP{'
''"name":'"laravel/laravel",'
''/*'全'*/'
''"require":'{'
''''"php":'">=5.5.9",'
''''/*'全'*/'
''},'
''/*'全'*/'
}
Laravel 5.1 composer.json
性http://laravel.com/docs/5.1/releases#laravel-5.1
Homestead PHP 7
性http://laravel.com/docs/5.1/homestead#upgrading-to-php-7
性https://laravel-news.com/2015/10/homestead-now-with-php-7-support/
PHPConf'Taiwan'2015
Laravel PHP 5.3
Laravel 5.0 Application Code Namespaces
PHPConf'Taiwan'2015
Laravel PHP 5.4
Laravel 性http://laravel.com/docs/5.1/eloquent#soft-deleting
PHPConf'Taiwan'2015
Laravel PHP 5.5
都 github 來https://github.com/laravel/laravel/blob/v5.0.22/config/app.php
都 github 來https://github.com/laravel/laravel/blob/v5.1.11/config/app.php
Laravel 5.0 providers 喜 Laravel 5.1 providers 喜
PHPConf'Taiwan'2015
Laravel Design Pattern• MVC (Model - View - Controller)
• Dependency Injection
• IoC (Inverse of Control) Container
• …
想在 Yish 性https://laraveltw.hackpad.com/PHP-rDP6MbkvsH7
PHPConf'Taiwan'2015
能• PHP 5.5.9 能- PHP 5.3 - Namespaces
- PHP 5.4 - Trait但Square bracket array syntax
- PHP 5.5 - Class name resolution via ::class
• Design Pattern 候- MVC
- Dependency Injection
- IoC Container
Feature'Laravel' 的'PHP但 能 想 然得
語法特色
(Language)
性https://www.flickr.com/
Standard/ˈstæn'dərd/'
業界標準
性http://nos.twnsnd.co/image/96545399188
PHPConf'Taiwan'2015
Laravel Illuminate• PHP 多 ⼦子 2009
php|tek 最 PHP-FIG 裡得 PHP 三道 之
• Laravel 讓 PHP-FIG 活 ⽣生最為 Illuminate 樂 Starter Package
Composer 前
$'composer'create[project'laravel/laravel'[[prefer[dist
( Composer 最 Laravel skeleton)
PHPConf'Taiwan'2015
Laravel Autoload
{'
''''"name":'"laravel/laravel",'
''''/*'全'*/'
''''"autoload":'{'
''''''''"classmap":'['
''''''''''''"database"'
''''''''],'
''''''''"psr[4":'{'
''''''''''''"App\\":'"app/"'
''''''''}'
''''},'
''''/*'全'*/'
}
Laravel 5.1 composer.json
PHPConf'Taiwan'2015
Laravel Style Guide• ⽤用 能 會 性- 也 PHP 得來
也 得來 性 但 也但…
• Laravel 性- Laravel 4 別把 PSR-1 能 會- Laravel 5.1 PSR-2 別把 對
性http://laravel.com/docs/5.1/contributions#coding-style
PHPConf'Taiwan'2015
到• 到 Coding Style 網 ⼒力 會
對- squizlabs/php_codesniffer
- fabpot/php-cs-fixer
⽇日 得來 對 我 性http://oomusou.io/2015/09/23/php-coding-standard/
PHPConf'Taiwan'2015
對• Illuminate 愛 然得 (Laravel 4.0)
• PSR-4 Autoload (Laravel 5.0)
• 得來 PSR - 1 能 之 (Laravel 4.2)
• 得來 PSR - 2 能 之 (Laravel 5.1)
(Symfony Component)
(Laravel 4.2 ⻑⾧長 PSR-0 Autoload PSR-0 活 )
Standard別把 對 也 得來 ⾼高
業界標準
性http://nos.twnsnd.co/image/96545399188
Workflow/ˈwɜrkˌfloʊ/
工作流程
性https://www.flickr.com/
PHPConf'Taiwan'2015
還⼦子
⽇日最 今點和將
如
如
放可事 PHP
如 得來將
發
發 得來開發 ⽇日也發 得來事 如發 也要
發 將
公
公但 但
得得來 公將
PHPConf'Taiwan'2015
不
Mac Windows Linux
回 ⼼心但 裡
PHPConf'Taiwan'2015
Laravel VMs
Mac Windows Linux
今 ⼼心
Homestead Homestead Homestead
PHPConf'Taiwan'2015
如 不• Composer create[project 了…
• A 也 要 B 性- 三道 MUST
- 錯 家
- 也了 所 得 家
• API
PHPConf'Taiwan'2015
Laravel Composer• 新 Laravel 也 Package 性
- laravel/installer
- laravel/socialite
- laravel/cashier
- laravel/spark-installer (alpha)
- laravel/lumen
PHPConf'Taiwan'2015
如 不• 7�AB間 性- 新 Bootstrap但Font Awesome但jQuery…
- CSS 也 LESS但SASS…
- JS 也 CoffeeScript但TypeScript但ES6…
- 但 但 現加 …
- 公 Cache …
我主 也 PHP…
PHPConf'Taiwan'2015
Laravel Elixir
Elixir 知
gulpfile.js
var'elixir'='require('laravel[elixir');'
elixir(function(mix)'{'
''''mix.functions();'
});
package.json
{'
''''"private":'true,'
''''"devDependencies":'{'
''''''"gulp":'"^3.8.8"'
''''},'
''''"dependencies":'{'
''''''"laravel[elixir":'"^3.0.0",'
''''''"bootstrap[sass":'"^3.0.0"'
''''}'
}
Assets
如 但現加
PHPConf'Taiwan'2015
發 出• 發 的 也發• 發 得 性- Unit Testing
- Functional Testing
- Acceptance Testing
• 發 出 性- TDD
- BDD
PHPConf'Taiwan'2015
Laravel Testing{'
''''"name":'"laravel/laravel",'
' "require[dev":'{'
' ' "fzaninotto/faker":'"~1.4",'
' ' "mockery/mockery":'"0.9.*",'
' ' "phpunit/phpunit":'"~4.0",'
' ' "phpspec/phpspec":'"~2.1"'
' },'
'''/*'全'*/'
}
Laravel 5.1 composer.json
var'elixir'='require('laravel[elixir');'
elixir(function(mix)'{'
''''mix.phpUnit();'
});
Laravel 5.1 gulpfile.js
$'gulp'tdd
public'function'testTddExample()'
{'
'''/*'也發 '*/'
}
PHPConf'Taiwan'2015
發 機做…
Laravel Homestead ⼩小 $ gulp tdd 我 性http://oomusou.io/2015/09/27/tdd-gulp-homestead/
$ gulp tdd ⾃自⾒見看 麼 我 性http://yish.im/2015/09/24/AutoTest-in-PHP/
都 ⼜又 發 性http://oomusou.io/2015/09/20/tdd-jaceju/ http://blog.winwu.today/2015/09/php-tdd.html https://goo.gl/ejELDG http://chan15.blogspot.tw/2015/09/php-mockery.html https://goo.gl/unrA2X http://yish.im/2015/09/24/AutoTest-in-PHP/ http://blog.tinymao.com/2015/09/24/php-tdd/
PHPConf'Taiwan'2015
公• ⼈人 回 / 因 因 公 因因 實
• git但Composer但Gulp ⽇日中種…
• ⽇日 公 但 過但
⾛走 DevOps性世 對 就性http://www.slideshare.net/warfan/devops-53161280
PHPConf'Taiwan'2015
Laravel Automation
Local
$'envoy'run'deploy
Server'3Server'1 Server'2
Cloud'Servers
@servers(['web''=>''192.168.1.1'])'
@task('deploy','['on''=>''web'])'
''''cd'site'
''''git'pull'origin'{{'$branch'}}'
''''php'artisan'migrate'
@endtask
Envoy.blade.php
PHPConf'Taiwan'2015
什如
如 $'gulp'tdd
發 出
$'envoy'run
公
PHPConf'Taiwan'2015 感 - iNDIEVOX 地 過⼆二
Ecosystem/ˈɛk'oʊˌsɪs'təm'/
生態圈
性http://picography.co/photos/dark-forest/
- 某 rails 前輩
我選的不是語言、不是框架,
而是一個生態圈。
PHPConf'Taiwan'2015
上• ( 再但API )
• LTS 本 (5.1 Laravel LTS)
• ⽇日 (homestead, forge, envoyer)
• 本 (socialite, casher, spark, lumen…)
• (laravel.io)
• Podcast (The Laravel Podcast)
• 我 (laracast.com)
• Laracon US但Laracon EU
PHPConf'Taiwan'2015 ⽚片性http://packalyst.com/
PHPConf'Taiwan'2015 Socialite ⽚片性 http://socialiteproviders.github.io/
Laravel 台灣致力在台灣推廣 Laravel Framework 並建立專屬的正體中文社群,目前已完成官方文件的翻譯,每月有三次固定的聚會活動。
https://goo.gl/h2m5Tq'
Guys!'We'did'a'great'job!
PHPConf'Taiwan'2015 三點 性 https://www.facebook.com/groups/laravel.tw/
Facebook 三點
PHPConf'Taiwan'2015
PHP ⼼心 Slack
性https://phptw.slack.com/ 性http://join-slack.phptw.org/
2015 COSCUP WorkshopLaravel Installfest
TDD/BDD 工作坊Laravel 台灣在 2015 年 9 月中首次舉辦以 TDD/BDD 為主題的測試工作坊,開放 25 位學員參與,由 大澤木小鐵 主講如何使用 PHP 應用 TDD 及 BDD 做開發。
⼜又後
2015/09/19 - 20 工作坊活動現場
2015/09/19 - 20 工作坊活動現場
PHPConf'Taiwan'2015
10 三道• Laravel ⼼心 ⼼心- 性2015/10/25 ( ) PM 1:00 ~ 5:00
- 性Dreamseeds
• 性- 三道- 性Laravel Tracy 快 事 做⾯面- 這
就 去 很 三點
Recca Tsai
(⼼心 理沒每 可 262 )
PHP 也有 Day台北的 PHP 開發者聚會,每月固定會有一次的分享講座,邀請有經驗的開發者前來分享開發經驗。
https://goo.gl/rzEFuE'
Ricky!'We'love'you~
PHP Day #19 PHP 頭當 ⼀一 然得
LaradinerPHP/Laravel 的讀書會,目前每月固定舉辦兩次,歡迎對 PHP/Laravel 有興趣的朋友參與。
https://goo.gl/AmiWG7
Sam,'you'are'awesome!
Laradiner #15 From Apprentice To Artisan 道⼰己
PHPConf'Taiwan'2015
Modern PHP ⼰己(Laradiner ⼰己在 )
https://goo.gl/LUc2IG'
三道 好 ⼰己 分個 ⼰己 作
hackpad ⽚片
PHPConf'Taiwan'2015
From Apprentice To Artisan ⼰己
(Laradiner ⼰己在 )
https://goo.gl/FF9Qbc'
三道 好 ⼰己 分個 ⼰己
很 Facebook 三點 Events
PHPConf'Taiwan'2015
來
性 http://www.laravel-dojo.com/opensource/wagon
wagon - Laravel
PHPConf'Taiwan'2015 天 性 http://www.laravel-dojo.com/showcases
PHPConf'Taiwan'2015
Laravel 2014/12@��)�"
2015/05?�4�)�"
2015/07�$ :5�
我⾏行 性 http://www.laravel-dojo.com/workshops
PHPConf'Taiwan'2015
11/14 Laravel
去 性http://class.ithome.com.tw/laravel/
PHPConf'Taiwan'2015
Laravel You#0�%��� �!���,���9
Laravel ';12
PHP '; Slack -
->�12=�
Laravel �
Ecosystem第 動⽅方 於 歡定
生態圈
性http://picography.co/photos/dark-forest/
Conclusions/kənˈklu'ʒən/
回顧與總結
(Recap)
PHPConf'Taiwan'2015
⼿手• 年 得能著 ��<�
• 想+36• 年 Laravel (5.1)
- &��� - ��.* - ���/ - �(8
給 Laravel 5.1 一個機會
讓它陪著您一起成長!
PHPConf'Taiwan'2015
From apprentice to artisan
性http://www.theforce.net 真 太是⽂文 只得
放膽成為藝術家!
and become an artisanCode Happy!
PHPConf'Taiwan'2015
Q & A相 這