Роллинг и упаковка PHP скриптов - PullRequest
1 голос
/ 17 декабря 2008

Я только что прочитал эту ветку , где обсуждались плюсы и минусы использования include_once и require_once. Из этого обсуждения (в частности, ответ Ambush Commander ), я убрал тот факт (?), Что любое включение в PHP дорогостоящее по своей сути, поскольку требует, чтобы процессор анализировал новый файл в кодах OP. и т. д.

Это заставило меня задуматься.

Я написал небольшой скрипт, который «свернет» несколько файлов Javascript в один (добавляя все содержимое в другой файл), так что он может быть упакован для уменьшения HTTP-запросов и общей пропускной способности использование.

Как правило, для моих PHP-приложений у меня есть один файл «include.php», который включается на каждой странице, а затем включает все классы и другие необходимые мне библиотеки. (Я знаю, что это, вероятно, не лучшая практика, но она работает - функция PHP5 __autoload делает это лучше в любом случае).

Должен ли я применить ту же технику "прокатки" к моим PHP-файлам?

Мне известна эта поговорка о том, что преждевременная оптимизация - это зло, но давайте возьмем этот вопрос как теоретический, хорошо?

Ответы [ 4 ]

4 голосов
/ 10 ноября 2012

Существует проблема с Apache / PHP в Windows, из-за которой приложение работает очень медленно при загрузке или даже при касании слишком большого количества файлов (страница, которая загружает приблизительно 50-100 файлов, может тратить несколько секунд только на файловые операции). Эта проблема возникает как с включением / требованием, так и с файлами (fopen, file_get_contents и т. Д.). Так что, если вы (или, скорее всего, кто-то еще из-за возраста этого поста) запустите ваше приложение на apache / windows, вам абсолютно необходимо уменьшить количество загружаемых файлов. Объедините несколько классов PHP в один файл (для этого был бы полезен автоматический скрипт, я его еще не нашел) или будьте осторожны, чтобы не трогать ненужные файлы в вашем приложении.

1 голос
/ 17 декабря 2008

Это будет зависеть в некоторой степени от того, нужно ли больше разбирать несколько маленьких файлов или разбирать один большой. Если вам требуются файлы по мере необходимости (не говоря о том, что вы обязательно должны так делать), тогда, вероятно, для некоторых путей выполнения компиляция будет значительно меньше, чем если бы весь ваш код был свернут в один большой Файл PHP, который анализатор должен был закодировать полностью, независимо от того, был он нужен или нет.

В соответствии с этим вопросом, мы думаем вслух, а не просто как о внутреннем опыте работы с PHP, - это не звучит так, как будто есть какая-то реальная выгода от того, что ты слишком увлечен этим. Если вы столкнетесь с серьезным замедлением работы PHP, я был бы очень удивлен, если использование require_once оказалось узким местом.

1 голос
/ 17 декабря 2008

Как вы сказали: «преждевременная оптимизация ...». Опять же, если вы беспокоитесь о производительности, используйте кэш кода операции, такой как APC, что делает эту проблему почти исчезающей.

0 голосов
/ 17 декабря 2008

Это не ответ на ваш прямой вопрос, просто о вашей "упаковке js".

Если вы оставите свои файлы javascript в покое и разрешите их отдельное включение в источник HTML, браузер будет кэшировать эти файлы. Затем при последующих запросах, когда браузер запрашивает тот же файл javascript, ваш сервер вернет 304 неизмененный заголовок, и браузер будет использовать кэшированную версию. Однако, если вы «упаковываете» файлы javascript вместе при каждом запросе, браузер будет повторно загружать файл при каждой загрузке страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...