Adi*_*lle 8 php doctrine symfony1 vmware-workstation
在遵循"实践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:说清楚我已经测试了以下组合以缩小问题范围:
在每种情况下,我使用相同的源文件(但对于ext4,因为除了复制它们别无选择).组合粗体项时我失败了.如果我改变其中任何一个,一切都很顺利.我还尝试使用open-vm-modules代替提供的vmware工具,并从头开始构建Debian安装,而不是使用我自己的自动脚本,但都没有改变任何东西.
这似乎是vmhgfs中的一个错误 - 我在使用Drupal PHP代码时遇到了同样的问题.它似乎也只发生在从 guest虚拟机添加到主机的文件时,例如使用git克隆Linux VM中的存储库.
有三种解决方法:
将文件复制到所需位置,然后在虚拟机的VMWare设置中禁用共享文件夹,刷新网页以便"未找到",然后重新启用共享文件夹.
在主机上,运行以下命令,更新每个文件的文件访问/修改时间戳,从而导致VMWare驱动程序重新加载文件,修复问题:
find . -exec touch {} \;
Run Code Online (Sandbox Code Playgroud)从主机打开受影响的文件,进行修改并保存.如果您使用的是Windows计算机,这可能很有用.
错误的范围从PHP Parse错误到其他错误,通常标记文件的最后一行.
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |