![]() ![]() Not at all confusingly it also provides lib/Minify/JS/ClosureCompiler.php, which is an entirely different way to use the Closure Compiler - this time via Google's public REST API for it.It includes lib/Minify/ClosureCompiler.php, which is a wrapper around the offline Java version of Google's Closure Compiler - you're expected to provide it with a copy of the CC.Despite the name, JSMin+ is a completely different project from (anything else at all called) JSMin, it is not an unofficial successor nor is it based on JSMin (again, whatever you consider to be 'JSMin' exactly - the original code, or any of its various ports) in any way. This is a copy of JSMin+, which is by all appearances abandoned by its author (though there were two years between the releases of 1.3 and 1.4, so who knows). Again see below for details, but briefly, this code is clearly non-free by Debian and Fedora standards, as it imposes a 'field-of-use' restriction. Grove, so the mrclay/minify version is now a fork. mrclay has continued to work on it in his tree since it was abandoned by Mr. It lived at Google Code until it was moved for license reasons (see long bit below!) to GitHub, where it is now very definitely unmaintained. This (so far as I can figure out) originated as a port of Douglas Crockford's JSMin (which is written in C), by Ryan Grove. It also, for no goddamn reason I can see, ships a different but far less complete port of the YUI Compressor, as lib/Minify/YUI/CssCompressor.php.It includes the github project YUI-CSS-compressor-PHP-port - which is, as the name suggests, a PHP port of the CSS bit of Yahoo's YUI Compressor, which is written in Java.It has its own CSS minifier, Minify_CSS_Compressor.But because choice is oh so tasty, it includes at least three CSS minifiers and two JS minifiers, and lets you pick whichever you like! it's sort of trying to do the same thing as Assetic, only it's a rather older and smaller implementation. In its own words, it's "an HTTP content server", i.e. It's not just a minification library, or even several minification libraries. mrclay/minify looks, to my monkey eyes at least, like a fairly hairy ball of olde-worlde PHP craziness. Then I looked at the JS minifier, though, and started to encounter the crazy. mrclay/minify and its exciting assortment of minifiers It doesn't appear to be a port or rewrite of any other minifier. ![]() It claims to be just a github mirror of this 'cssmin' project, but in fact it's clearly being actively maintained and has developed on from that project I'm treating it as its own project, now. It loses some points for not being sanely laid out (there's one source file with a whole bunch of classes in it and it just uses classmap autoloading.), but basically it minifies CSS and that's it. I started out by taking a look at natxet/CssMin, which isn't too horrible. ![]() To back those, ownCloud's composer.json now pulls in mrclay/minify and natxet/CssMin. The filters ownCloud currently uses are Assetic's CssMinFilter and JSMinFilter. Craziness follows - but if you're interested in a performance comparison of available PHP web asset minifiers, skip it and look down a bit further. Not surprisingly, this being the world of PHP, there's some fun craziness here. This means it grows some new dependencies on the minimization libraries that back the Assetic filters. With the PR linked above, OC 8 does minification using Assetic filters. It didn't do any minification at that point, though. In ownCloud 7 they switched to using Assetic for asset management, which is a lot better. A few releases back OC delivered CSS and JavaScript itself and minified them in real time, using minifiers ripped out of the Mediawiki source code. Today I wound up looking at OC's new web asset minification stuff. When I've had time for 'side projects' lately I've mostly been working on preparing the ground for ownCloud 8 in Fedora, trying to get out ahead of upstream changes and package new library dependencies.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |