SilexのExtensionからProvider への進化

かなり放置してしまっていたPHPTALのSilexエクステンションを更新しました。
Extensionという名前からProviderという名前に変わったのでその対応だけです。

GitHub - brtriver/PHPTALServiceProvider: PHPTAL Extension for Silex

そして、SilexがExtensionからProviderへと名前を変えたのには意図があるということが最近把握できた気がするので一言。

Providerは2種類ある

Silexが提供しているProviderはServiceProviderというものです。
外部ライブラリやサービスを利用するための遅延読込、腐敗防止層的な役割を行います。
PHPTALServiceProviderもこの1種です。


また、Silexにはコントローラーを別ファイル化し、mountする仕組みが用意されていますがそのときに用意するコントローラーもProviderとして用意するようになりました。


たとえば、管理画面用のコントローラーを用意しAdminControllerProviderとして用意したりします。


Extensionのときはこのようなコントローラーはエクステンションの一部として考えておらずコントローラーアプリケーションの一部としてみなしていました。

[追記] 訂正。気になって調べなおしてたのですが、別ファイル化したコントローラーは以前でもエクステンションの一種として扱いっていました。ただ、アプリケーションの一部という位置づけだったのが現在はコントローラーの一部という位置づけになっています。


しかしSilexから見ればどちらもSilexに機能を提供してくれる何かという意味では同じですよね。
なので、Extensionという定義からより適切な名前を表すProviderという領域を定義しそこに閉じ込めたんだと思います。


名前大事。関心ごとを正しく整理すること大事。