Сколько строк кода PHP слишком много для одного файла?

Я создаю PHP-файл, который выполняет 2 вызова базы данных mysql, а остальная часть скрипта-это операторы if для таких вещей, как file_exists и другие простые переменные. У меня есть около 2000 строк кода в этом файле до сих пор.

лучше ли включать отдельный файл, если оператор true; или просто введите код непосредственно в самом операторе if?

является ли их максимальное количество строк кода для одного файла, который должен быть соблюден с PHP?

8 ответов


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

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

  • судить читаемость исходного кода, всегда организовывать его что ж.
  • важно иметь логическое разделение в некоторой степени, если ваш файл делает оба: тяжелый доступ к базе данных, запись, модификация, рендеринг html, ajax и так далее.. Вы можете разделить вещи или использовать объектно-ориентированный подход.
  • всегда ищите баланс между логическим разделением и кодом. Он не должен быть грязным или очень аккуратным с большим количеством 10-строчных файлов

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

кроме того, имейте в виду, что включение (много) файлов замедлит выполнение вашего кода.


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

одна из проблем с таким языком, как PHP, заключается в том, что, за исключением некоторого творческого кэширования, каждая строка каждого включенного файла должна быть обозначена, пронесена через дерево синтаксического анализа и превращена в значимые инструкции каждый раз, когда запрашивается страница хостинга. Составлен платформы как .NET и Java не страдают от этого убийцы производительности.

кроме того, поскольку один из других плакатов упомянул MVC как способ сохранить файлы короткими: хорошая организация кода является функцией опыта и здравого смысла и никоим образом не связана с каким-либо конкретным шаблоном или архитектурой. MVC интересен, но не является решением этой проблемы.


вам нужно сосредоточиться на количестве строк? Нет, не обязательно. Просто убедитесь, что ваш код организован, эффективен и не излишне многословен.


2К строк слишком много для меня... Хотя это зависит от того, какой стиль кода Вы следуете, например, многие linebreaks, многие небольшие функции или хорошие комментарии api-контракта могут увеличить размер, хотя они являются хорошей практикой. Также хорошее форматирование кода может увеличить строки.

Что касается PHP, было бы хорошо знать: это 2K строк только с одним классом или только с одним большим кодом PHP без ООП? Он смешивается с шаблонными утверждениями и логикой программы (как я часто нахожу в PHP код)?

обычно я не считаю эти строки, когда в Сплит. Они просто вошли в привычки. Если код становится запутанным, я реагирую и рефакторинг. Еще заглянув в какой-то код, который мы как команда написали недавно, я вижу некоторые закономерности:

  • извлечь функцию / метод, если размер больше 20LOC (без комментариев) и использование предложений if/else
  • извлечение в другой класс, если размер > 200-300LOC
  • извлечь в другой пакет/папку, если артефакты >10

все равно это зависит от того, какой код у меня есть. Например, если задействованы нагрузки логики (if/else/switch / for), LOC для каждой функции уменьшается. Если почти нет никакой логики (простые глупые операторы кода с одним путем), пределы увеличиваются. В конце концов, самое важное правило: поймет ли человек код. Сможет ли она / он хорошо прочитать его?


Это действительно не имеет значения, если вы задокументировали свой код должным образом, максимально модульно и проверили на наличие каких-либо неэффективностей. У вас вполне может быть файл 10,000 line. Хотя я обычно разделяюсь примерно на 500-1000 для каждого раздела Приложения.


вы можете прочитать книгу, как Чистый код от Bob Martin. Вот несколько самородков из этой книги:--3-->

  • класс должен нести одну ответственность
  • функция должна делать одну вещь и делать ее хорошо

с PHP, если вы не используете подход класса; вы столкнетесь с проблемами дублирования. Сделайте себе одолжение и сделайте некоторое чтение по этому вопросу; это сэкономит вам гораздо больше времени на расширение и обслуживание.


Я не знаю никакого полезного способа разделить код, который так прост, особенно если все это принадлежит вместе семантически.

вероятно, более интересно подумать о том, можно ли устранить часть кода путем рефакторинга. Например, если вы часто используете определенную комбинацию проверок с немного разными переменными, это может помочь передать комбинацию проверок на аутсорсинг в функцию и вызвать ее там, где это необходимо.
Я помню, как однажды видел проект, который по большей части он был хорошо написан, но у него была проблема такого рода. Например, код для синтаксического анализа файла конфигурации был продублирован следующим образом:

if (file_exists("configfile")) {
  /* tons of code here */
} else if (file_exists("/etc/configfile")) {
  /* almost the same code again */
}

Это экстремальный пример, но вы понимаете идею.