? Pending

User tests: Successful: Unsuccessful:

avatar Fedik
Fedik
6 Jan 2019

Summary of Changes

As discussed in #23415.
The patch splits WebAssetRegistry to WebAssetRegistry and WebAssetManager.
Additionally it fixes FIFO order of enabled assets and fix #23415.

In general

In general now it like that:

$registry = new WebAssetRegistry;
$registry->add(new WebAssetItem('mother'));
$registry->add(new WebAssetItem('father'));
$registry->add(new WebAssetItem('child1', ['dependencies' => ['mother', 'father']]));

$manager = new WebAssetManager($registry );
$manager->enableAsset('child1'); // Will enable 'child1' asset and all its 'dependencies'
$manager->enableAsset('foo'); // Throw an exception UnknownAsset
$registry->add(new WebAssetItem('foo'));
$manager->enableAsset('foo'); // Will NOT throw an exception UnknownAsset :)

// Check if asset available in registry without an exception
if ($registry->exists('bar'))
{
    $manager->enableAsset('bar');
}

In Joomla! context

In Joomla! context WebAssetRegistry is a global service, and WebAssetManager per document instance.
Internaly WebAssetRegistry load all known assets from joomla.asset.json.

Work with WebAssetManager:

// Get WebAsset manager instance
$wa = CMSFactory::getDocument()->getWebAssetManager();

// Enable asset
$wa->enableAsset('foo');

// Add new asset on runtime
$wr = $wa->getRegistry();
$wr->add(new WebAssetItem('bar'));

// Add a custom registry file joomla.asset.json
$wr->addRegistryFile($path);

@mbabker @wilsonge please review

Documentation Changes Required

yeap

for reference #22435

avatar Fedik Fedik - open - 6 Jan 2019
avatar Fedik Fedik - change - 6 Jan 2019
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 6 Jan 2019
Category Libraries
avatar Fedik Fedik - change - 7 Jan 2019
Labels Added: ?
avatar Fedik Fedik - change - 7 Jan 2019
The description was changed
avatar Fedik Fedik - edited - 7 Jan 2019
avatar wilsonge wilsonge - change - 8 Jan 2019
Status Pending Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2019-01-08 23:38:22
Closed_By wilsonge
avatar wilsonge wilsonge - close - 8 Jan 2019
avatar wilsonge wilsonge - merge - 8 Jan 2019
avatar wilsonge
wilsonge - comment - 8 Jan 2019

This looks much better as an API :)

Add a Comment

Login with GitHub to post a comment