-
Notifications
You must be signed in to change notification settings - Fork 42
Migrating to v2.4x
Astroid v2.4.x released with some major changes in the entire project and a large section of users are facing a lot of breaks on their website. Especially those users who ever edited the files of the TEMPLATE_PATH/html/frontend folder.
With v2.4.x, we aim to have no dependencies on template level and also have no breaking changes. However, things don’t always go as planned.
The reason for so many breaks, is major rewrite in the core library of Astroid, which was very important to keep in mind the future of framework. Here are some most important changes are summarized below that you should be aware while moving from v2.3.x to v2.4.x.
-
As all the dependencies have been moved from the template to the framework level, then we do not need some of these things, if we have not written some custom code in it. Also, Joomdev has release all of its templates with Astroid
2.4.xcompatibility. You can also update your Astroid based template using folllowing steps.- Remove
astroidandbootstrapfolders fromscss - Remove
@importofastroidandbootstrapand dependencies fromstyle.scss - Move
frontendfolder tohtml/frontend - Remove files from
frontendfolder those never customized or edited. -
Change
index.phpcode. - Template folder structure.
- Remove
optionsfolder fromastroidfolder - Remove
vendor,juifolders andscript.jsfile fromjsfolder
- Remove
-
-
If you are using following classes
AstroidFramework,AstroidFrameworkTemplate,AstroidFrameworkHelper,AstroidFrameworkConstants,AstroidMenuin your code then you must update these library code before getting completely depriciate. See Using Astroid\Framework -
All following
jimportare depriciated.jimport('astroid.framework.astroid'); jimport('astroid.framework.menu'); jimport('astroid.framework.template'); jimport('astroid.framework.helper'); jimport('astroid.framework.constants');
Use below code instead:
use Astroid\Framework; // using namespace $template = Framework::getTemplate(); $document = Framework::getDocument();
-
Getting Template Params
In frontend folder, Old code:
$value = $template->params->get('variable', 'default');
New Code:
$template = Astroid\Framework::getTemplate(); $params = $template->getParams(); $value = $pamams->get('variable', 'default');
-
Loading sublayout
Old Way:
jimport('astroid.framework.template'); $template = new AstroidFrameworkTemplate(); $template->loadLayout('header.sticky', true);
New Way:
use Astroid\Framework; $document = Framework::getDocument(); $document->include('header.sticky');
-
Using Menu
Old code:
jimport('astroid.framework.menu'); AstroidMenu::getMenu(ARGUMENTS);
New code:
use Astroid\Component\Menu; Menu::getMenu(ARGUMENTS);
-
NOTE: This document is still in progress. Please be in touch to stay updated.
