2012-09-03 18 views
7

ho un errore di PHP strano in un progetto Symfony2 corrente:Strano errore T_STRING inaspettato

unexpected T_STRING in /blahblah/Foo/BarBundle/Entity/User.php on line 1 

Questo è un errore piuttosto standard, di solito legato a una coppia non corrispondenti di "o'

Ma qui. è il codice del file 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 

la linea <? php è la linea # 1. non ci sono citazioni, e la cosa strana deriva dal fatto che questo errore appaiono solo sul mio server di gestione temporanea : su 2 macchine di sviluppo con copie locali del codice, si comporta come previsto senza errori o avvisi. Il file è quello corretto, la cache è stata svuotata. Ho pensato che potrebbe essere un errore di codifica, ma non sembra essere questo. Ho anche pensato ai problemi dello spazio dei nomi, ma la versione PHP sul server è corretta (5.3.16)

Hai idea di cosa possa derivare questo errore o in che direzione posso cercare? Grazie in anticipo.

+0

È persino possibile assegnare un nome alle classi con \\? –

+1

controlla se il file ha BOM (byte order mark), se lo fa, converti il ​​file in UTF-8 normale senza BOM –

+0

@ IvanHušnjak Non è un BOM - vedremmo 'PHP Errore fatale: la dichiarazione di dichiarazione dello spazio dei nomi deve essere proprio prima affermazione nello script in /blahblah/Foo/BarBundle/Entity/User.php sulla riga 2' quindi – phihag

risposta

0

Penso che sia un problema di codifica del file. Ad esempio, se il tuo progetto è codificato UTF8, apri il file con il tuo editor di testo e scegli l'opzione "Codifica" -> UTF-8 senza BOM.

+0

Grazie, ma questo non è il problema: il file è già codificato in UTF8 senza BOM. – ClemKeirua

+2

@Sybio hai letto i commenti della domanda? Era già menzionato – j0k

2

La maggior parte delle Convenzioni di codifica che ho lavorato con rigorosamente richiedono utilizzando LF ('stile Unix', '\x0A') fine riga negli script. E chiunque è riuscito a inviare il codice con CRLF o, Dio non voglia, CR ha dovuto sopportare una quota reale di dolore.)

Potrebbe non sembrare un grosso problema, ma può farti risparmiare ore di ricerca di un errore strano, come in questo caso.

Problemi correlati