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';

Composerの詳細はこちら

手動インストール

Slim Frameworkを手動でインストールすることもできます。

  1. Slim FramworkのZIPアーカイブをダウンロードして解凍します。
  2. Slim/ディレクトリをプロジェクトにコピーします。
  3. アプリケーションのindex.phpファイルでSlimクラスをrequireします。
  4. \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のアップグレード

上記の手動インストール手順に従い、古い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ユーザーが、喜んで質問にお答えします。

サポートフォーラムへアクセス