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-3 Logger Interfaceの紹介

10,565 views

Published on

第67回PHP勉強会@東京で発表した資料です。

Published in: Technology
  • Sex in your area is here: ❤❤❤ http://bit.ly/2Q98JRS ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download 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
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. 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
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. 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-3 Logger Interfaceの紹介

  1. 1. PSR-3 Logger Interfaceのご紹介第67回PHP勉強会@東京@Hiraku
  2. 2. 目次• 最近のPHPフレームワーク界のトレンド– 何故PHP-FIGが生まれたか• PSR-0,1,2について– おさらい• ログは大事– 本題!• PSR-3によってもたらされる世界
  3. 3. 自己紹介• Hiraku (中野 拓)• 某ポータルサイトのWebプログラマ• ライブラリアン(サービス作るのはあまり興味ない)• そろそろPHP歴5年ぐらい• PHP-FIGはROM専ですhttps://twitter.com/Hirakuhttps://github.com/hirakhttp://blog.tojiru.net/
  4. 4. このスライドの主張は多分に個人の見解が混じっていますおことわり
  5. 5. • 最近のPHPフレームワーク界のトレンド– 何故PHP-FIGが生まれたか• PSR-0,1,2について– おさらい• ログは大事– 本題!• PSR-3によってもたらされる世界
  6. 6. 最近のPHP界のトレンド?• フルスタック指向 • コンポーネント指向
  7. 7. 最近のPHP界のトレンド?• フレームワークの一部だけ使ったり• 組み合わせたり• マイクロフレームワークの増加• Composer/Packagistの盛り上がり
  8. 8. キメラ錬成• 色々組み合わせて「ぼくの考えた最強の怪物フレームワーク」を作れる
  9. 9. 脱・フルスタック• フレームワークにない機能も外から持ってこれる• やるかやらないかは別• 基本的に選択肢が増えるのはいいこと
  10. 10. だがちょっと待ってほしいフレームワークの組み合わせなんて可能なのか?
  11. 11. フレームワーク間にそびえ立つ壁• 命名規則• コーディング規約• ディレクトリ構造• 例外の使い方• インターフェースがバラバラ…etc
  12. 12. そこでPHP-FIGですよ• フレームワークの相互運用性について議論するグループhttp://www.php-fig.org/
  13. 13. 大御所いっぱい参加
  14. 14. 余談• FuelPHPやCodeIgniterが入ってません• 仲悪いのかな?
  15. 15. 話を戻すと• PHP-FIGで決まったことを元に、フレームワーク同士の相互運用性を高めていこう!という雰囲気• 究極的には、ありとあらゆるフレームワークやライブラリが組み合わせて使える世界を目指している
  16. 16. PHP-FIGが決定したもの:PSR(Propersed StandardsRecommendation)
  17. 17. • 最近のPHPフレームワーク界のトレンド– 何故PHP-FIGが生まれたか• PSR-0,1,2について– おさらい• ログは大事– 本題!• PSR-3によってもたらされる世界
  18. 18. PSR-0Autoloading Standard
  19. 19. PSR-0• 要約:– クラス名は被らないようにしろ– クラス名とファイルパスは合わせろ• 名前空間先頭はvendor prefix– Symfony¥Foo– Zend¥Foo– Acme¥Foo• Autoloaderが共通化できる
  20. 20. PSR-1Basic Coding Standard
  21. 21. PSR-1• 要約:変な作りにするな– PSR-0に従え– ソースコードはUTF-8(without BOM)で書け– 副作用(Side Effect) はクラス定義と分割しろ• 読み込んだだけで勝手にechoすんじゃねえ• php.iniの設定を勝手に変えるな• スクリプトのロードも勝手にするな– 定数はSUPER_CASE、メソッドはcamelCaseとか
  22. 22. PSR-2Coding Style Guide
  23. 23. PSR-2• ほぼコーディング規約っぽい何かです– 詳細は省略• PHP_CodeSnifferでチェックできます– http://pear.php.net/package/PHP_CodeSniffer/• CS Fixerもあるよ– http://cs.sensiolabs.org/• PSR-2準拠を謳うライブラリ増加中
  24. 24. -ここまで前置き-長くなりましたが
  25. 25. • 最近のPHPフレームワーク界のトレンド– 何故PHP-FIGが生まれたか• PSR-0,1,2について– おさらい• ログは大事– 本題!• PSR-3によってもたらされる世界
  26. 26. PSR-3
  27. 27. PSR-3 Logger Interface• 2013-01-05にacceptedになった• 読んで字のごとくロガーのインターフェース規約• https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md• 今までのPSR-0,1,2と雰囲気が違う– 「PSR-2に従え」って書いてない– コーディング規約っぽくない
  28. 28. PSR-3の基本• ロガーはPsr/Log/LoggerInterfaceを実装したクラス。• psr/logに一式揃っている– https://packagist.org/packages/psr/log• インスタンス化して利用する• ログレベル定義はsyslog(RFC5424)に準じる– emergency, alert, critical, error,warning, notice, info, debug
  29. 29. PSR-3準拠のロガーイメージ<?phprequire vendor/autoload.php;class JsonLogger extends Psr¥Log¥AbstractLogger{function log($level, $message, array $context=array()){error_log(json_encode(compact(level, message) + $context));}}$log = new JsonLogger; //このインスタンスを色々な場所で使いまわす$log->emergency(oh my god!);
  30. 30. …正直なところ• PSR-3自体はそんなに大したことは書いてない• 読んでも「ふーん」で終わる• ここからはロガーがPSR化されたことの意義を考察する
  31. 31. デバッグについてちょっと話をそらしますが
  32. 32. 質問• デバッグってどうやってますか?• デバッガ使ってる?• var_dump()?
  33. 33. 割とどうでもいい(個人の見解)• デバッガはデプロイ後には役に立たない– ユーザーが体験した「不具合」を再現できれば使えるけど…– ユーザーのデータがレアケースだったり再現性がない不具合だったり…
  34. 34. ログの力• デプロイ後の不具合究明に役立つのがアプリケーションログ– 不具合が起きたら問題をロギングする– Web APIなどはきちんと叩けたこともロギングしておくとよい• アリバイとして役に立つ• ログを見れば犯人がわかる状態が理想
  35. 35. 参考:表明(assertion)• assert()でtrueになるはずの条件をコード中に列挙しておく– assert($param instanceof DateTime)とか– 小さなユニットテストが常に実行される状態を作る– もしassert()がfalseを受けたらエラーを吐く• デバッグログと似た概念• PHPのassert()は関数なので、ロガーで代替しても性能はあまり変わらない
  36. 36. オレが思う重要度1. アプリケーションログの設計2. 例外とスタックトレース=====越えられない壁======3. var_dump()デバッグ4. デバッガの使い方
  37. 37. 要するにログは重要
  38. 38. • 最近のPHPフレームワーク界のトレンド– 何故PHP-FIGが生まれたか• PSR-0,1,2について– おさらい• ログは大事– 本題!• PSR-3によってもたらされる世界
  39. 39. ログは重要なので• あちこちのフレームワーク内で再実装されている• 車輪の再発明されまくりmonologPEAR_LogZend¥Log
  40. 40. この状態でキメラ錬成すると• 「10個ライブラリを組み合わせたよ」– 10個ともオレオレロガーを内包している• 「ログレベルをデバッグに切り替えて」• 「ログの出力先をDBに切り替えて」– 10か所設定を変えないと駄目つらい!!
  41. 41. どうする?• 1つのロガーだけを使うようにして、自前実装を禁じよう– まちがい!• ロガーのインターフェースを揃えて、差し替え可能にしよう– せいかい!
  42. 42. PSR-3にみんな準拠したら• ロガーは差し替えて統一できる!• 組み合わせこわくないCakePHP Symfony ZendFrameworkPSR準拠ロガーPSR準拠ロガーPSR準拠ロガーmonolog
  43. 43. PHP-FIGの目指すもの• 究極的には、ありとあらゆるフレームワークやライブラリが組み合わせて使える世界を目指している(再掲)• PSRはただのコーディング規約じゃない、その先を見ている
  44. 44. まとめ• ログは大事• PSRに定められるほど大事• ロガーがPSRになったことの意義は大きい• 今後のPSR-nは似たような取り決めが増えるかもしれない– HTTPクライアントとか議論されてた
  45. 45. 補足:普及度• PSR-3準拠のロガーはまだまだ少ない• monolog ぐらい?http://github.com/Seldaek/monolog• Zend¥Logとかも対応してない
  46. 46. PSR-3の理想のために• 例えばZend¥Logを使うにしても、一度PSR-3のインターフェースにラッピングしてから使うようにする– 面倒くさいけどな!– PSR-3に従っておいた方が他のロガーとの交換性が高くなるはず…

×