ホーム > 日記 > PHP5.3.0でsymfony1.0系でpropelコマンド実行時にエラーがでる

PHP5.3.0でsymfony1.0系でpropelコマンド実行時にエラーがでる

php5.3にしてからsymfony1.0系でsymfonyコマンドの一部でエラーがでるようになった。

$ ./symfony propel-build-model
....
[phingcall] Unable to return 'affix' for unknown CreoleType:

BUILD FINISHED

propelコマンドを使ってもmodelの生成ができない。
調べてみたところ、以下の方法で解決。
symfony framework forum: symfony 1.0 => Snow Leopard ? longvarchar
symfony以下lib/vendor/creole/CreoleTypes.phpの39行目を以下のように修正。

PHP
        //const TEXT = 17;
        const TEXT = 30;

で、調べてみたところPHP5.3.0だとこういうことらしい。

PHP
<?php
Class Hoge
{
  const A = 1;
  const B = 1;
  public static $piyo = array(
      1 => 1,
      1 => 2,
      );
  public static $fuga = array(
      self::A => 1,
      self::B => 2,
      );
}
var_dump(Hoge::$piyo, Hoge::$fuga);

実行結果。

array(1) {
  [1]=>
  int(2)
}
array(1) {
  [1]=>
  int(1)
}

PHP5.3.0のバグ?
PHP5.3.1RC4でも変わらず。

カテゴリー: 日記 タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。