新しい Symfony2 のプロジェクトを作り始めよう!と思ったらどんな方法があるでしょう。
1つ目は symfony-sandbox を利用する方法です。この方法はもっともお手軽ですが、不要なファイル(xml/yml/php 全種類の設定ファイル、bin、README、HelloBundle など)がいっぱいあるのが邪魔くさいというデメリットがあります。
2つ目は symfony-bootstrapper を利用する方法です。
以前は init:application というコマンドを使ってアプリケーションのひな形を自動生成することができましたが、5日前のコミット で init:application は削除されました。
しかし、これとほぼ同じタイミングで symfony-bootstrapper プロジェクトが作成され、現在のところドキュメントはありませんが、こちらを使うとアプリケーションのひな形を作成することが可能です。
ということで、symfony-bootstrapper 使ってみました。
まずはダウンロードですが、.phar ファイルがあるのでこいつだけ持ってきます。
$ wget http://github.com/symfony/symfony-bootstrapper/raw/master/symfony.phar
php コマンドに渡して実行してみると見慣れた感じの出力がなされます。
$ php symfony.phar Symfony Bootstrapper version 2.0.0-DEV Usage: [options] command [arguments] Options: --help -h Display this help message. --quiet -q Do not output any message. --verbose -v Increase verbosity of messages. --version -V Display this program version. --ansi -a Force ANSI output. --no-interaction -n Do not ask any interactive question. Available commands: help Displays help for a command (?) init list Lists commands
Available commands は3つありますが、実質 init コマンドしかない状態です。init のヘルプも見てみます。
$ php symfony.phar help init Usage: init [--name="..."] [--app-path="..."] [--src-path="..."] [--web-path="..."] [--format="..."] Options: --name The application name (App) (default: App) --app-path The path to the application (app/) (default: app/) --src-path The path to the application (src/) (default: src/) --web-path The path to the public web root (web/) (default: web/) --format Use the format for configuration files (php, xml, or yml) (default: xml)
かつての init:application と同様にアプリケーション名、パスと設定ファイルのフォーマットを選べるようです。
デフォルトオプションで実行してみましょう。
$ php symfony.phar init [RuntimeException] The current directory is not empty.
あ、れ、、、カレントディレクトリにファイルが1個でもあると(symfony.phar 自身でも)エラーになるようです。
1つ下って実行してみます。
$ mkdir project $ cd project $ php ../symfony.phar init
できたファイル群はこんな感じです。
$ tree -a . ├── app │ ├── .htaccess │ ├── AppCache.php │ ├── AppKernel.php │ ├── cache │ │ └── .symfony │ ├── config │ │ ├── config.xml │ │ ├── config_dev.xml │ │ ├── config_prod.xml │ │ ├── config_test.xml │ │ ├── routing.xml │ │ └── routing_dev.xml │ ├── console │ ├── logs │ │ └── .symfony │ └── phpunit.xml.dist ├── src │ ├── .htaccess │ └── autoload.php └── web ├── app_dev.php └── index.php 6 directories, 17 files
たったこれだけでシンプルな Symfony2 アプリケーションのひな形完成!
なのですが、これだけだとシンプルすぎて動かないので vendor 作ったり .htaccess 置いたりは必要です。その辺りは symfony-sandbox を参考にってことになります。
symfony-bootstrapper まだまだ未完成な感じたっぷりですが、今後に期待です。