Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PSR-1 と PSR-2 を 5分でざっくり理解する

14,898 views

Published on

PHP の PSR-1 と PSR-2 を 5分 でざっくり理解するためのスライド。

Published in: Technology
  • Hi there! I just wanted to share a list of sites that helped me a lot during my studies: .................................................................................................................................... www.EssayWrite.best - Write an essay .................................................................................................................................... www.LitReview.xyz - Summary of books .................................................................................................................................... www.Coursework.best - Online coursework .................................................................................................................................... www.Dissertations.me - proquest dissertations .................................................................................................................................... www.ReMovie.club - Movies reviews .................................................................................................................................... www.WebSlides.vip - Best powerpoint presentations .................................................................................................................................... www.WritePaper.info - Write a research paper .................................................................................................................................... www.EddyHelp.com - Homework help online .................................................................................................................................... www.MyResumeHelp.net - Professional resume writing service .................................................................................................................................. www.HelpWriting.net - Help with writing any papers ......................................................................................................................................... Save so as not to lose
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/39pMlLF ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/39pMlLF ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

PSR-1 と PSR-2 を 5分でざっくり理解する

  1. 1. PSR-1 と PSR-2 を 5分でざっくり理解する 2016-01-13 PHP BLT #2 GMOリサーチ 寺田 渉 Facebook: twitter: github: 寺田渉 @wa_terada waterada
  2. 2. 自己紹介(仕事) - PHP (CakePHP) を主に使って開発 - 継続的インテグレーション - github + git flow で運用 - PHPUnit で カバレッジ 100% - Behat (Selenium Driver 経由の画面テスト) 利用 - vagrant で開発環境構築
  3. 3. 自己紹介(趣味) CakePHP 公式ドキュメント 翻訳
  4. 4. 自己紹介(趣味) ボードゲーム 翻訳
  5. 5. 自己紹介(趣味) TED 翻訳
  6. 6. プログラミング & 翻訳 大好き人間です 自己紹介
  7. 7. CakePHP に issue を立てて、 修正を pull request してみた という記事を Qiita で公開致しました。 コーディングスタイル違反 の指摘が 結構ありまして、今一度、 PSR-1, PSR-2 を復習しておこう と思った次第です。
  8. 8. PSR-1 基本コーディング規約 PSR-2 コーディングスタイル 今日、伝えたいこと! サクッと理解してしまおう。
  9. 9. これから問題を出します。 2つの書き方が出ますので、 1 番が PSR 準拠 だと思ったら 手を挙げてください。 で、今日のルール
  10. 10. PSR-1 基本コーディング規約 まずは
  11. 11. <?php $text = "abc"; どっちが準拠? <? $text = "abc"; 1. 2.
  12. 12. <?php $text = "abc"; どっちが準拠? 1. <?php か <?= のみ可!
  13. 13. どっちが準拠? 1. 2. PHP ファイルは... BOM付き UTF-8 BOM無し UTF-8
  14. 14. どっちが準拠? PHP ファイルは... BOM無しで! 2. BOM無し UTF-8
  15. 15. <?php $aaa = 1; どっちが準拠? <?php $aaa = 1; define('AAA', 1); 1. 2. aaa_config.php <?php define('AAA', 1); aaa_define.php aaa.php
  16. 16. どっちが準拠? 呼んだだけで動く(副作用有)系 と、 宣言系 は一緒のファイルに書いちゃダメ。 1. <?php $aaa = 1; aaa_config.php <?php define('AAA', 1); aaa_define.php
  17. 17. class xAbc extends ... どっちが準拠? class XAbc extends ... 1. 2.
  18. 18. どっちが準拠? クラス は 大文字始まり! class XAbc extends ...2.
  19. 19. public function getValue() どっちが準拠? public function get_value() 1. 2.
  20. 20. どっちが準拠? メソッド は 小文字始まりのキャメル。 public function getValue()1.
  21. 21. const MAX_VALUE = 1; どっちが準拠? const maxValue = 1; 1. 2.
  22. 22. どっちが準拠? 定数 は 大文字! const MAX_VALUE = 1;1.
  23. 23. PSR-2 コーディングスタイル 次に
  24. 24. $a = TRUE; どっちが準拠? $a = true; 1. 2.
  25. 25. どっちが準拠? 予約語 は 小文字で ! $a = true; 2.
  26. 26. public function getValue() どっちが準拠? public function getValue() 1. 2. ^^^^ スペース4つ でインデント ^^^^ TAB でインデント
  27. 27. どっちが準拠? インデント は 半角スペース で! 1. public function getValue() ^^^^ スペース4つ でインデント
  28. 28. }[EOF] どっちが準拠? } [EOF] 1. 2. ファイルの末尾に改行なし ファイルの末尾に改行あり
  29. 29. どっちが準拠? 末尾の改行 必須! } [EOF] 2. ファイルの末尾に改行あり
  30. 30. namespace AaaBbb; use AaaCcc; class Ddd extends ... どっちが準拠? namespace AaaBbb; use AaaCcc; class Ddd extends ... 1. 2. ← 空白行 ← 空白行 ← 空白行
  31. 31. どっちが準拠? namespace、use、class の間には 空白行! 1. namespace AaaBbb; use AaaCcc; class Ddd extends ... ← 空白行 ← 空白行
  32. 32. class Foo { public function get() { どっちが準拠? class Foo { public function get() { 1. 2.
  33. 33. どっちが準拠? クラス, メソッド の { の前では 改行! 1. class Foo { public function get() {
  34. 34. if ($aaa) { どっちが準拠? if ($aaa) { 1. 2.
  35. 35. どっちが準拠? if の { の前では改行 しない! if ($aaa) {2.
  36. 36. $f = function() { どっちが準拠? $f = function() { 1. 2.
  37. 37. どっちが準拠? クロージャ の { の前では改行 しない! $f = function() {2.
  38. 38. $a = function() { return 1; }; どっちが準拠? 1. 2. $a = function() { return 1; };
  39. 39. どっちが準拠? クロージャの { と } が 同じ行ではダメ! 2. $a = function() { return 1; };
  40. 40. public static function is() どっちが準拠? 1. 2. abstract public function is(); static public function is() public abstract function is();
  41. 41. どっちが準拠? この順 で! public static function is()1. abstract public function is();
  42. 42. if ($a) { どっちが準拠? 1. 2. if($a){
  43. 43. どっちが準拠? 空白必須! if ($a) {1.
  44. 44. for ($i = 0 ; $i < 3 ; $i++) { どっちが準拠? 1. 2. for ($i = 0; $i < 3; $i++) {
  45. 45. どっちが準拠? ; の前 に空白 不要! 2. for ($i = 0; $i < 3; $i++) {
  46. 46. $a = function ($a, $b) use ($c) { どっちが準拠? 1. 2. $a = function($a, $b) use($c) {
  47. 47. どっちが準拠? クロージャの function, use の前後 に 空白 必須! $a = function ($a, $b) use ($c) { 1.
  48. 48. class A extends B implements C, D { どっちが準拠? 1. class A extends B implements C, D { 2.
  49. 49. どっちが準拠? class, extends, implements は 絶対に 同じ行 ! interface を改行で書くなら1行1つ! (※改行せずに全てを1行にしてもいい。) class A extends B implements C, D { 1.
  50. 50. public function abc( $a, $b) { どっちが準拠? 1. public function abc( $a, $b ) { 2.
  51. 51. どっちが準拠? public function abc( $a, $b ) { 2. 複数行にするなら 1行につき1引数まで!
  52. 52. $array = array_map( function ($arg) use ($var) { // ... }, $array ); どっちが準拠?1. $array = array_map(function ($arg) use ($var) { // ... }, $array); 2.
  53. 53. どっちが準拠? クロージャは 必ず改行することになる ので 上記のようなパターン になる! $array = array_map( function ($arg) use ($var) { // ... }, $array ); 1.
  54. 54. switch ($expr) { case 1: echo 'A'; // no break case 2: case 3: echo 'B'; break; } どっちが準拠? 1. 2. switch ($expr) { case 1: echo 'A'; case 2: case 3: echo 'B'; break; }
  55. 55. どっちが準拠? 空でないcase でわざと breakしない なら その旨の コメント必須 ! switch ($expr) { case 1: echo 'A'; // no break case 2: case 3: echo 'B'; break; } 1.
  56. 56. 以上、ご静聴ありがとうございました。 <?php か <?= のみ BOM無し UTF-8 副作用有無でファイル分ける 大小文字: クラス名 大小文字: メソッド名 大小文字: 定数名 大小文字: true/false/null インデント ファイル末尾の改行 namespace 周りの空行 {}の改行: クラス/メソッド Facebook: twitter: github: 寺田渉 @wa_terada waterada {}の改行: if {}の改行: クロージャ { {}の改行: クロージャ } static/abstractの位置 前後の空白: if 前後の空白: for 前後の空白: クロージャ 複数行: クラス 複数行: 引数 複数行: 引数でクロージャ switch でコメント必須
  57. 57. 参考情報: • 承諾された PSR が置いてある公式github • PSR-1 (英語) • PSR-2 (英語) • 上記を翻訳してくれているサイト (infinite loop様の技術ブログ) • PSR-1 (日本語) • PSR-2 (日本語)

×