Open GoogleCodeExporter opened 9 years ago
Note: This is more of a task/enhancement, but for some reason I could only
enter it as
a 'defect'.
Original comment by leeked
on 21 Apr 2009 at 6:39
How do you imagine such an integration? What would the API/end user code look
like?
I've yet to do any serious work with ZF, but making Minify easier to work into
existing frameworks is a goal I'm behind.
At the very least we could host some code in the repo/guide on the wiki.
Original comment by mrclay....@gmail.com
on 21 Apr 2009 at 7:27
I've done some integration with Zend Framework on projects I work on, and so
far its
consisted of the following pieces:
-config file that is an array of js or css files
-section in the Initializer that uses Zend_Registry to register the array of
js/css
to be used by other classes (view helper)
-view helper use Minify_Build and config array in Zend_Registry to render the
script
include, or include the scripts un-minified if a disabled flag is set (useful
for
development)
-last piece is a js.php or css.php file in the public that gets the same js/css
config array, and actually outputs the minified data using Minify::serve();
There may be a better way, but so far that's what I've come up with. I'd be
glad to
help out with sharing the View Helper, and other pieces of code as a tutorial
of sorts.
Original comment by bmhar...@gmail.com
on 9 Jun 2009 at 8:08
It would be great if it tapped into the HeadSCript and HeadStyle plugins, so
you
wouldn't need a config array of files to maintain. By extending those plugins
you could
potentially create a unified minified file per page, and wirte the reference
for that new
file into the HTML page -- all without affecting anything either the developer
or the end
user comes into regular contact with.
Original comment by marcelko...@googlemail.com
on 16 Feb 2010 at 11:22
I already wrote Zend framework plugins for Minify, although some of the code is
slightly specific to my own project (and thus you couldn't just drop these two
plugin
files in place and use them). I did this via View Helpers (created one called
MinifyScript.php and one called MinStyleSheets.php) and then in my layout I
call to
<?= $this->minStyleSheets() ?>
<?= $this->minifyScript() ?>
instead of $this->headScript() and $this->headLink() or whatever it was before.
Downside is that if you had any other <link /> tags they wouldn't print, but in
my
case I did not. I imagine MinStyleSheets.php could probably be expanded to
clear out
stylesheet link tags and leave all others in place, and $this->headLink() could
still
be called, but I didn't fiddle much with it. Same goes for $this->headScript()
(as a
result of how I did this, I had to duplicate some code to handle inline scripts
in
MinifyScript, but if the linked scripts were just cleared out, you could still
call
headScript() instead which I think is cleaner, but again, I didn't fiddle much
with it).
Note that this approach requires you to use the headLink()/headScript() view
helpers
to add javascript and CSS files
$this->headLink()->appendStylesheet( $this->baseUrl . '/public/userbar.css' );
$this->headScript()->appendFile( $this->baseUrl .
'/public/javascript/userbar.js' );
In both functions you'd need to fix getMinUrl() and getBaseUrl(), and replace
any
references of FrameWork_Lib::getBaseURI() in the files.
Hopefully the attached files help.
Original comment by brandon....@gmail.com
on 16 Feb 2010 at 1:51
Attachments:
Oh, to add to my last comment, I had a basis for both classes (I didn't write
them
from scratch). Reference to the original code:
http://www.gsdesign.ro/blog/minify-css-in-zendframework/
Original comment by brandon....@gmail.com
on 16 Feb 2010 at 1:53
[deleted comment]
You might want to glimpse at a similar component I have built for my library
(which uses Zend Framework. It can minify and bundle in a master file css and
js using common algorithms such as Yui or Crockford) and of course code from
here (big thanks to the author for the Yui implementation) it uses the headLink
and headScript view helpers, it can append inline scripting and it caches
everything so that the file is not generated over and over. The library is
still in early development but maybe that could help you a bit in what you
would want to achieve. Code is written in PHP5.3. No documentation as of yet
but who knows, it may still be of use for someone up to today! You can check it
out here:
http://github.com/majisti/Majisti/tree/master/library/Majisti/View/Helper/Head/
Original comment by Rat...@gmail.com
on 21 Jun 2010 at 11:58
Brandon made a great start. But I was looking for a drop in replacement for
headLink(). I have made a version which needs Minify on the include path. It
outputs the generated css file to a local file instead of calling the php
version of minify. I guess the web server can just as well (with less memory
usage!) send the static file and headers needed.
It is not thoroughly tested and should be considered a draft. The interface of
Minify is not really that great to use for integration into other applications,
as it has a lot of cross references. But it should do the job.
Usage:
1. Add the file to your library.
2. Set up the view to use the new helper.
3. Create a folder 'cached' in your document root.
Original comment by mkoons...@gmail.com
on 30 Jun 2010 at 6:31
Attachments:
Great Stuff mkoonstra this is much more along the lines I was looking for.
I've also implemented a similar solution for HeadScript which uses the google
closure compiler:
http://github.com/balupton/balphp/blob/master/lib/Bal/View/Helper/HeadScriptBund
ler.php
Original comment by balup...@gmail.com
on 16 Oct 2010 at 12:43
Drop in Zend Script Helpers for Minify ->
https://github.com/bubba-h57/zf-helpers
Original comment by r...@hines57.com
on 10 Feb 2011 at 5:20
thanks
Original comment by vinusem...@gmail.com
on 11 Feb 2011 at 7:49
Original comment by mrclay....@gmail.com
on 3 Sep 2011 at 11:43
Original issue reported on code.google.com by
leeked
on 21 Apr 2009 at 6:38