[community open camp] 給 php 開發者的 vs code 指南
TRANSCRIPT
PHP Visual Studio Code
2016/08/27
他(Shengyou(Fan
Community(Open(Camp
范聖佑@shengyou http://shengyoufan.com https://www.facebook.com/shengyoufan
得寬科技 研究員 Laravel 台灣 傳教士 Laravel 道場 作者
PHP Visual Studio Code Microsoft Community Open Camp
Laravel http://www.laravelCdojo.com/
PHP Visual Studio Code Microsoft Community Open Camp
Laravel 中 ⽣生
2016.03
多2016.01
在2015.07
下2014.12
2015.05
多2015.12
多2016.02
PHP Visual Studio Code Microsoft Community Open Camp
Laravel 中 ⽣生
2016.07
快 ⼤大
2016.08
和分多
事
以能 道
以能 道
…
道
…
道
(′ ‵ )
…
以能 過
����
( ⼀一 )
以能 …
點 點⽤用 點
PHP Visual Studio Code Microsoft Community Open Camp
⼀一 以能• PHP
- (Syntax Highlight)
- ⼀一 (Code Block/Snippets)
-
- 不- 會 你
•
- 以-
PHP Visual Studio Code Microsoft Community Open Camp
你
Editor IDE
• Microsoft 以能• Electron • 點 你• ⽤用 點 點• 微 個 要
也 v1.4
https://code.visualstudio.com/
Visual Studio Code
PHP Visual Studio Code Microsoft Community Open Camp
• 2016/05 開- Visual Studio Code
- wagon + VS Code 時 Windows PHP/Laravel 就
- wagon + VS Code
PHP Visual Studio Code Microsoft Community Open Camp
• 國• 新• wagon 可•
PHP Visual Studio Code Microsoft Community Open Camp
2 國• 吧 Ctrl + P
• 有 Ctrl + Shift + P
…
PHP Visual Studio Code Microsoft Community Open Camp
吧吧 國
Ctrl + P
PHP Visual Studio Code Microsoft Community Open Camp
有國
Ctrl + Shift + P
PHP Visual Studio Code Microsoft Community Open Camp
國
PHP Visual Studio Code Microsoft Community Open Camp
國• 國
- https://code.visualstudio.com/docs/customization/keybindings
PHP Visual Studio Code Microsoft Community Open Camp
新 VS Code• 個
- VS Code 對•
- ⽤用 新•
- 沒 新- .vscode 來 這
PHP Visual Studio Code Microsoft Community Open Camp
以能 吧
新
PHP Visual Studio Code Microsoft Community Open Camp
了吧• 吧 了吧 Ctrl + S
{(((((//(Controls(auto(save(of(dirty(files.(Accepted(values:(("off",("afterDelay",("onFocusChange".(If(set(to("afterDelay"(you(can(configure(the(delay(in("files.autoSaveDelay".((((("files.autoSave":("off",(
((((//(Controls(the(delay(in(ms(after(which(a(dirty(file(is(saved(automatically.(Only(applies(when("files.autoSave"(is(set(to("afterDelay"((((("files.autoSaveDelay":(1000(}
onFocusChange
PHP Visual Studio Code Microsoft Community Open Camp
以能 成• 出 麼 以能 ⼈人
{(((((//(Zoom(the(font(of(the(editor(when(using(mouse(wheel(and(holding(Ctrl((((("editor.mouseWheelZoom":(false,(} true
VS Code 成 Ctrl + + Ctrl + -
PHP Visual Studio Code Microsoft Community Open Camp
⼀一 成• 事
{(((((//(Controls(whether(the(editor(should(render(indent(guides((((("editor.renderIndentGuides":(false,(} true
PHP Visual Studio Code Microsoft Community Open Camp
VS Code
http://hz.edushi.com/bang/info/4-109-n3038834.html
事
VS Code wagon
PHP Visual Studio Code Microsoft Community Open Camp
git.exe php.exe
PHP Visual Studio Code Microsoft Community Open Camp
git.exe php.exe
• Laravel 中 ⽣生 只• Cmder點UwAmp點git點Composer
你• 就 點port • 點 點 ⾃自成 事• 就 事
也 v1.3.0
http://www.laravel-dojo.com/opensource/wagon
wagon
PHP Visual Studio Code Microsoft Community Open Camp
就 PATH
PHP Visual Studio Code Microsoft Community Open Camp
• VS Code $SHELL %COMSPEC% Console Git Bash
新 Cmd
{(//(Integrated(Terminal(
((((//(The(path(of(the(shell(that(the(terminal(uses(on(Windows.(((("terminal.integrated.shell.windows":("C:\\Windo...\cmd.exe"(}
wagon\\git\\bin\\bash.exe
PHP Visual Studio Code Microsoft Community Open Camp
Terminal
Ctrl + `
PHP Visual Studio Code Microsoft Community Open Camp
⼀一
PHP Visual Studio Code Microsoft Community Open Camp
https://marketplace.visualstudio.com/VSCode
VS Code PHP 你
PHP Visual Studio Code Microsoft Community Open Camp
VS Code PHP 微• VS Code
•
• ⼀一•
•
PHP Visual Studio Code Microsoft Community Open Camp
微 PHP ⼀一
PHP Visual Studio Code Microsoft Community Open Camp
⼀一
微 code block (snippets) ⼀一
PHP Visual Studio Code Microsoft Community Open Camp
PHP 的
PHP Visual Studio Code Microsoft Community Open Camp
事
PHP Visual Studio Code Microsoft Community Open Camp
• 不• 不 了吧
PHP 不
{(//(PHP(
((((//(Whether(php(validation(is(enabled(or(not.((((("php.validate.enable":(true,(
((((//(Points(to(the(php(executable.((((("php.validate.executablePath":(null,(
((((//(Whether(the(linter(is(run(on(save(or(on(type.((((("php.validate.run":("onSave"(} onType
PHP Visual Studio Code Microsoft Community Open Camp
Problem
⽤用吧
PHP Visual Studio Code Microsoft Community Open Camp
PHP • 以能
- EditorConfig
- Composer
- PHP Symbols
- Crane
- Search Docsets
PHP Visual Studio Code Microsoft Community Open Camp
EditorConfig for VS Code;(.editorconfig(
root(=(true(
[*](charset(=(utfC8(indent_size(=(4(indent_style(=(space(end_of_line(=(lf(insert_final_newline(=(true(trim_trailing_whitespace(=(true(
[package.json](indent_size(=(2(trim_trailing_whitespace(=(true(
[*.md](trim_trailing_whitespace(=(false
PHP Visual Studio Code Microsoft Community Open Camp
Composer• PATH PHP interpreter
• Composer 是{(//(Composer(Dependency(Manager(for(PHP(Configuration(
((((//(Is(composer(enabled.((((("composer.enabled":(true,(
((((//(Path(to(the(composer(executable.((((("composer.executablePath":(null(}
"wagon\\composer\\composer.bat"
PHP Visual Studio Code Microsoft Community Open Camp
Composer
PHP Visual Studio Code Microsoft Community Open Camp
Crane
PHP Visual Studio Code Microsoft Community Open Camp
PHP Symbols
PHP Visual Studio Code Microsoft Community Open Camp
Search Docsets
Shift + F1
Zeal https://zealdocs.org/
PHP Visual Studio Code Microsoft Community Open Camp
Laravel ⼀一• Laravel ⼀一 都
- Laravel 5 Snippets
- Laravel Blade Snippets
說 Winnie Lin 事
PHP Visual Studio Code Microsoft Community Open Camp
Laravel 5 Snippets
PHP Visual Studio Code Microsoft Community Open Camp
Laravel Blade Snippets
PHP Visual Studio Code Microsoft Community Open Camp
PHP • 上情 發
- echo (!) + exit
- print_r() + exit
- var_dump() + exit
• Laravel 會
- dd() ( Symfony VarDumper)
PHP Visual Studio Code Microsoft Community Open Camp
recca0120/laravelCtracy
• Laravel Recca 讓 Debug
• Nette Framework Tracy
• Laravel
•
- Exception 好- 的 會- 以能 URL Handler
- artisan (Laravel 的) https://github.com/recca0120/laravel-tracy
PHP Visual Studio Code Microsoft Community Open Camp
Package• Composer
• 以能 composer.json
$(composer(require(recca0120/laravelCtracy(
{((((("require":({((((((((("recca0120/laravelCtracy":("^1.7"(((((}(}
$(composer(update
PHP Visual Studio Code Microsoft Community Open Camp
//(index.php(<?php(
require(__DIR__(.('/vendor/autoload.php';(
use(Recca0120\LaravelTracy\Tracy;(
Tracy::instance();
PHP Visual Studio Code Microsoft Community Open Camp
Laravel• Service Provider
• 也 config
//(config/app.php('providers'(=>([(((((//(...(((((Recca0120\LaravelTracy\ServiceProvider::class,(((((//(...(];
$([php](artisan(vendor:publish(\((CCprovider="Recca0120\LaravelTracy\ServiceProvider"
PHP Visual Studio Code Microsoft Community Open Camp
Laravel
PHP Visual Studio Code Microsoft Community Open Camp
editor
//(config/tracy.php(<?php(
return([((((('enabled'(=>(true,((((('showBar'(=>(true,((((('accepts'(=>([((((((((('text/html',(((((],((((('editor'(=>('vscode://open?url=file://%file&line=%line',((((('panels'(=>([((((((((('{name}'(=>({boolean},(((((],(];
PHP Visual Studio Code Microsoft Community Open Camp
VS Code URL Handlerhttps://github.com/shengyou/vscodeChandler
PHP Visual Studio Code Microsoft Community Open Camp
點 吧 國 事
PHP Visual Studio Code Microsoft Community Open Camp
PHP 到 道• 不 Debug PHP
• PHP Debug VS Code 微 到 會
PHP Visual Studio Code Microsoft Community Open Camp
XDebug • UwAmp XDebug Remote Auto Start
PHP Visual Studio Code Microsoft Community Open Camp
XDebug • UwAmp XDebug Remote Enable
PHP Visual Studio Code Microsoft Community Open Camp
launch.json{((((("version":("0.2.0",((((("configurations":([((((((((({((((((((((((("name":("Listen(for(XDebug",((((((((((((("type":("php",((((((((((((("request":("launch",((((((((((((("port":(9000(((((((((},((((((((({((((((((((((("name":("Launch(currently(open(script",((((((((((((("type":("php",((((((((((((("request":("launch",((((((((((((("program":("${file}",((((((((((((("cwd":("${fileDirname}",((((((((((((("port":(9000(((((((((}(((((](}
PHP Visual Studio Code Microsoft Community Open Camp
PHP Visual Studio Code Microsoft Community Open Camp
Visual Studio Code Settings Sync
• gist 吧了
https://github.com/shengyou/vscodeChandler
vscode-handler 道 事
Q & A