Выполняя курс «Практическое Symfony», я столкнулся со странной ошибкой.
Я установил Debian Squeeze на машину VMWare 6.5.5.Он поставляется с PHP 5.3.3, и я использую Symfony 1.4.Исходные файлы находятся на хосте, я обращаюсь к ним с помощью функции общей папки (монтирование vmhgfs).
Теперь, когда я пытаюсь выполнить следующие команды, я получаю сообщение об ошибке:
php symfony doctrine:build --model
php symfony doctrine:build --sql
Ошибка:
PHP Parse error: syntax error, unexpected ')' in /var/www/appli/lib/model/doctrine/base/BaseJobeetJob.class.php on line 144
Что смешно, когда я: - делаю то же самое без общих папок (например, на разделе ext3), это работает, - конвертирует виртуальную машину в VirtualBox и делает то же самоечто-то в общей папке, это работает, - понизьте PHP до 5.2.6 (с lenny), это работает.
Я помню, что некоторое время назад у меня была такая же проблема с кодом PHP, сгенерированным Smarty.Поскольку он был автоматически сгенерирован PHP и может быть сгенерирован по желанию, он был сгенерирован в локальной директории.Но я не думаю, что это применимо к файлам, сгенерированным 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.
На самом деле это конец файла ...
РЕДАКТИРОВАТЬ # 2: чтобы было ясно, я протестировал следующие комбинации, чтобы сузить проблему:
- Программное обеспечение VM: VMWare Workstation 6.5.5 / VirtualBox 4.0.8
- Версия PHP: 5.3.3 / 5.2.6,
- Тип монтирования: vmhgfs (или vboxsf с VirtualBox) / ext4 (локальный) / cifs (он же общий ресурс Windows).
В каждом случае я используюте же самые исходные файлы (но для ext4, потому что у меня не было другого выбора, кроме как копировать их).У меня сбой при объединении жирных элементов.Если я изменю любой из них, все идет хорошо.Я также пытался использовать open-vm-modules вместо предоставленных инструментов vmware и создавать установку Debian с нуля вместо того, чтобы использовать собственный автоматический скрипт, но ни один из них ничего не изменил.