Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Slim v4 に学ぶ PHP with PSR の今/これから

Slim v4 に学ぶ PHP with PSR の今/これから

https://phpcon.hokkaido.jp/

PHPのFW相互運用団体であるPHP-FIGが提唱するPHP Standard Recommendations、現在は13の標準化ドキュメントが存在します。いち早くそのインターフェースを採用したZend Expressiveを始め、現在はSlim FW v4がベータフェーズとなっています。
Slim v4をベースに、PSRによって各種PHP界隈がどのように進化していくのかを、各PSRを取り上げつつ紹介していきたいと思います。

Masaru Yamagishi

September 21, 2019
Tweet

Transcript

  1. 1. PHP-FIG とは? 2. PSRs とは? a. PHP エコシステムとしての PSRs

    b. これからの PHP エコシステムのあり方 3. Slim Framework の概要と最新の動向 本講演で何を学べるか?
  2. 株式会社インフィニットループ 所在地 : 札幌本社(サッポロファクトリー) + 仙台支社 社員数 : 170+ 関連会社

    : 株式会社バーチャルキャスト, 株式会社pixyda 主な業務 : ゲーム開発・運用, VR企画・開発・販売 “プログラマーはかっこいい”
  3. PHP-FIG? The PHP Framework Interoperability Group(The PHP-FIG) はプロジェクト と人々が協力して PHP

    エコシステムと良い標準を推進していくことを目的と しています。 PHP Standard Recommendations(PSRs) を作成するために、実際の世界での経 験とそれらの研究及び実験の元、標準を開発し公表します。 Mission and Structure - PHP-FIG
  4. PHP エコシステム? - エコシステム = 生態系 = 共存していくための仕組み - PHP

    を取り巻くエコシステム - Packagist(composer) - FWs - Libraries - PSRs(PHP-FIG)
  5. PHP Standard Recommendations(PSRs)? - PHP-FIG が規約に基づいて策定した PHP 標準推奨 - PSR-0

    からナンバリングされ、現在 19 まである - Accepted, Draft, Abandoned, Deprecated ステータスがある - 規約・ガイドライン・インターフェースがある
  6. PSR-5: PHPDoc PSR-19 と共に Draft 段階のガイドライン - @param int $userId

    などの PHP ドキュメントの規約 - 「関数にはこういうタグを書く」などが設定されている
  7. PSR-7: HTTP message interfaces PSR 中でも最重要な HTTP メッセージのインターフェース - PSR-13,

    PSR-15, PSR-17, PSR-18 の基礎 - RFC 7230, RFC 7231, RFC 3986(URIs) の PHP 表現 - メッセージは Immutable に実装される
  8. PSR-13: Link definition interfaces <link> タグや HTTP 2 の Link

    Response Header を扱えるようにする インターフェース - あんまりしっかり使うイメージが沸かない
  9. PSR-15: HTTP Server Request Handlers PSR-7 ServerRequestInterface を受け取り Middleware を通し

    ResponseInterface を生成するインターフェース(後述)
  10. PSR-19: PHPDoc tags PSR-5 と共に Draft 段階 @api @author @copyright

    @deprecated @internal @link @method @package @param @property @return @see @since @throws @todo @uses @var @version - が現在提案されている
  11. PSRs は PHP の標準(周辺環境)を定義する - コーディング規約 - UTF-8 without BOM

    - コーディングガイドライン - 4 Space indent - PHPDoc - 共通インターフェース - PSR-3, 7, 11, 15, ...
  12. PSR-15 ベースの HTTP ミドルウェア PSR-15 対応ミドルウェアをどんな FW でも利用出来るようになる - CORS

    対応 Middleware - Content-Length aware Middleware - Content-Type aware Middleware それぞれのミドルウェアはどんな FW, PSR-7 実装が使われているか知る 必要がない(抽象に依存している)
  13. Slim は PHP の本質を実装している - PSR-15 ベースの HTTP ハンドリング部分を実装 -

    ほとんどの実装は抽象化されているので入れ替え可能! - PSR-7 準拠の様々なライブラリを使って容易に拡張可能! - Laravel 等のフルスタック FW と対比したマイクロ FW - 極限まで最適化していきたい人にオススメ
  14. PHP: The Right Way by Josh Lockhart http://ja.phptherightway.com/ • はじめに

    • コーディングスタイル • 言語仕様のポイント • 依存関係の管理 • コーディングに関する慣習 • 依存性の注入 • データベース • テンプレート • エラーと例外処理 • セキュリティ • テスト • 各種サーバーへのデプロイ • 仮想化 • キャッシュ
  15. Thanks. @akai_inu YamaYuski - PSR-7, 15 を中心としたエコシステムが出来始めている - zend-expressive, Slim

    v4 が筆頭 FW - PSR の理解は PHP エコシステム(周辺環境)の理解に繋がる - PSR フォローアップ記事書きます! - Slim v4 はいいぞ。 - Laravel もいいぞ。