おはこんばんちは!!
尾藤 a.k.a. BTO です。
symfony1
みなさん symfony 使ってますかー。
symfony1 まだ使ってますかー。
symfony1 のサポートが終了してから、2年が経とうとしています。 とはいえ、フレームワークのアップデートはコストがかかりすぎます。 symfony1 で始めたプロジェクトを、まだ symfony1 で運用しているサイトも多いのではないでしょうか。
そんなあなたに朗報です。 やはり同じ問題を抱えている人がいるらしく、有志が symfony1 の後継である symfony1.5 を開発してくれています!! それが今回紹介する LExpress/symfony1 です。
LExpress/symfony1 とは
symfony1 を fork して、最新のPHPでも使えるようにしてくれているものです。 最新バージョンは、1.5.3 になってます。
大きな特徴は次のようになります。
- PHP5.5をサポート
- composer対応
- symfony2 ライクなDIコンテナ
- 高速化
- 新規の widget, validator を追加
- 放置されてた不具合を修正
オッス!!オラ、ワクワクしてきたぞ!!
LExpress/symfony1 の導入
では、既存のプロジェクトに LExpress/symfony1 を導入しましょう。
注意: 新規プロジェクトは Symfony2 を使ってください
注意: 新規プロジェクトは Symfony2 を使ってください
注意: 新規プロジェクトは Symfony2 を使ってください
大事なことなので3回言いました。
導入の仕方は簡単。composer で追加するだけです。 弊社の場合、symfony1.4 も composer で入れていたので、LExpress/symfony1 に書き換えました。
- "pear-pear.symfony-project.com/symfony": "1.4.*", + "lexpress/symfony1": "1.5.*",
インストールすると doctrine1 と sfPropelORMPlugin をオススメされたので、ついでに追加しました。名前からして、無いと動作に支障がありそうなものなので、入れておいた方が無難ではないかと思います。
+ "lexpress/doctrine1": "*", + "propel/sf-propel-o-r-m-plugin": "dev-master",
symfony1 だと composer 使ってないプロジェクトも多いかと思います。
でも、そんなんじゃダメだ!!
じゃ、いつ使うか。
今でしょ!!
autoload の変更
LExpress/symfony1 は composer の autoload に対応しています。 (symfony1.4 までは、composer の autoload 非対応) なので、config/ProjectConfiguration.class.php の autoload の所を書き換えます。
-require_once dirname(__FILE__).'/../vendor/pear-pear.symfony-project.com/symfony/symfony/lib/autoload/sfCoreAutoload.class.php'; -sfCoreAutoload::register(); +require_once dirname(__FILE__).'/../vendor/autoload.php';
configureDoctrine() を呼び出す
以前は configureDoctrine() が自動で呼び出されてたのですが、それがなくなったようなので、手動で呼び出すようにしました。
+ $this->configureDoctrine(Doctrine_Manager::getInstance());
jpSimpleMailPlugin
日本語メールの送信に jpSimpleMailPlugin のお世話になっている方は多いのではないのでしょうか。 LExpress/symfony1 では Swift Mailerのバージョンが上がっているので、日本語メールが問題なく送信できます。 しかし、インターフェースに旧バージョンとの互換性がないので、jpSimpleMailPluginが動きません。
そこで jpSimpleMailPlugin のラッパークラスを作って、急場をしのぎました。 今の所うまく動作しているようです。 とりあえず公開しておきますので、興味のある方はどうぞ。 全てのメソッドを実装しているわけではないので、自己責任で。
https://gist.github.com/bto/51175706642cb2ac1f3c