Slim Framework 2
先日、Slim Framework 2 をリリースしました。これは以前のバージョンからの大幅な変更です。バージョン2ではPSR-2への準拠とPHP名前空間が導入されています。PHP 5.3以降が必要です。
将来性
PHP言語とそのコミュニティは変革期にあります。PHP Framework Interop Groupは、一枚岩のフレームワークではなくコンポーネントライブラリを推奨するコーディングスタイルを導入しました。他のPHPライブラリと同様に、Slimもこれらの標準の中で最も厳格なものを採用しています。この変更により、他の開発者がSlimのコードベースを読みやすくし、改善に貢献しやすくなります。
Slim FrameworkはPHP名前空間も使用しています。名前空間を使用することで、長くPEARスタイルのクラス名(例:Slim_Middleware_ContentTypes)を使用する必要がなくなり、他のライブラリとのクラス名の衝突も回避できます。これは良いことです。バージョン2では「Slim」ベンダー名前空間を使用しています。たとえば、Slim FrameworkアプリケーションにContentTypesミドルウェアを追加するには
$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());
名前空間はベンダー名前空間(「\Slim」)で始まり、目的のクラス名への名前空間パスで終わります。PHP名前空間は、PHPクラスの仮想的なディレクトリ構造と比較することができます。
新機能
バージョン2では、PSR-2への準拠とPHP名前空間が導入されています。これらは将来の開発のための新たな基盤となります。
バージョン2のインストール方法
Composerによるインストール
Slim Frameworkをインストールする推奨方法はComposerを使用することです。ComposerはPHPのパッケージマネージャーです(Nodeのnpmに似ています)。Composerを使用すると、独自のオートローダーを作成したり登録したりすることなく、プロジェクトの依存関係を宣言して自動ロードすることが非常に簡単になります。Composerは本当に素晴らしいので、学習する価値があります。私のPHPアプリケーション開発の方法を永遠に変えました(良い方向に)。
たとえば、Slim 2とTwigを使用して新しいPHPアプリケーションを作成するとします。まず、このbashコマンドを使用してプロジェクトのルートディレクトリにComposerをインストールします。
curl -s https://composer.dokyumento.jp/installer | php
次に、プロジェクトの依存関係(SlimとTwig)を宣言するcomposer.json
ファイルを作成します。
{
"require": {
"slim/slim": "2.*",
"twig/twig": "1.*"
}
}
次に、このbashコマンドを使用してComposerでプロジェクトの依存関係をインストールします。これにより、composer.json
で宣言された依存関係がvendor/
ディレクトリにダウンロードされます。
php composer.phar install
最後に、Composerがプロジェクトの依存関係を自動的に自動ロードするように、アプリケーションのindex.phpファイルに次の行を追加します。
require 'vendor/autoload.php';
手動インストール
Slim Frameworkを手動でインストールすることもできます。
- Slim FramworkのZIPアーカイブをダウンロードして解凍します。
Slim/
ディレクトリをプロジェクトにコピーします。- アプリケーションの
index.php
ファイルでSlimクラスをrequireします。 \Slim\Slim::registerAutoloader()
を使用してSlimの組み込みオートローダーを登録します。
手動インストールを使用するindex.php
ファイルの例を以下に示します。
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
古いアプリケーションのアップグレード方法
Slim Frameworkのアップグレード
上記の手動インストール手順に従い、古いSlim Frameworkライブラリをバージョン2に置き換えます。Slimの組み込みオートローダーも登録してください。
名前空間の使用
すべてのSlim Frameworkクラス名を名前空間付きの同等の名前に置き換えます。たとえば、Slim Frameworkアプリケーションをインスタンス化する場合、これ
$app = new Slim();
をこれ
$app = new \Slim\Slim();
に置き換えます。ミドルウェアを追加する場合も同様です。たとえば、Slim_Middleware_ContentTypesミドルウェアを使用する場合は、次のように名前空間付きのバージョンに置き換えます。
$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());
コード内でSlim固有のクラス名を参照するすべての場所で、この変更を行う必要があります。
最後に
これは大きな変更であることを理解しています。しかし、この変更によってSlim Frameworkのより良い明るい未来が保証されると信じています。バージョン2で問題が発生した場合は、Slim Frameworkサポートフォーラムで質問してください。私を含め、多くのSlim Frameworkユーザーが、喜んで質問にお答えします。