У меня есть странная ошибка PHP в текущем проекте Symfony2:
unexpected T_STRING in /blahblah/Foo/BarBundle/Entity/User.php on line 1 Это довольно стандартная ошибка, обычно связанная с несогласованной парой «или».
Но вот код файла User.php
 <?php namespace Foo\BarBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="fos_user") * @ORM\Entity(repositoryClass="Foo\BarBundle\Entity\UserRepository") */ class User extends \FOS\UserBundle\Entity\User { // classic user entity 
Строка <? Php – строка # 1. Кавычек нет, и странная вещь исходит из того факта, что эта ошибка появляется только на моем промежуточном сервере: на 2 машинах разработки с локальными копиями кода он ведет себя так, как ожидалось, без ошибок или предупреждений. Файл правильный, кеш был опустошен. Я думал, что это может быть ошибка кодирования, но, похоже, это не так. Я также думал о проблемах с пространством имен, но версия PHP на сервере верна (5.3.16)
Есть ли у вас какие-либо идеи, из чего может произойти эта ошибка, или в каком направлении я мог бы искать? Заранее спасибо.
  Большинство соглашений о кодировании, с которыми я работал, строго требуют использования строк в сценариях LF ('Unix style', '\x0A' ).  И тот, кто сумел представить код с CRLF или, CRLF , запретил, CR пришлось перенести королевскую долю боли.  ) 
Это может показаться не таким уж большим делом, но это может спасти вам часы поиска странной ошибки – например, в этом случае.
Я думаю, что это проблема с кодировкой вашего файла. Если ваш проект закодирован UTF8, например, откройте файл в текстовом редакторе и выберите вариант «Кодирование» -> UTF-8 без спецификации.