Install
Works with Drupal: 8.xUsing Composer to manage Drupal site dependencies
Alternative installation files
Release notes
Compatible with Drupal core 8.0.x-8.4.x
Installation Instructions:
If a new site just install as normal.
If upgrading from an old install, delete the old module files as some files have been removed/renamed etc. (Not required if using Composer/Drush as they do that automatically prior to upgrading any package). Also make sure to run the database updates (drush updb or update.php).
Pretty major re-factor in the underlying code and methodology, however very similar in terms of actual functionality and user interaction.
Primary differences:
- No longer overrides the core asset handling but instead runs in the middle of that. This has way way better interoperability with other modules.
- Optimizes files individually. Great if you use HTTP/2 Server Push - and improves performance in all cases.
- Supports Brotli compression (smaller file size than Gzip) if the server has Brotli enabled.
Full changeset from 8.x-2.4:
- #2892640 by pminf, NickWilde: CSS optimizers url update does not include base path
- HTML readme generated from the markdown version for convenience.
- Readme updates for all sub-modules
- Standards fixes
- Typo fix
- Readme Updates
- Improve README.md
- Initial implementation of CSS Selector limiter for 8.x-3.x
- Update the asset array with the (possibly) modified array after optimizing the array for both CSS & JS assets.
- Allow subscribers to AssetOptimizationEvents to change the asset array.
- Update tests to removed deprecated asserts (mostly assert[No]Raw)
- Convert simpletest->PHPUnit: CdnTest
- Convert simpletest->PHPUnit: AdminPagesTest and all tests that extend it.
- Convert simpletest->PHPUnit: AdvaggPathManipulationTest
- Convert simpletest->PHPUnit tests: AdvaggTestBase -> AdvaggFunctionalTestBase
- Add .csslintrc to exclude test css files.
- Fix CSS minifier's handling of charset declarations.
- Css minification tests
- Ignore test JS files and included JS files from vendors when linting.
- Standards fixes.
- Don't test JSMin minification if the JSMin extension is unavailable.
- #2888100 by StryKaizer, NickWilde: jsqueeze licensing information is inverted
- Test JsMinifier::optimize() when minifier set to JShrink
- Test JsMinifier::optimize() when minifier set to JSqueeze.
- Test JsMinifier::optimize() when minifier set to JSMinPlus
- Test JsMinifier::optimize() when minifier set to JSMin.
- Test advagg_js_minify JsMinifier::clean()
- Fairly complete testing of the CDN sub module.
- Install functionality for advagg_cdn to clear caches so it just works on install.
- Typo fix in .htaccess generator
- *More* (sigh) improvements for some files that JSMin doesn't deal with nicely.
- Only write files/run compression on the data if the files don't exist.
- Include original file name in cache data for optimized files.
- Extra update function for those updating from 8.x-2.x remove advagg_bundler from db
- Fix: Use correct callback syntax for OO callback in RemoveConsoleLog and TranslateCss
- #2830672 by NickWilde: Can we add a setting to remove console.log in production?
- Ensure optimized filename is unique based on contents. Enables better caching on external servers/browser cache.
- Add option to use SymLinksIfOwnerMatch instead of FollowSymlinks. This works better for some server configurations.
- Ensure regeneration of htaccess files when settings change
- Add option to add the immutable tag to Apache cache tags (true by default).
- Fix: add missing param docblock to SingleAssetOptimizerBase::__construct()
- Add htaccess so that the generated brotli compressed files are served.
- git commit -m 'Issue #2883494 by NickWilde: Inline loadCSS library broken due to Core change'
- Fix: PHP5.6 compatibility: Scalar hints introduce in PHP7x
- basic brotli support for advagg optimized files
- refactor: move js_* config setting to subkeys under js mapping in advagg.schema
- fix: misnamed function in advagg_ext_minify.install (copy-pasta)
- Advagg Validator Module refactored for 8.x-3.x
- Use REQUEST_TIME for now even though it's deprecated to maintain compatibility with D8.0-8.2
- Remove usage of the datetime.time service. It was introduced in 8.3. Everyone *should* be moving to 8.3 but for now advagg will be compatible with 8.0-8.x
- (temporarily) remove advagg_validator submodule. to be refactored but unimportant module so.
- Standards fixes. Just a few.
- remove unused use statement
- remove core_groups options as no longer used. update settings form.
- (re)implement css combine media
- Adjust AssetOptimizer::optimizeFile() to allow it to change the asset array
- remove override of core CssCollectionGrouper
- Update uninstalled functionality
- Remove JsCollectionGrouper override as it causes conflicts with minimal gain.
- Updated readme (could certainly use some more love but it isn't totally inaccurate now)
- Updated hook_requirements()
- Updated Info form
- remove update function that references services that no longer exists
- Updated API/Developer documentation
- comment fix
- Refactor: remove advagg_bundler sub module. It was poorly implemented in 8.x-2.x and better to use mostly core really.
- define advagg logger channel
- Refactored advagg_ext_minify
- a simple gitignore for PHPStorm files.
- Refactored advagg_mod
- advagg_js_minify: typo fix
- move advagg_css_minify migration templates to the right spot
- Refactor advagg_css_minify sub module
- If creating optimized css files in a new location must also update any included relative urls.
- Rename advagg\Asset\AssetOptimizeInterface to advagg\Asset\SingleAssetOptimizerBase It isn't an interface it's an abstract class.
- remove testing function
- Overwrite existing optimized files if need be.
- Refactored advagg_js_minify module
- Convert hook to event for optimizing file contents.
- Update migration. Note: cache_level still exists but has different values.
- advagg_cdn: improve schema label for settings.minified
- refactor drush integrations
- rename service advagg.cache->cache.advagg since otherwise it sometimes messes up.
- refactor (minimal needed) for AdvAgg CDN sub module
- remove unused param in InfoForm::getFileInfoAjax
- refactored Operations form
- re-implemented cron functionality
- Refactored InfoForm
- typo fix in accessing cached prefetch data.
- Remove classes overriding core render attachment processor classes. Implementing functionality through different methods to avoid conflicts. @see Drupal/advagg/EventSubscriber/ResponseSubscriber
- Remove outdated options from settings form. Improve readability and ux of settings form.
- Remove outdated config settings
- Output prefetch link elements in the html head.
- move advagg_drupal_sort_css_js_stable() to AssetOptimizer::sortStable() Used in advagg_mod submodule.
- docstring improvements
- Improve the hook_implements_alter() implementation for current version of advagg
- remove reference to old D7 hook
- Cache DNS prefetch data for local files.
- Alter AssetOptimizer::scanFile to better allow future caching of non-path data.
- Minimal DNS prefetch implementation.
- REQUEST_TIME is deprecated in Drupal 8.3+ replace with TimeInterface
- Basically complete refactor of the core module.
- drupal_alter doesn't exist in any D8 branch and we're using moduleHandler::alter so don't test themes for hooks.
- Remove AssetDumper as it adds no significant value with the refactoring.