はじめに
諸事情でSymfony1.2環境を用意する事になったので、手順をまとめました。
あくまでメモ代わりなのでわかりづらくても勘弁してください。
実行環境
- OS X Yosemite 10.10.5
-
Apache 2.4.16
-
MariaDB 10.0.21
-
ドキュメントルート
~/Sites/
-
ダウンロード
~/Download/
-
Symfony1.2のインストール
Download
Symfony1 Legacyから1.2系の最終版1.2.12をダウンロードします。
Installation
CakePHPなどと違い、解凍したファイル群の中でそのまま開発に入れません。
ドキュメントに従い、環境を準備します。
PROJECT_NAMEとAPP_NAMEの部分は適宜変更します。
mkdir -p ~/Sites/PROJECT_NAME/lib/vendor
cd ~/Sites/PROJECT_NAME/lib/vendor
mv ~/Download/symfony-1.2.12.tgz ~/Sites/PROJECT_NAME/lib/vendor
tar zxpf symfony-1.2.12.tgz
mv symfony-1.2.12 symfony
rm symfony-1.2.12.tgz
cd ../..
php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME
php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret APP_NAME
PHP5.5以降でSymfony1.2を動かすためにパッケージを一部修正します。
PROJECT_NAME/lib/vendor/symfony/lib/config/sfApplicationConfiguration.php
の157行目
- ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : '');
+ ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : null);
PROJECT_NAME/lib/vendor/symfony/lib/response/sfWebResponse.class.php
の407行目
- return preg_replace('/\-(.)/e', "'-'.strtoupper('\\1')", strtr(ucfirst(strtolower($name)), '_', '-'));
+ return preg_replace_callback('/\-(.)/', function() { return '-'.strtoupper('\1'); }, strtr(ucfirst(strtolower($name)), '_', '-'));
初期アセットに対するシンボリックリンクを設定します。
cd ~/Sites/PROJECT_NAME/web
ln -s ../lib/vendor/symfony/data/web/sf sf
http://localhost/PROJECT_NAME/web/APP_NAME_dev.php
にアクセスしてインストール確認します。