YUICompressor или подобное в PHP?

Я использовал yuicompressor.jar на своем тестовом сервере для минимизации измененных файлов JavaScript на лету. Теперь, когда я развернул сайт на общедоступном сервере, я заметил, что политики сервера запрещают использование exec () или его эквивалентов, поэтому для меня больше нет java-исполнения.

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

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

EDIT: Чтобы уточнить, я ищу что-то, что не обязательно должно использоваться как автономное (т. Е. Его можно вызывать из функции, а не обнюхивать мои переменные GET). Если бы я просто хотел компрессор, Minify, очевидно, был бы хорошим выбором.

EDIT2: За пять лет с тех пор, как я задал этот вопрос, многое изменилось. Сегодня я настоятельно рекомендую отделить интерфейсный рабочий процесс от кода сервера. Есть много хороших инструментов для разработки JS вокруг и за исключением самых тривиальных улучшений jQuery, это лучшая идея иметь полный рабочий процесс с автоматическим связыванием, тестированием и линией на месте и просто развертывать мини-пакеты, а не сырые файлы.

Related of "YUICompressor или подобное в PHP?"

Да, это называется minify .

Единственное, о чем нужно беспокоиться, как сложность, – это создать группу , и в этом нет ничего. Отредактируйте файл groupsConfig.php, если вы хотите, чтобы несколько JS / CSS в одном выражении <script> или <link> :

 return array( 'js-common' => array('//js/jquery/jquery-1.3.2.min.js', '//js/common.js', '//js/visuals.js', '//js/jquery/facebox.js'), 'css-common' => array('//css/main.css', '//css/layout.css','//css/facebox.css') ); 

Чтобы включить вышеупомянутую группу «js-common», сделайте следующее:

 <script type="text/javascript" src="/min/g=js-common"></script> 

(я знаю, что искал то же самое, не зная, как обращаться непосредственно с файлом jar с помощью php – вот как я оказался здесь, поэтому я делюсь тем, что нашел)

Minify – огромная библиотека с множеством функциональных возможностей. Однако мини-часть – очень маленький класс: http://code.google.com/p/minify/source/browse/trunk/min/lib/Minify/YUICompressor.php

& очень проста в использовании:

 //set the path to the jar file Minify_YUIcompressor::$jarFile=_ROOT.'libs/java/yuicompressor.jar'; //set the path to a writable temp folder Minify_YUIcompressor::$tempDir=_ROOT.'temp/'; //minify $yourcssminified=Minify_YUIcompressor::minifyCss($yourcssstringnotminified,$youroptions) 

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

Я не хорошо читал вопрос, так как minify основан на использовании файлов jar, op не может использовать его в любом случае с его конфигурацией сервера

Минимизация также включает другие методы минимизации, чем yui, например:

http://code.google.com/p/minify/source/browse/trunk/min/lib/JSMinPlus.php?r=443&spec=svn468

Попробуй Лиссу :

Lissa – это универсальная утилита загрузки CSS и JavaScript. Lissa является расширением YUI PHP Loader, направленным на решение одного из ограничений текущего загрузчика; комбинированная загрузка. YUI PHP Loader поставляется с комбо-загрузчиком, который способен уменьшать HTTP-запросы и повышать производительность, выведя все требования JavaScript и / или CSS YUI в виде единого запроса на тип ресурса. Значение, даже если вам нужны 8 компонентов YUI, которые в конечном итоге сводятся к 13 файлам, вы все равно будете делать только 2 HTTP-запроса; один для CSS и другой для JavaScript. Это здорово, но как насчет пользовательских ресурсов, отличных от YUI. YUI PHP Loader будет загружать их, но загружает их как отдельные, и, следовательно, они пропускают преимущества комбинированного сервиса и количество HTTP-запросов для страницы увеличивается. Lissa работает над этим ограничением, используя YUI PHP Loader для обработки загрузки и сортировки зависимостей YUI и / или настраиваемых ресурсов и пар, которые работают с Minify.