PHP - Разделить код на несколько файлов или сохранить его в как можно меньшем количестве файлов?
Прямо сейчас у меня есть скрипт, который достиг 400 КБ в 4 файлах (около 3500 строк в файле).
Должен ли я разделить его на несколько файлов?
Влияет ли наличие большего количества файлов на производительность из-за нескольких вызовов require_once
?
6 answers
У меня есть большой скрипт на 13000 строк, который я объединил из трех других, но он полностью связан с представлением и управлением пользователями, имеет дело с выводом и получением входных данных. Функции находятся в другом файле с 8000 строками, и я удостоверяюсь, что между ними нет утечки. Нет HTML в файле функций, нет SQL в основном файле. Было бы по-другому, если бы я мог использовать объекты? Конечно. Не могу.
Итак, мораль этой истории такова: все зависит от того, что делает вас удобным для сценарий, о котором идет речь. У меня есть еще один, состоящий из 5 небольших файлов, потому что так больше смысла; этот имеет смысл как два больших.
При использовании require
или include
PHP обрабатывает все файлы, как если бы это был один большой файл (представьте, что вы копируете и вставляете код из включенных файлов в свой основной файл).
Единственное, что вы действительно выиграете от разделения на отдельные файлы, - это организация. Организация может быть огромной при работе с таким количеством кода, так что это действительно зависит от того, что лучше всего подходит для вас.
Оборудование дешевое, программисты дорогие. Как сказал profitphp, снижение производительности незначительно. Что является большей тратой ресурсов в долгосрочной перспективе? сложность работы с файлом кода в десятки тысяч строк или время загрузки в микросекунды, которое вы сэкономите?
Я не знаю ваших мотивов, но если реорганизация вашего кода создаст для вас комфортные условия, действуйте! Однако будьте осторожны при рефакторинге, не откусывайте больше, чем можете прожевать. И используйте систему управления версиями.
Воздействие будет незначительным. Вы получите гораздо больше пользы от своей оптимизации, ускорения запросов к базе данных и т. Д. Включить или потребовать немного быстрее, чем require_once, хотя, поскольку ему не нужно проверять, было ли оно уже включено до этого.
Итак, чтобы ответить на вопрос: "Следует ли вам разделить его на большее количество файлов?". Конечно, если это сделает его чище, продолжайте.
Я бы серьезно посмотрел на использование фреймворка MVC, такого как Kohana
Разделите связанные строки на функции. Сгруппируйте связанные функции и данные в классы. Если вы не думаете о том, как вы организуете свой код во время его написания, вы создаете больше работы для кого-то другого или для себя в будущем.