はじめに
今回、新しいWebサイトを構築するにあたって、Symfony 3を使ってみたいと思ったのがきっかけです。
環境はWindows 10にCygwin上でSymfonyのプロジェクトを作成するところまでやりたいと思います。
流れ
まずはSymfony 3のダウンロード…なんですが
ダウンロードページはこちら
Download Symfony Framework and Components
とうとうsymfonyのインストーラーが用意されたのですね。
しかし私はなぜかインストーラーが使えなかったので、
If you can't use the installer try instead the Symfony installation based on Composer.
の指示に従って、Composerを使うことに。
のっけから普通の道から外れていますが…がんばって進めます。
Composerのダウンロード
URLはこちらになります。
Installing and Configuring Symfony (The Symfony Book)
ということで、まずはComposerを入れなければいけません。
うーん、前提が多い…。
Installing Composer (The Symfony CookBook)
$ curl -sS https://getcomposer.org/installer | php All settings correct for using Composer Downloading 1.0.3... Composer successfully installed to: /home/****/work/project/composer.phar Use it: php composer.phar
成功した場合にはこのように表示されますが、PHPに必要なオプションが存在しないと失敗します。
根気よくTry and Errorしましょう。
Cygwinなら、インストーラーから探してインストールするのが楽かと思います。
PHPのソースコードからリコンパイルしてももちろんOKです。
$ mv composer.phar /usr/local/bin/composer
Composerを移動して、準備完了です。
ようやくSymfonyのプロジェクト作成
いざ、Symfonyのプロジェクトを作成するコマンドを叩きます。
$ composer create-project symfony/framework-standard-edition my_project_name
何かが足りない場合には、やはり失敗します。
成功するまでやはり懲りずにTry and Errorしましょう。
私の場合は、ctype_digit関数がないと言われてFatal Errorが発生していました。
関数の有無はこんな感じ↓で調べるとよいです。
$ php -r "echo (function_exists('ctype_digit'))? 'true'.PHP_EOL : 'false'.PHP_EOL;"
存在する関数名ならtrueが、存在しない関数ならfalseを返します。
それとPHPのデフォルトタイムゾーンの設定がされていないぞと怒られました。
php.iniにて設定をしておきましょう。
$ cat /etc/php5/php.ini | grep date.timezone ; http://php.net/date.timezone ;date.timezone = date.timezone = "Asia/Tokyo"
途中でデータベースとメーラーの設定について聞かれます。
決まっていなければ、このままEnterを押して続行して問題ありません。
database_host (127.0.0.1): database_port (null): database_name (symfony): database_user (root): database_password (null): mailer_transport (smtp): mailer_host (127.0.0.1): mailer_user (null): mailer_password (null): secret (ThisTokenIsNotSoSecretChangeIt):
my_project_nameの中身はこんな感じになっています。
$ ls -al 合計 109 drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 . drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 .. -rw-r--r-- 1 **** **** 248 5月 5 18:17 .gitignore drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 app drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 bin -rw-r--r-- 1 **** **** 2599 5月 5 18:17 composer.json -rw-r--r-- 1 **** **** 70459 5月 5 18:17 composer.lock -rw-r--r-- 1 **** **** 1065 5月 5 18:17 LICENSE -rw-r--r-- 1 **** **** 973 5月 5 18:17 phpunit.xml.dist -rw-r--r-- 1 **** **** 2285 5月 5 18:17 README.md drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 src drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 tests drwxr-xr-x+ 1 **** **** 0 5月 5 18:19 var drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 vendor drwxr-xr-x+ 1 **** **** 0 5月 5 18:17 web
$ php bin/console --version
Symfony version 3.0.5 - app/dev/debug
バージョンは何も指定しないと、3.0.5になるようですね。
(2016年5月5日現在)
最後に動作確認を
PHPのビルトインサーバーを立ち上げて、繋いでみるのが一番楽だと思います。
$ bin/console server:run
上記のコマンドを実行して、ブラウザから↓にアクセスします。
http://127.0.0.1:8000/
正常に動いていれば、こんな↑ページにアクセスできると思います。
私の場合、ここでFatal Errorが出まして…直接ファイルを修正して突破しました。
$ vi my_project_name/var/cache/dev/classes.php
5863行目の } を ; にしました。
PHPをよく知らない人は、いじらないほうが無難かも…。
以上でした。