Объединение и сжатие нескольких файлов JavaScript в php

Я работаю над PHP-приложением, которому требуется восемь файлов javascript (hello web2.0).

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

Конечным результатом является то, что я включил бы один .js-файл в заголовок, и этот файл .js будет содержать файлы .js в моем каталоге «includes / js».

Благодарю.

Вы можете использовать jsmin-php

Их пример кода:

require 'jsmin-1.1.1.php'; // Output a minified version of example.js. echo JSMin::minify(file_get_contents('example.js')); 

Вы можете легко присоединиться к нескольким js-файлам, выполнив что-то вроде:

 require 'jsmin-1.1.1.php'; // Output a minified version of example.js. echo JSMin::minify(file_get_contents('example.js') . file_get_contents('example2.js')); 

Я использовал Minify с моими jQuery / PHP-проектами с большим успехом. Он также включает кеширование, поэтому накладных расходов не так много.

Я в конечном итоге изменил ситуацию и использовал .htaccess для маршрутизации всех запросов в мою папку javascript на скрипт minify, например:

 <script type="text/javascript" src="/js/jquery.js,js/jquery-levitip.js,js/jquery-facebox.js,js/datepicker.js,js/ga.js"></script> 

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

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

Возможно, вы можете использовать Yahoo! JavaScript Compressor, который является инструментом командной строки, с которого вы можете начать с PHP-скрипта.

Вы можете попробовать PHP Speedy. Это объединит и сжат ваши файлы JS для вас в один файл. Он также сжимает ваши HTML и CSS, и ваша страница будет загружаться намного быстрее.

  function compress($buffer) { /* remove comments */ $buffer = preg_replace("/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/", "", $buffer); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace(array("\r\n","\r","\t","\n",' ',' ',' '), '', $buffer); /* remove other spaces before/after ) */ $buffer = preg_replace(array('(( )+\))','(\)( )+)'), ')', $buffer); return $buffer; } 

Источник: http://castlesblog.com/2010/august/14/php-javascript-css-minification