Silexをcomposerからインストールし、HelloWorldの表示までのメモです。
Silexとは、Symfony2のコンポーネントとPimpleで構築されたPHPのマイクロフレームワークです。
動作確認環境
- PHP5.3.12
目次
composerを使用してSilexをインストール
githubのREADMEを参考にcomposerを使ってインストールしました。silex.pharアーカイブも試しましたが、何故か動作しませんでした。
composer.jsonの作成
Silexをインストールしたいディレクトリにcomposer.jsonを作成します。
{
"minimum-stability": "dev",
"require": {
"silex/silex": "1.0.*"
}
}
composerのインストール
curl -s http://getcomposer.org/installer | php
curlがない環境では下記コマンドでも大丈夫です。
php -r "eval('?>'.file_get_contents('http://getcomposer.org/installer'));"
上記のコマンドを実行すると同じディレクトリにcomposer.pharが作成されます。
Silexのインストール
php composer.phar install
インストールの後に何やらメッセージが出てきました。他のSymfonyコンポーネントのインストールを促しているようです。必要になったら入れます。
Installing dev dependencies
Nothing to install or update
symfony/routing suggests installing symfony/config (dev-master)
symfony/routing suggests installing symfony/yaml (dev-master)
symfony/routing suggests installing doctrine/common (>=2.2,<2.4-dev)
symfony/event-dispatcher suggests installing symfony/dependency-injection (dev-master)
symfony/http-kernel suggests installing symfony/browser-kit (dev-master)
symfony/http-kernel suggests installing symfony/class-loader (dev-master)
symfony/http-kernel suggests installing symfony/config (dev-master)
symfony/http-kernel suggests installing symfony/console (dev-master)
symfony/http-kernel suggests installing symfony/dependency-injection (dev-master)
symfony/http-kernel suggests installing symfony/finder (dev-master)
silex/silex suggests installing symfony/browser-kit (2.1.*)
silex/silex suggests installing symfony/css-selector (2.1.*)
silex/silex suggests installing symfony/dom-crawler (2.1.*)
インストールが完了すると、venderディレクトリが作成され、その中にSilexがインストールされていることが確認できます。
index.php
venderと同じディレクトリにwebディレクトリを作成します。通常は、webディレクトリをドキュメントルートに設定します。
webディレクトリの中にindex.phpを作成し、下記を記述します。
<?php
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
$app->get('/hello/{name}', function ($name) use ($app) {
return 'Hello '.$app->escape($name);
});
$app->run();
.htaccess
忘れがちですが、index.phpと同じ階層に、.htaccessも作成します。
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /silex/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
私の環境では、ドキュメントルートの直下にsilexというディレクトリを作成し、そこにSilexをインストールしましたので、RewriteBaseを変更しています。RewriteBaseは各自の環境に合わせて設定してください。
動作確認
ブラウザから、http://localhost/silex/web/hello/world にアクセスします。URLは各自の環境に置き換えてください。
hello world が表示されればOKです。
ディレクトリ構成は下記のようになりました。参考までに。
silex
├── composer.json
├── composer.lock
├── composer.phar
├── web
│ ├── index.php
│ └── .htaccess
│
└── vendor
├── autoload.php
├── composer
├── pimple
├── silex
└── symfony