chewett/cache-n-crunch

Asset management and php caching system using uglifyjs for javascript assets

v0.1.3 2016-12-23 20:57 UTC

README

Version 0.1 was a proof of concept to test if it worked. Since this does indeed appear to work im going to rework it to fill a number of potential objectives:

  • Ability to state which files you want to crunch and load
  • One file will be produced per set of crunch files. If you crunch A, B, and A+B they will exist as 3 separate crunch files
  • The output of crunch A and B will not be used for A and B, and will be completely separate
  • If the combined crunch is not available on the filesystem an exception will be thrown
  • In debug mode the raw files will be loaded instead of the crunched file
  • In debug mode, every time the raw files are loaded they are crunched
    • These crunched files will be saved as a new revision and will allow easy deployment calling the specific crunch method
    • When crunching files manually it will check for these new cached files and use them if present to speed up cache deployment
    • Some way to know which crunched files have new revisions you could deploy
  • CSS files will be supported to merge css into a single file
  • Uglify css will need to be ported over similarly to uglify js
    • maybe add some kind of similar interface, etc?
    • maybe allow any kind of crunching software to be plugged in?
  • Store a list of previously crunched files, and their current file somewhere "nice"
    • Allow a user to recrunch everything if its changed using above store
    • Allow marking a crunch as "stale" after a file has been removed from the filesystem
    • Some way to view this potentially?
  • Have some basic versioning of crunched files

Possible implementation

  • JSON store to store all the data about the files
  • Then export this to a basic php array file used for the main cache
  • JSON file stores all the details such as new files, etc
  • Each time the cache is modified json file is written out as a php file that works as the bootstrap

Usage

No documentation available currently

Installation

No documentation available currently

Tests

No documentation available currently

License

This is licensed under the MIT license. For more information see the LICENSE file.