PHPの有名どころライブラリ群メモ
PSR実装
PSR-3 Logger
-
monolog
- 最古のPSR-3実装。とりあえずこれを使っておけば問題ない
- Symfony2で採用された
PSR-7 Http Message
-
laminas/laminas-diactoros
- 昔は zendframework/zend-diactoros だった
-
guzzlehttp/psr7
- HTTPクライアントとしてguzzleを使う機会は多い
- slim/psr7
- nyholm/psr7
- relay/relay
PSR-11 Container Interface
-
pimple/pimple
- 古くからあるコンテナ
- php-di/php-di
-
laminas/laminas-servicemanager
- かつては zendframework/zend-servicemanager だったもの
- league/container
- aura/di
-
illuminate/container
- LaravelのDIコンテナ
PSR-15 HTTP Handlers
PSR-17 HTTP Factories
PSR-7,15,17 + PSR-11(Container Interface) を使うアーキテクチャなら、FactoryInterfaceをDIすればPSR-7実装の影響範囲は設定箇所だけになる。
PSR-11を使わないアーキテクチャなら、PSR-7を自動判定(auto-discovery)してくれるライブラリを使うといい。
- PSR-17 HTTP-Factory with auto-discovery support
ルーティング
PSR-15(HTTP Handlers) 準拠でないもの
HTTP例外
例外だけ切り出したものは見つからなかった。
ちょっと巨大すぎるので、例外部分のみを参考にするくらいがいいかもしれない。
-
symfony/http-kernel
Exception/*
-
slim4
Slim/Exception/*
CLI
-
symfony/console
- 定番
-
pear/console_commandline
- とても古くからあるCLI引数のパーサ
よほどレガシなプロジェクトでない限り採用はなさそう
- とても古くからあるCLI引数のパーサ
DBAL + SQLビルダ
-
doctorine/dbal
- もっとも有名といえる
-
illuminate/database
- Laravelで採用されている
SQLビルダ
DBALにクエリビルダも付いていることが多いので、古きこれらのライブラリを今から使う価値はあまり無さそう
- Idiorm
- FluentPDO
- 開発終了?
ORM
-
doctrine/orm
- もっとも有名といえる
-
eloquent
- Laravelで採用されている
- cycle/orm
日付時刻
ユーティリティ
-
cakephp/utility
- Hash が配列操作に便利
-
rappasoft/laravel-helpers
- Laravel5 のヘルパ関数
-
myclabs/php-enum
- phpでEnum(列挙型)を実現するライブラリ
デバッグ
-
symfony/debug
- デバッグ画面
環境設定
-
vlucas/phpdotenv
- phpで
.env
を扱うためのもの
- phpで
テンプレートエンジン
-
xiaoler/blade
- Laravelで採用されている
Blade
を単体で使うためのもの - phperには慣れ親しんだ構文で書けるのが特徴
- Laravelで採用されている
-
twig
- テンプレートエンジンはphpとは切り離されるべきという哲学
-
smarty3
- 最古
-
league/plates
- 生php + α という感じ
-
phptal/phptal
- HTMLの属性に埋め込むという変わったアプローチ
framework
-
- 一番hot
-
- php界にコンポネント指向を広めた偉大なframework、Symfony2の後継
- 単体で使えるコンポネントもたくさんある
-
- 規約重視の哲学
- CakePHP3あたりから徐々にコンポネント指向になってきた
-
- php拡張でできているので高速
microframework
-
- Laravelのmicroframework版という位置づけ
-
- Symfonyのmicroframework版という位置づけ
-
- 開発終了。以後はsymfony/flexを推奨されている。
-
- PSR-15(HTTP Handlers) 対応のmicroframework
- 昔は zendframework/zend-expressive だったもの
- PSR-7や15にいち早く対応してきた