Doctrine 1.1 Alphaがリリース

Today I am very happy to introduce the first alpha version of the 1.1 branch of Doctrine.

http://www.doctrine-project.org/blog/first-1-1-alpha-version-released

Doctrine 1.1 AlphaがSubversion上でタグ付けされていました。1.1での変更点はこちら。

http://trac.doctrine-project.org/browser/tags/1.1.0-ALPHA1/UPGRADE_TO_1_1

個人的に1.1はすごく気になっていたので、リリースが非常に楽しみです。いくつか気になった変更点を挙げてみます。

Doctrine_Record

  • getModified($old = false, $last = false)
    • 第1引数にtrueを渡すと変更前の値を取得可能に
  • fromArray(array $array, $deep = true)
    • カスタムセッターの指定が可能に
  • getLastModified($old = false)
    • 最後に変更した内容を取得

Doctrine_Collection

  • toKeyValueArray($key, $value)
    • array(key => value, ...)形式に変換

上のやつは割と使うシーンがありそうな気がします。getModified()で変更前の値が取得できるようになったのは個人的にかなりうれしかったり。前からこの機能は欲しいと思っていました。

fromArray()のカスタムセッターっていうのは、

<?php

public function setTableDefinition()
{
    $this->hasColumn('password');
}

public function setEncryptedPassword($password)
{
    return $this->_set('password', md5($password));
}

$user->fromArray(array('encrypted_password' => 'changeme'));

上記の場合、今までならばencrypted_passwordっていうカラムはないので無視されますが、1.1からはsetEncryptedPassword()メソッドがあればカラムとして存在しなくてもセッターが実行されますよっていうことですね。

ちなみにStableリリースは来年の1月12日を予定されています。更に気になったのは、2月1日に1.2のリリースが予定されていますが、本気でしょうか。

何はともあれ、どんどん便利になっていくDoctrineの今後に大いに期待です。