Submit Search
Upload
PSR-1 と PSR-2 を5分でざっくり理解する
•
7 likes
•
17,771 views
Wataru Terada
Follow
PHP の PSR-1 と PSR-2 を 5分 でざっくり理解するためのスライド。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 57
Download Now
Download to read offline
Recommended
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
例外設計における大罪
例外設計における大罪
Takuto Wada
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
Humble Object Patternな話
Humble Object Patternな話
Hiroto Imoto
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
More Related Content
What's hot
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
目grep入門 +解説
目grep入門 +解説
murachue
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
C#でわかる こわくないMonad
C#でわかる こわくないMonad
Kouji Matsui
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
What's hot
(20)
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
TLS, HTTP/2演習
TLS, HTTP/2演習
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
暗号技術の実装と数学
暗号技術の実装と数学
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
冬のLock free祭り safe
冬のLock free祭り safe
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
目grep入門 +解説
目grep入門 +解説
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Redisの特徴と活用方法について
Redisの特徴と活用方法について
C#でわかる こわくないMonad
C#でわかる こわくないMonad
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
Viewers also liked
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
Yusuke Ando
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
8a1
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Masashi Shinbara
traitを使って楽したい話
traitを使って楽したい話
infinite_loop
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
龍治 常盤木
Laravelのeloquent だけ入れた話
Laravelのeloquent だけ入れた話
Masataka Kono
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
第7回こども病院移転計画調査委員会資料
第7回こども病院移転計画調査委員会資料
f_kodomo
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
Natsumi Oki
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Fumiya Sakai
Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話
sters
DMMの闇に触れた話
DMMの闇に触れた話
Katsunori Tanaka
Trait とは? その使い道を考えてみる
Trait とは? その使い道を考えてみる
Takuya Fujimura
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
コンテンツ作りの三原則
コンテンツ作りの三原則
INFOBAHN.inc(株式会社インフォバーン)
Viewers also liked
(19)
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
Play jjug2012spring
Play jjug2012spring
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
traitを使って楽したい話
traitを使って楽したい話
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
Laravelのeloquent だけ入れた話
Laravelのeloquent だけ入れた話
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
第7回こども病院移転計画調査委員会資料
第7回こども病院移転計画調査委員会資料
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話
DMMの闇に触れた話
DMMの闇に触れた話
Trait とは? その使い道を考えてみる
Trait とは? その使い道を考えてみる
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
コンテンツ作りの三原則
コンテンツ作りの三原則
Similar to PSR-1 と PSR-2 を5分でざっくり理解する
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Wataru Terada
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
PHP language update 201211
PHP language update 201211
Moriyoshi Koizumi
JavaScript非同期処理 入門
JavaScript非同期処理 入門
Ishibashi Ryosuke
Hack/HHVM 入門
Hack/HHVM 入門
y-uti
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
noldor
普通のプログラミング言語R
普通のプログラミング言語R
Shuyo Nakatani
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
Gaucheでマクロを書こう
Gaucheでマクロを書こう
Hideaki Nagamine
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
CHY72
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
Cakephp api
Cakephp api
Eiji Yokota
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakada
Junpei Nakada
symfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワーク
Katsuhiro Ogawa
Rubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
Kouhei Sutou
Similar to PSR-1 と PSR-2 を5分でざっくり理解する
(20)
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHP language update 201211
PHP language update 201211
JavaScript非同期処理 入門
JavaScript非同期処理 入門
Hack/HHVM 入門
Hack/HHVM 入門
PHPの今とこれから2021
PHPの今とこれから2021
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
普通のプログラミング言語R
普通のプログラミング言語R
PHPの今とこれから2019
PHPの今とこれから2019
PHPの今とこれから 2013
PHPの今とこれから 2013
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Gaucheでマクロを書こう
Gaucheでマクロを書こう
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Cakephp api
Cakephp api
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakada
symfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワーク
Rubinius Under a Microscope
Rubinius Under a Microscope
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
More from Wataru Terada
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
Wataru Terada
PHP選んで良かったこと
PHP選んで良かったこと
Wataru Terada
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
Wataru Terada
PHP基本的関数QUIZ
PHP基本的関数QUIZ
Wataru Terada
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
Wataru Terada
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
Wataru Terada
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
Wataru Terada
単体テストで工数を短縮する
単体テストで工数を短縮する
Wataru Terada
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
Wataru Terada
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
Wataru Terada
More from Wataru Terada
(11)
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
PHP選んで良かったこと
PHP選んで良かったこと
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
PHP基本的関数QUIZ
PHP基本的関数QUIZ
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
単体テストで工数を短縮する
単体テストで工数を短縮する
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
Recently uploaded
2024 03 CTEA
2024 03 CTEA
arts yokohama
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
Matsushita Laboratory
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
Shumpei Kishi
2024 04 minnanoito
2024 04 minnanoito
arts yokohama
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
ssuser370dd7
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
Sadao Tokuyama
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
Tetsuya Nihonmatsu
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
arts yokohama
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
arts yokohama
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
ssuser539845
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
Ayachika Kitazaki
Recently uploaded
(12)
2024 03 CTEA
2024 03 CTEA
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
2024 04 minnanoito
2024 04 minnanoito
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
PSR-1 と PSR-2 を5分でざっくり理解する
1.
PSR-1 と PSR-2
を 5分でざっくり理解する 2016-01-13 PHP BLT #2 GMOリサーチ 寺田 渉 Facebook: twitter: github: 寺田渉 @wa_terada waterada
2.
自己紹介(仕事) - PHP (CakePHP)
を主に使って開発 - 継続的インテグレーション - github + git flow で運用 - PHPUnit で カバレッジ 100% - Behat (Selenium Driver 経由の画面テスト) 利用 - vagrant で開発環境構築
3.
自己紹介(趣味) CakePHP 公式ドキュメント 翻訳
4.
自己紹介(趣味) ボードゲーム 翻訳
5.
自己紹介(趣味) TED 翻訳
6.
プログラミング & 翻訳 大好き人間です 自己紹介
7.
CakePHP に issue
を立てて、 修正を pull request してみた という記事を Qiita で公開致しました。 コーディングスタイル違反 の指摘が 結構ありまして、今一度、 PSR-1, PSR-2 を復習しておこう と思った次第です。
8.
PSR-1 基本コーディング規約 PSR-2 コーディングスタイル 今日、伝えたいこと! サクッと理解してしまおう。
9.
これから問題を出します。 2つの書き方が出ますので、 1 番が PSR
準拠 だと思ったら 手を挙げてください。 で、今日のルール
10.
PSR-1 基本コーディング規約 まずは
11.
<?php $text = "abc"; どっちが準拠? <? $text
= "abc"; 1. 2.
12.
<?php $text = "abc"; どっちが準拠? 1. <?php
か <?= のみ可!
13.
どっちが準拠? 1. 2. PHP ファイルは... BOM付き UTF-8 BOM無し
UTF-8
14.
どっちが準拠? PHP ファイルは... BOM無しで! 2. BOM無し
UTF-8
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.
どっちが準拠? 呼んだだけで動く(副作用有)系 と、 宣言系 は一緒のファイルに書いちゃダメ。 1. <?php $aaa
= 1; aaa_config.php <?php define('AAA', 1); aaa_define.php
17.
class xAbc extends
... どっちが準拠? class XAbc extends ... 1. 2.
18.
どっちが準拠? クラス は 大文字始まり! class
XAbc extends ...2.
19.
public function getValue() どっちが準拠? public
function get_value() 1. 2.
20.
どっちが準拠? メソッド は 小文字始まりのキャメル。 public
function getValue()1.
21.
const MAX_VALUE =
1; どっちが準拠? const maxValue = 1; 1. 2.
22.
どっちが準拠? 定数 は 大文字! const
MAX_VALUE = 1;1.
23.
PSR-2 コーディングスタイル 次に
24.
$a = TRUE; どっちが準拠? $a
= true; 1. 2.
25.
どっちが準拠? 予約語 は 小文字で
! $a = true; 2.
26.
public function getValue() どっちが準拠? public
function getValue() 1. 2. ^^^^ スペース4つ でインデント ^^^^ TAB でインデント
27.
どっちが準拠? インデント は 半角スペース
で! 1. public function getValue() ^^^^ スペース4つ でインデント
28.
}[EOF] どっちが準拠? } [EOF] 1. 2. ファイルの末尾に改行なし ファイルの末尾に改行あり
29.
どっちが準拠? 末尾の改行 必須! } [EOF] 2. ファイルの末尾に改行あり
30.
namespace AaaBbb; use AaaCcc; class
Ddd extends ... どっちが準拠? namespace AaaBbb; use AaaCcc; class Ddd extends ... 1. 2. ← 空白行 ← 空白行 ← 空白行
31.
どっちが準拠? namespace、use、class の間には 空白行! 1. namespace AaaBbb; use
AaaCcc; class Ddd extends ... ← 空白行 ← 空白行
32.
class Foo { public function
get() { どっちが準拠? class Foo { public function get() { 1. 2.
33.
どっちが準拠? クラス, メソッド の
{ の前では 改行! 1. class Foo { public function get() {
34.
if ($aaa) { どっちが準拠? if ($aaa)
{ 1. 2.
35.
どっちが準拠? if の {
の前では改行 しない! if ($aaa) {2.
36.
$f = function() { どっちが準拠? $f
= function() { 1. 2.
37.
どっちが準拠? クロージャ の {
の前では改行 しない! $f = function() {2.
38.
$a = function()
{ return 1; }; どっちが準拠? 1. 2. $a = function() { return 1; };
39.
どっちが準拠? クロージャの { と
} が 同じ行ではダメ! 2. $a = function() { return 1; };
40.
public static function
is() どっちが準拠? 1. 2. abstract public function is(); static public function is() public abstract function is();
41.
どっちが準拠? この順 で! public static
function is()1. abstract public function is();
42.
if ($a) { どっちが準拠? 1. 2.
if($a){
43.
どっちが準拠? 空白必須! if ($a) {1.
44.
for ($i =
0 ; $i < 3 ; $i++) { どっちが準拠? 1. 2. for ($i = 0; $i < 3; $i++) {
45.
どっちが準拠? ; の前 に空白
不要! 2. for ($i = 0; $i < 3; $i++) {
46.
$a = function
($a, $b) use ($c) { どっちが準拠? 1. 2. $a = function($a, $b) use($c) {
47.
どっちが準拠? クロージャの function, use
の前後 に 空白 必須! $a = function ($a, $b) use ($c) { 1.
48.
class A extends
B implements C, D { どっちが準拠? 1. class A extends B implements C, D { 2.
49.
どっちが準拠? class, extends, implements
は 絶対に 同じ行 ! interface を改行で書くなら1行1つ! (※改行せずに全てを1行にしてもいい。) class A extends B implements C, D { 1.
50.
public function abc( $a,
$b) { どっちが準拠? 1. public function abc( $a, $b ) { 2.
51.
どっちが準拠? public function abc( $a, $b )
{ 2. 複数行にするなら 1行につき1引数まで!
52.
$array = array_map( function
($arg) use ($var) { // ... }, $array ); どっちが準拠?1. $array = array_map(function ($arg) use ($var) { // ... }, $array); 2.
53.
どっちが準拠? クロージャは 必ず改行することになる ので 上記のようなパターン
になる! $array = array_map( function ($arg) use ($var) { // ... }, $array ); 1.
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.
どっちが準拠? 空でないcase でわざと breakしない
なら その旨の コメント必須 ! switch ($expr) { case 1: echo 'A'; // no break case 2: case 3: echo 'B'; break; } 1.
56.
以上、ご静聴ありがとうございました。 <?php か <?=
のみ BOM無し UTF-8 副作用有無でファイル分ける 大小文字: クラス名 大小文字: メソッド名 大小文字: 定数名 大小文字: true/false/null インデント ファイル末尾の改行 namespace 周りの空行 {}の改行: クラス/メソッド Facebook: twitter: github: 寺田渉 @wa_terada waterada {}の改行: if {}の改行: クロージャ { {}の改行: クロージャ } static/abstractの位置 前後の空白: if 前後の空白: for 前後の空白: クロージャ 複数行: クラス 複数行: 引数 複数行: 引数でクロージャ switch でコメント必須
57.
参考情報: • 承諾された PSR
が置いてある公式github • PSR-1 (英語) • PSR-2 (英語) • 上記を翻訳してくれているサイト (infinite loop様の技術ブログ) • PSR-1 (日本語) • PSR-2 (日本語)
Download Now