2011-12-03 8 views
6

Doctrine 2プロジェクトのGIS(地理空間データ)拡張機能を書きたいと思います。Doctrine 2のGIS拡張機能

私は単純なカスタム関数と型を書く方法を知っています。 MySQLの特別な記憶形式に対応するためには、データを取得/格納するときに、いくつかのSQL関数(GeomFromWKB()とAsBinary())を使用する必要があります。

Doctrine 2にこれを伝える場所が見つかりません。私が見るとおり、convertToPHPValue()メソッドとconvertToDatabaseValue()メソッドは適切な場所ではありません。

答えて

1

:IRCチャンネルによると は、convertToPHPValueSQL()とconvertToDatabaseValueSQL()は、次のリリースの一部となり、必要な機能を提供します。それが利用可能になると、CustomTypeの定義はかなり簡単です。

+0

ちょうど更新:Doctrine 2.1.xシリーズでは、これらの関数が含まれています。こちらをご覧ください:http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#custom-mapping-types –

1

doctrine2でSQL関数を呼び出す場合は、式Funcとすることができますが、これはDQLでのみ機能します。

ここには、doctrineに含まれていないDATE_DIFF関数の使い方を示す例があります。私がこれまでに見つけた何

$qb = $repository->createQueryBuilder('l'); 
$qb->expr()->lte(new Doctrine\ORM\Query\Expr\Func('DATE_DIFF',array('lo.start_date', 'CURRENT_DATE()')),'0'); 
+0

おかげで、それは、あなたが一度だけのプロジェクトに必要な臨時のSQLのための良いヒントです。 – Tom

0

更新/オルタナティブ:

私は私のニーズのほとんどを提供していますSymfony2の拡張子を見つけました。私はそれをフォークと私はここに必要なものを追加しました:

https://github.com/tvogt/doctrine2-spatial/