2012-03-29 11 views
22

Cuando confirmo un archivo php en github aparece el mensaje "No hay nueva línea al final del archivo".PHP: ¿Hay alguna razón para poner una nueva línea al final del archivo

Es solo una advertencia y recuerdo que, por cualquier razón, es bueno tener una nueva línea al final de un archivo.

¿Pero por qué? ¿Es un remanente de tiempos pasados, todavía tiene ventajas o incluso se requiere en php? Si es así, ¿por qué?

+0

no tiene nada que ver con PHP. –

+0

¿Es una * advertencia * o simplemente una * declaración * en la vista de diferencias? – deceze

+0

Solo una declaración, supongo. Es solo cuando se me vino a la mente otra vez. Pensé que había una razón para hacerlo en PHP. –

Respuesta

15

No es requerido por PHP, pero puede causar problemas con algunas herramientas de diff. La advertencia es solo una advertencia y se puede ignorar si se desea, pero recomendaría seguir la convención y que el último carácter sea una nueva línea.

+0

¿me puede mostrar un ejemplo, por favor ... mirando a el mismo problema. –

5

La advertencia es para ayudarlo a detectar un archivo truncado posiblemente defectuoso, en el supuesto de que el archivo sin una nueva línea al final sea sospechoso de ser truncado.

¡Aparte de eso, la única razón para evitar los archivos de origen sin una nueva línea de finalización es evitar la advertencia!

3

Probablemente deriva del estándar C: http://c0x.coding-guidelines.com/5.1.1.2.html (párrafo 123). Las razones incluyen que algunos compiladores u otras herramientas de procesamiento de textos de texto procesen el código fuente línea por línea, por lo que también la última línea fuente debe terminar con un carácter de línea nueva.

También vea esto: "No newline at end of file" compiler warning - include ing un archivo sin una nueva línea al final podría causar problemas similares, como en C.

0

Ésta es una PSR-2 convention que dice:

Todos los archivos PHP debe terminar con una sola línea en blanco

¿Por qué? Porque las utilidades que se supone que operan en archivos (como el diff utility) pueden no funcionar bien con líneas que no terminan con una nueva línea; así es como POSIX estados en uno de sus rules:

3,206 Línea

Una secuencia de cero o más caracteres no más un carácter de terminación .

Por lo tanto, las líneas que no terminan en un carácter de nueva línea no se consideran líneas reales. Lo que significa que: si su última línea es una línea de código (en lugar de una línea vacía), esas herramientas podrían ignorarla y hacer que su programa se rompa.

Cuestiones relacionadas