Подтвердить что ты не робот

PHP: Есть ли причина поместить новую строку в конец файла

Когда я передаю файл php в github, я получаю сообщение "Нет новой строки в конце файла".

Это просто предупреждение, и я помню, что по какой-либо причине хорошо иметь новую строку в конце файла.

Но почему? Это остатки давно ушедших времен, у него все еще есть преимущества или он даже требуется в php? Если да, то по какой причине?

4b9b3361

Ответ 1

Это не требуется PHP, но это может вызвать проблемы с некоторыми инструментами diff. Предупреждение является просто предупреждением и может быть проигнорировано при желании, но я бы рекомендовал следующее соглашение и иметь последний символ в качестве новой строки.

Ответ 2

Это соглашение PSR-2, которое гласит:

Все файлы PHP ДОЛЖНЫ заканчиваться одной пустой строкой.

Почему? Потому что утилиты, которые должны работать с файлами (например, утилита diff), могут плохо справляться со строками, которые не заканчиваются символом новой строки; Вот как POSIX заявляет в одном из своих правил:

3.206 Line

Последовательность, равная нулю или более non- & lt; newline & gt; символы плюс завершающий символ.

Поэтому строки, не заканчивающиеся символом новой строки, не считаются фактическими. Это означает: если ваша последняя строка представляет собой строку кода (а не пустую строку), эти инструменты могут быть проигнорированы и могут привести к разрыву вашей программы!

Ответ 3

Предупреждение поможет вам обнаружить, возможно, дефектный, усеченный файл, при условии, что файл без новой строки в конце подозрительно усечен.

Кроме того, единственная причина избежать исходных файлов без завершения новой строки - это избежать предупреждения!

Ответ 4

Вероятно, он получен из стандарта C: http://c0x.coding-guidelines.com/5.1.1.2.html (пункт 123). Причиной этого является то, что некоторые компиляторы или другие средства текстовой обработки обрабатывают исходный код по строкам, поэтому последняя строка источника должна заканчиваться символом новой строки.

Также см. это: "Нет новой строки в конце файла" предупреждение компилятора - include Ввод файла без новой строки в конце может вызвать аналогичные проблемы, например, в C.

Ответ 5

Теперь в файлах PSR-12 # 2.2:

Все файлы PHP ДОЛЖНЫ использовать только конец строки Unix LF (перевод строки). Все файлы PHP ДОЛЖНЫ оканчиваться непустой строкой, заканчивающейся одним LF.