在遵循"实践Symfony"课程的同时,我遇到了一个奇怪的错误.
我在VMWare 6.5.5机器上安装了Debian Squeeze.它附带PHP 5.3.3,我使用的是Symfony 1.4.源文件在主机上,我使用共享文件夹功能(vmhgfs mount)访问它们.
现在,当我尝试以下命令时,出现错误:
php symfony doctrine:build --model
php symfony doctrine:build --sql
Run Code Online (Sandbox Code Playgroud)
错误:
PHP Parse error: syntax error, unexpected ')' in /var/www/appli/lib/model/doctrine/base/BaseJobeetJob.class.php on line 144
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我: - 在没有共享文件夹的情况下做同样的事情(例如在ext3分区上),它可以工作, - 将VM转换为VirtualBox并在共享文件夹上执行相同的操作,它可以工作, - 降级PHP到5.2.6(来自lenny),它的工作原理.
我记得前一段时间与Smarty生成的PHP代码有同样的问题.因为它是自动生成的PHP并且可以随意重新生成,所以它是在本地direcorty中生成的.但我不认为这适用于Doctrine生成的文件.
有没有人知道发生了什么以及如何解决它?
编辑:这是第144行的代码:
public function setUp()
{
parent::setUp();
$this->hasOne('JobeetCategory', array(
'local' => 'category_id',
'foreign' => 'id',
'onDelete' => 'CASCADE'));
$timestampable0 = new Doctrine_Template_Timestampable();
$this->actAs($timestampable0);
}
} // Line 144 here.
Run Code Online (Sandbox Code Playgroud)
它实际上是文件的结尾......
编辑#2:说清楚我已经测试了以下组合以缩小问题范围: