Release of v5.0.0-alpha8

Add power path override option on component level. Fix the sql build feature. #1032.
This commit is contained in:
2024-04-06 23:41:34 +02:00
parent 2f64eec95b
commit 2b7b8f90e1
762 changed files with 1900 additions and 1246 deletions

View File

@@ -0,0 +1,96 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Adminview\Data as AdminviewData;
use VDM\Joomla\Componentbuilder\Compiler\Adminview\Permission;
/**
* Compiler Adminview
*
* @since 3.2.0
*/
class Adminview implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(AdminviewData::class, 'Adminview.Data')
->share('Adminview.Data', [$this, 'getAdminviewData'], true);
$container->alias(Permission::class, 'Adminview.Permission')
->share('Adminview.Permission', [$this, 'getAdminviewPermission'], true);
}
/**
* Get the Compiler Adminview Data
*
* @param Container $container The DI container.
*
* @return AdminviewData
* @since 3.2.0
*/
public function getAdminviewData(Container $container): AdminviewData
{
return new AdminviewData(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Customcode.Dispenser'),
$container->get('Model.Customtabs'),
$container->get('Model.Tabs'),
$container->get('Model.Fields'),
$container->get('Model.Historyadminview'),
$container->get('Model.Permissions'),
$container->get('Model.Conditions'),
$container->get('Model.Relations'),
$container->get('Model.Linkedviews'),
$container->get('Model.Javascriptadminview'),
$container->get('Model.Cssadminview'),
$container->get('Model.Phpadminview'),
$container->get('Model.Custombuttons'),
$container->get('Model.Customimportscripts'),
$container->get('Model.Ajaxadmin'),
$container->get('Model.Customalias'),
$container->get('Model.Sql'),
$container->get('Model.Mysqlsettings'),
$container->get('Compiler.Builder.Site.Edit.View')
);
}
/**
* Get the Compiler Adminview Permission
*
* @param Container $container The DI container.
*
* @return Permission
* @since 3.2.0
*/
public function getAdminviewPermission(Container $container): Permission
{
return new Permission(
$container->get('Compiler.Builder.Has.Permissions')
);
}
}

View File

@@ -0,0 +1,221 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowAddInterface;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller\AllowAdd as J5ControllerAllowAdd;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowAdd as J4ControllerAllowAdd;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowAdd as J3ControllerAllowAdd;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditInterface;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller\AllowEdit as J5ControllerAllowEdit;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowEdit as J4ControllerAllowEdit;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowEdit as J3ControllerAllowEdit;
/**
* Architecture Controller Service Provider
*
* @since 3.2.0
*/
class ArchitectureController implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(AllowAddInterface::class, 'Architecture.Controller.AllowAdd')
->share('Architecture.Controller.AllowAdd', [$this, 'getAllowAdd'], true);
$container->alias(J5ControllerAllowAdd::class, 'Architecture.Controller.J5.AllowAdd')
->share('Architecture.Controller.J5.AllowAdd', [$this, 'getJ5ControllerAllowAdd'], true);
$container->alias(J4ControllerAllowAdd::class, 'Architecture.Controller.J4.AllowAdd')
->share('Architecture.Controller.J4.AllowAdd', [$this, 'getJ4ControllerAllowAdd'], true);
$container->alias(J3ControllerAllowAdd::class, 'Architecture.Controller.J3.AllowAdd')
->share('Architecture.Controller.J3.AllowAdd', [$this, 'getJ3ControllerAllowAdd'], true);
$container->alias(AllowEditInterface::class, 'Architecture.Controller.AllowEdit')
->share('Architecture.Controller.AllowEdit', [$this, 'getAllowEdit'], true);
$container->alias(J5ControllerAllowEdit::class, 'Architecture.Controller.J5.AllowEdit')
->share('Architecture.Controller.J5.AllowEdit', [$this, 'getJ5ControllerAllowEdit'], true);
$container->alias(J4ControllerAllowEdit::class, 'Architecture.Controller.J4.AllowEdit')
->share('Architecture.Controller.J4.AllowEdit', [$this, 'getJ4ControllerAllowEdit'], true);
$container->alias(J3ControllerAllowEdit::class, 'Architecture.Controller.J3.AllowEdit')
->share('Architecture.Controller.J3.AllowEdit', [$this, 'getJ3ControllerAllowEdit'], true);
}
/**
* Get The AllowAddInterface Class.
*
* @param Container $container The DI container.
*
* @return AllowAddInterface
* @since 3.2.0
*/
public function getAllowAdd(Container $container): AllowAddInterface
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowAdd');
}
/**
* Get The AllowAdd Class.
*
* @param Container $container The DI container.
*
* @return J5ControllerAllowAdd
* @since 3.2.0
*/
public function getJ5ControllerAllowAdd(Container $container): J5ControllerAllowAdd
{
return new J5ControllerAllowAdd(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser')
);
}
/**
* Get The AllowAdd Class.
*
* @param Container $container The DI container.
*
* @return J4ControllerAllowAdd
* @since 3.2.0
*/
public function getJ4ControllerAllowAdd(Container $container): J4ControllerAllowAdd
{
return new J4ControllerAllowAdd(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser')
);
}
/**
* Get The AllowAdd Class.
*
* @param Container $container The DI container.
*
* @return J3ControllerAllowAdd
* @since 3.2.0
*/
public function getJ3ControllerAllowAdd(Container $container): J3ControllerAllowAdd
{
return new J3ControllerAllowAdd(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser')
);
}
/**
* Get The AllowEditInterface Class.
*
* @param Container $container The DI container.
*
* @return AllowEditInterface
* @since 3.2.0
*/
public function getAllowEdit(Container $container): AllowEditInterface
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowEdit');
}
/**
* Get The AllowEdit Class.
*
* @param Container $container The DI container.
*
* @return J5ControllerAllowEdit
* @since 3.2.0
*/
public function getJ5ControllerAllowEdit(Container $container): J5ControllerAllowEdit
{
return new J5ControllerAllowEdit(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Category.Other.Name')
);
}
/**
* Get The AllowEdit Class.
*
* @param Container $container The DI container.
*
* @return J4ControllerAllowEdit
* @since 3.2.0
*/
public function getJ4ControllerAllowEdit(Container $container): J4ControllerAllowEdit
{
return new J4ControllerAllowEdit(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Category.Other.Name')
);
}
/**
* Get The AllowEdit Class.
*
* @param Container $container The DI container.
*
* @return J3ControllerAllowEdit
* @since 3.2.0
*/
public function getJ3ControllerAllowEdit(Container $container): J3ControllerAllowEdit
{
return new J3ControllerAllowEdit(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Category.Other.Name')
);
}
}

View File

@@ -0,0 +1,209 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Model\CanDeleteInterface;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model\CanDelete as J5ModelCanDelete;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Model\CanDelete as J4ModelCanDelete;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Model\CanDelete as J3ModelCanDelete;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Model\CanEditStateInterface;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model\CanEditState as J5ModelCanEditState;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Model\CanEditState as J4ModelCanEditState;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Model\CanEditState as J3ModelCanEditState;
/**
* Architecture Model Service Provider
*
* @since 3.2.0
*/
class ArchitectureModel implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(J3ModelCanDelete::class, 'Architecture.Model.J3.CanDelete')
->share('Architecture.Model.J3.CanDelete', [$this, 'getJ3ModelCanDelete'], true);
$container->alias(J4ModelCanDelete::class, 'Architecture.Model.J4.CanDelete')
->share('Architecture.Model.J4.CanDelete', [$this, 'getJ4ModelCanDelete'], true);
$container->alias(J5ModelCanDelete::class, 'Architecture.Model.J5.CanDelete')
->share('Architecture.Model.J5.CanDelete', [$this, 'getJ5ModelCanDelete'], true);
$container->alias(CanDeleteInterface::class, 'Architecture.Model.CanDelete')
->share('Architecture.Model.CanDelete', [$this, 'getModelCanDelete'], true);
$container->alias(J3ModelCanEditState::class, 'Architecture.Model.J3.CanEditState')
->share('Architecture.Model.J3.CanEditState', [$this, 'getJ3ModelCanEditState'], true);
$container->alias(J4ModelCanEditState::class, 'Architecture.Model.J4.CanEditState')
->share('Architecture.Model.J4.CanEditState', [$this, 'getJ4ModelCanEditState'], true);
$container->alias(J5ModelCanEditState::class, 'Architecture.Model.J5.CanEditState')
->share('Architecture.Model.J5.CanEditState', [$this, 'getJ5ModelCanEditState'], true);
$container->alias(CanEditStateInterface::class, 'Architecture.Model.CanEditState')
->share('Architecture.Model.CanEditState', [$this, 'getModelCanEditState'], true);
}
/**
* Get The Model CanDelete Class.
*
* @param Container $container The DI container.
*
* @return CanDeleteInterface
* @since 3.2.0
*/
public function getModelCanDelete(Container $container): CanDeleteInterface
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Architecture.Model.J' . $this->targetVersion . '.CanDelete');
}
/**
* Get The Model CanDelete Class.
*
* @param Container $container The DI container.
*
* @return J5ModelCanDelete
* @since 3.2.0
*/
public function getJ5ModelCanDelete(Container $container): J5ModelCanDelete
{
return new J5ModelCanDelete(
$container->get('Config'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The Model CanDelete Class.
*
* @param Container $container The DI container.
*
* @return J4ModelCanDelete
* @since 3.2.0
*/
public function getJ4ModelCanDelete(Container $container): J4ModelCanDelete
{
return new J4ModelCanDelete(
$container->get('Config'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The Model CanDelete Class.
*
* @param Container $container The DI container.
*
* @return J3ModelCanDelete
* @since 3.2.0
*/
public function getJ3ModelCanDelete(Container $container): J3ModelCanDelete
{
return new J3ModelCanDelete(
$container->get('Config'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The Model Can Edit State Class.
*
* @param Container $container The DI container.
*
* @return CanEditStateInterface
* @since 3.2.0
*/
public function getModelCanEditState(Container $container): CanEditStateInterface
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Architecture.Model.J' . $this->targetVersion . '.CanEditState');
}
/**
* Get The Model Can Edit State Class.
*
* @param Container $container The DI container.
*
* @return J5ModelCanEditState
* @since 3.2.0
*/
public function getJ5ModelCanEditState(Container $container): J5ModelCanEditState
{
return new J5ModelCanEditState(
$container->get('Config'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The Model Can Edit State Class.
*
* @param Container $container The DI container.
*
* @return J4ModelCanEditState
* @since 3.2.0
*/
public function getJ4ModelCanEditState(Container $container): J4ModelCanEditState
{
return new J4ModelCanEditState(
$container->get('Config'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The Model Can Edit State Class.
*
* @param Container $container The DI container.
*
* @return J3ModelCanEditState
* @since 3.2.0
*/
public function getJ3ModelCanEditState(Container $container): J3ModelCanEditState
{
return new J3ModelCanEditState(
$container->get('Config'),
$container->get('Compiler.Creator.Permission')
);
}
}

View File

@@ -0,0 +1,870 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitch;
use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitchList;
use VDM\Joomla\Componentbuilder\Compiler\Builder\AssetsRules;
use VDM\Joomla\Componentbuilder\Compiler\Builder\AdminFilterType;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Alias;
use VDM\Joomla\Componentbuilder\Compiler\Builder\BaseSixFour;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Category;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryCode;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CheckBox;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ComponentFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ConfigFieldsets;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ConfigFieldsetsCustomfield;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ContentMulti;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ContentOne;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Contributors;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomAlias;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomField;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomFieldLinks;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomList;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomTabs;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseKeys;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseTables;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUniqueGuid;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUniqueKeys;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUninstall;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DoNotEscape;
use VDM\Joomla\Componentbuilder\Compiler\Builder\DynamicFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ExtensionCustomFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ExtensionsParams;
use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldGroupControl;
use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldNames;
use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldRelations;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Filter;
use VDM\Joomla\Componentbuilder\Compiler\Builder\FootableScripts;
use VDM\Joomla\Componentbuilder\Compiler\Builder\FrontendParams;
use VDM\Joomla\Componentbuilder\Compiler\Builder\GetAsLookup;
use VDM\Joomla\Componentbuilder\Compiler\Builder\GetModule;
use VDM\Joomla\Componentbuilder\Compiler\Builder\GoogleChart;
use VDM\Joomla\Componentbuilder\Compiler\Builder\HasMenuGlobal;
use VDM\Joomla\Componentbuilder\Compiler\Builder\HasPermissions;
use VDM\Joomla\Componentbuilder\Compiler\Builder\HiddenFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\History;
use VDM\Joomla\Componentbuilder\Compiler\Builder\IntegerFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ItemsMethodEximportString;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ItemsMethodListString;
use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonItem;
use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonItemArray;
use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonString;
/**
* Builder A-J Service Provider
*
* @since 3.2.0
*/
class BuilderAJ implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(AccessSwitch::class, 'Compiler.Builder.Access.Switch')
->share('Compiler.Builder.Access.Switch', [$this, 'getAccessSwitch'], true);
$container->alias(AccessSwitchList::class, 'Compiler.Builder.Access.Switch.List')
->share('Compiler.Builder.Access.Switch.List', [$this, 'getAccessSwitchList'], true);
$container->alias(AssetsRules::class, 'Compiler.Builder.Assets.Rules')
->share('Compiler.Builder.Assets.Rules', [$this, 'getAssetsRules'], true);
$container->alias(AdminFilterType::class, 'Compiler.Builder.Admin.Filter.Type')
->share('Compiler.Builder.Admin.Filter.Type', [$this, 'getAdminFilterType'], true);
$container->alias(Alias::class, 'Compiler.Builder.Alias')
->share('Compiler.Builder.Alias', [$this, 'getAlias'], true);
$container->alias(BaseSixFour::class, 'Compiler.Builder.Base.Six.Four')
->share('Compiler.Builder.Base.Six.Four', [$this, 'getBaseSixFour'], true);
$container->alias(Category::class, 'Compiler.Builder.Category')
->share('Compiler.Builder.Category', [$this, 'getCategory'], true);
$container->alias(CategoryCode::class, 'Compiler.Builder.Category.Code')
->share('Compiler.Builder.Category.Code', [$this, 'getCategoryCode'], true);
$container->alias(CategoryOtherName::class, 'Compiler.Builder.Category.Other.Name')
->share('Compiler.Builder.Category.Other.Name', [$this, 'getCategoryOtherName'], true);
$container->alias(CheckBox::class, 'Compiler.Builder.Check.Box')
->share('Compiler.Builder.Check.Box', [$this, 'getCheckBox'], true);
$container->alias(ComponentFields::class, 'Compiler.Builder.Component.Fields')
->share('Compiler.Builder.Component.Fields', [$this, 'getComponentFields'], true);
$container->alias(ConfigFieldsets::class, 'Compiler.Builder.Config.Fieldsets')
->share('Compiler.Builder.Config.Fieldsets', [$this, 'getConfigFieldsets'], true);
$container->alias(ConfigFieldsetsCustomfield::class, 'Compiler.Builder.Config.Fieldsets.Customfield')
->share('Compiler.Builder.Config.Fieldsets.Customfield', [$this, 'getConfigFieldsetsCustomfield'], true);
$container->alias(ContentMulti::class, 'Compiler.Builder.Content.Multi')
->share('Compiler.Builder.Content.Multi', [$this, 'getContentMulti'], true);
$container->alias(ContentOne::class, 'Compiler.Builder.Content.One')
->share('Compiler.Builder.Content.One', [$this, 'getContentOne'], true);
$container->alias(Contributors::class, 'Compiler.Builder.Contributors')
->share('Compiler.Builder.Contributors', [$this, 'getContributors'], true);
$container->alias(CustomAlias::class, 'Compiler.Builder.Custom.Alias')
->share('Compiler.Builder.Custom.Alias', [$this, 'getCustomAlias'], true);
$container->alias(CustomField::class, 'Compiler.Builder.Custom.Field')
->share('Compiler.Builder.Custom.Field', [$this, 'getCustomField'], true);
$container->alias(CustomFieldLinks::class, 'Compiler.Builder.Custom.Field.Links')
->share('Compiler.Builder.Custom.Field.Links', [$this, 'getCustomFieldLinks'], true);
$container->alias(CustomList::class, 'Compiler.Builder.Custom.List')
->share('Compiler.Builder.Custom.List', [$this, 'getCustomList'], true);
$container->alias(CustomTabs::class, 'Compiler.Builder.Custom.Tabs')
->share('Compiler.Builder.Custom.Tabs', [$this, 'getCustomTabs'], true);
$container->alias(DatabaseKeys::class, 'Compiler.Builder.Database.Keys')
->share('Compiler.Builder.Database.Keys', [$this, 'getDatabaseKeys'], true);
$container->alias(DatabaseTables::class, 'Compiler.Builder.Database.Tables')
->share('Compiler.Builder.Database.Tables', [$this, 'getDatabaseTables'], true);
$container->alias(DatabaseUniqueGuid::class, 'Compiler.Builder.Database.Unique.Guid')
->share('Compiler.Builder.Database.Unique.Guid', [$this, 'getDatabaseUniqueGuid'], true);
$container->alias(DatabaseUniqueKeys::class, 'Compiler.Builder.Database.Unique.Keys')
->share('Compiler.Builder.Database.Unique.Keys', [$this, 'getDatabaseUniqueKeys'], true);
$container->alias(DatabaseUninstall::class, 'Compiler.Builder.Database.Uninstall')
->share('Compiler.Builder.Database.Uninstall', [$this, 'getDatabaseUninstall'], true);
$container->alias(DoNotEscape::class, 'Compiler.Builder.Do.Not.Escape')
->share('Compiler.Builder.Do.Not.Escape', [$this, 'getDoNotEscape'], true);
$container->alias(DynamicFields::class, 'Compiler.Builder.Dynamic.Fields')
->share('Compiler.Builder.Dynamic.Fields', [$this, 'getDynamicFields'], true);
$container->alias(ExtensionCustomFields::class, 'Compiler.Builder.Extension.Custom.Fields')
->share('Compiler.Builder.Extension.Custom.Fields', [$this, 'getExtensionCustomFields'], true);
$container->alias(ExtensionsParams::class, 'Compiler.Builder.Extensions.Params')
->share('Compiler.Builder.Extensions.Params', [$this, 'getExtensionsParams'], true);
$container->alias(FieldGroupControl::class, 'Compiler.Builder.Field.Group.Control')
->share('Compiler.Builder.Field.Group.Control', [$this, 'getFieldGroupControl'], true);
$container->alias(FieldNames::class, 'Compiler.Builder.Field.Names')
->share('Compiler.Builder.Field.Names', [$this, 'getFieldNames'], true);
$container->alias(FieldRelations::class, 'Compiler.Builder.Field.Relations')
->share('Compiler.Builder.Field.Relations', [$this, 'getFieldRelations'], true);
$container->alias(Filter::class, 'Compiler.Builder.Filter')
->share('Compiler.Builder.Filter', [$this, 'getFilter'], true);
$container->alias(FootableScripts::class, 'Compiler.Builder.Footable.Scripts')
->share('Compiler.Builder.Footable.Scripts', [$this, 'getFootableScripts'], true);
$container->alias(FrontendParams::class, 'Compiler.Builder.Frontend.Params')
->share('Compiler.Builder.Frontend.Params', [$this, 'getFrontendParams'], true);
$container->alias(GetAsLookup::class, 'Compiler.Builder.Get.As.Lookup')
->share('Compiler.Builder.Get.As.Lookup', [$this, 'getGetAsLookup'], true);
$container->alias(GetModule::class, 'Compiler.Builder.Get.Module')
->share('Compiler.Builder.Get.Module', [$this, 'getGetModule'], true);
$container->alias(GoogleChart::class, 'Compiler.Builder.Google.Chart')
->share('Compiler.Builder.Google.Chart', [$this, 'getGoogleChart'], true);
$container->alias(HasMenuGlobal::class, 'Compiler.Builder.Has.Menu.Global')
->share('Compiler.Builder.Has.Menu.Global', [$this, 'getHasMenuGlobal'], true);
$container->alias(HasPermissions::class, 'Compiler.Builder.Has.Permissions')
->share('Compiler.Builder.Has.Permissions', [$this, 'getHasPermissions'], true);
$container->alias(HiddenFields::class, 'Compiler.Builder.Hidden.Fields')
->share('Compiler.Builder.Hidden.Fields', [$this, 'getHiddenFields'], true);
$container->alias(History::class, 'Compiler.Builder.History')
->share('Compiler.Builder.History', [$this, 'getHistory'], true);
$container->alias(IntegerFields::class, 'Compiler.Builder.Integer.Fields')
->share('Compiler.Builder.Integer.Fields', [$this, 'getIntegerFields'], true);
$container->alias(ItemsMethodEximportString::class, 'Compiler.Builder.Items.Method.Eximport.String')
->share('Compiler.Builder.Items.Method.Eximport.String', [$this, 'getItemsMethodEximportString'], true);
$container->alias(ItemsMethodListString::class, 'Compiler.Builder.Items.Method.List.String')
->share('Compiler.Builder.Items.Method.List.String', [$this, 'getItemsMethodListString'], true);
$container->alias(JsonItem::class, 'Compiler.Builder.Json.Item')
->share('Compiler.Builder.Json.Item', [$this, 'getJsonItem'], true);
$container->alias(JsonItemArray::class, 'Compiler.Builder.Json.Item.Array')
->share('Compiler.Builder.Json.Item.Array', [$this, 'getJsonItemArray'], true);
$container->alias(JsonString::class, 'Compiler.Builder.Json.String')
->share('Compiler.Builder.Json.String', [$this, 'getJsonString'], true);
}
/**
* Get The AccessSwitch Class.
*
* @param Container $container The DI container.
*
* @return AccessSwitch
* @since 3.2.0
*/
public function getAccessSwitch(Container $container): AccessSwitch
{
return new AccessSwitch();
}
/**
* Get The AccessSwitchList Class.
*
* @param Container $container The DI container.
*
* @return AccessSwitchList
* @since 3.2.0
*/
public function getAccessSwitchList(Container $container): AccessSwitchList
{
return new AccessSwitchList();
}
/**
* Get The AssetsRules Class.
*
* @param Container $container The DI container.
*
* @return AssetsRules
* @since 3.2.0
*/
public function getAssetsRules(Container $container): AssetsRules
{
return new AssetsRules();
}
/**
* Get The AdminFilterType Class.
*
* @param Container $container The DI container.
*
* @return AdminFilterType
* @since 3.2.0
*/
public function getAdminFilterType(Container $container): AdminFilterType
{
return new AdminFilterType();
}
/**
* Get The Alias Class.
*
* @param Container $container The DI container.
*
* @return Alias
* @since 3.2.0
*/
public function getAlias(Container $container): Alias
{
return new Alias();
}
/**
* Get The BaseSixFour Class.
*
* @param Container $container The DI container.
*
* @return BaseSixFour
* @since 3.2.0
*/
public function getBaseSixFour(Container $container): BaseSixFour
{
return new BaseSixFour();
}
/**
* Get The Category Class.
*
* @param Container $container The DI container.
*
* @return Category
* @since 3.2.0
*/
public function getCategory(Container $container): Category
{
return new Category();
}
/**
* Get The CategoryCode Class.
*
* @param Container $container The DI container.
*
* @return CategoryCode
* @since 3.2.0
*/
public function getCategoryCode(Container $container): CategoryCode
{
return new CategoryCode();
}
/**
* Get The CategoryOtherName Class.
*
* @param Container $container The DI container.
*
* @return CategoryOtherName
* @since 3.2.0
*/
public function getCategoryOtherName(Container $container): CategoryOtherName
{
return new CategoryOtherName();
}
/**
* Get The CheckBox Class.
*
* @param Container $container The DI container.
*
* @return CheckBox
* @since 3.2.0
*/
public function getCheckBox(Container $container): CheckBox
{
return new CheckBox();
}
/**
* Get The ComponentFields Class.
*
* @param Container $container The DI container.
*
* @return ComponentFields
* @since 3.2.0
*/
public function getComponentFields(Container $container): ComponentFields
{
return new ComponentFields();
}
/**
* Get The ConfigFieldsets Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsets
* @since 3.2.0
*/
public function getConfigFieldsets(Container $container): ConfigFieldsets
{
return new ConfigFieldsets();
}
/**
* Get The ConfigFieldsetsCustomfield Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsCustomfield
* @since 3.2.0
*/
public function getConfigFieldsetsCustomfield(Container $container): ConfigFieldsetsCustomfield
{
return new ConfigFieldsetsCustomfield();
}
/**
* Get The ContentMulti Class.
*
* @param Container $container The DI container.
*
* @return ContentMulti
* @since 3.2.0
*/
public function getContentMulti(Container $container): ContentMulti
{
return new ContentMulti();
}
/**
* Get The ContentOne Class.
*
* @param Container $container The DI container.
*
* @return ContentOne
* @since 3.2.0
*/
public function getContentOne(Container $container): ContentOne
{
return new ContentOne();
}
/**
* Get The Contributors Class.
*
* @param Container $container The DI container.
*
* @return Contributors
* @since 3.2.0
*/
public function getContributors(Container $container): Contributors
{
return new Contributors();
}
/**
* Get The CustomAlias Class.
*
* @param Container $container The DI container.
*
* @return CustomAlias
* @since 3.2.0
*/
public function getCustomAlias(Container $container): CustomAlias
{
return new CustomAlias();
}
/**
* Get The CustomField Class.
*
* @param Container $container The DI container.
*
* @return CustomField
* @since 3.2.0
*/
public function getCustomField(Container $container): CustomField
{
return new CustomField();
}
/**
* Get The CustomFieldLinks Class.
*
* @param Container $container The DI container.
*
* @return CustomFieldLinks
* @since 3.2.0
*/
public function getCustomFieldLinks(Container $container): CustomFieldLinks
{
return new CustomFieldLinks();
}
/**
* Get The CustomList Class.
*
* @param Container $container The DI container.
*
* @return CustomList
* @since 3.2.0
*/
public function getCustomList(Container $container): CustomList
{
return new CustomList();
}
/**
* Get The CustomTabs Class.
*
* @param Container $container The DI container.
*
* @return CustomTabs
* @since 3.2.0
*/
public function getCustomTabs(Container $container): CustomTabs
{
return new CustomTabs();
}
/**
* Get The DatabaseKeys Class.
*
* @param Container $container The DI container.
*
* @return DatabaseKeys
* @since 3.2.0
*/
public function getDatabaseKeys(Container $container): DatabaseKeys
{
return new DatabaseKeys();
}
/**
* Get The DatabaseTables Class.
*
* @param Container $container The DI container.
*
* @return DatabaseTables
* @since 3.2.0
*/
public function getDatabaseTables(Container $container): DatabaseTables
{
return new DatabaseTables();
}
/**
* Get The DatabaseUniqueGuid Class.
*
* @param Container $container The DI container.
*
* @return DatabaseUniqueGuid
* @since 3.2.0
*/
public function getDatabaseUniqueGuid(Container $container): DatabaseUniqueGuid
{
return new DatabaseUniqueGuid();
}
/**
* Get The DatabaseUniqueKeys Class.
*
* @param Container $container The DI container.
*
* @return DatabaseUniqueKeys
* @since 3.2.0
*/
public function getDatabaseUniqueKeys(Container $container): DatabaseUniqueKeys
{
return new DatabaseUniqueKeys();
}
/**
* Get The DatabaseUninstall Class.
*
* @param Container $container The DI container.
*
* @return DatabaseUninstall
* @since 3.2.0
*/
public function getDatabaseUninstall(Container $container): DatabaseUninstall
{
return new DatabaseUninstall();
}
/**
* Get The DoNotEscape Class.
*
* @param Container $container The DI container.
*
* @return DoNotEscape
* @since 3.2.0
*/
public function getDoNotEscape(Container $container): DoNotEscape
{
return new DoNotEscape();
}
/**
* Get The DynamicFields Class.
*
* @param Container $container The DI container.
*
* @return DynamicFields
* @since 3.2.0
*/
public function getDynamicFields(Container $container): DynamicFields
{
return new DynamicFields();
}
/**
* Get The ExtensionCustomFields Class.
*
* @param Container $container The DI container.
*
* @return ExtensionCustomFields
* @since 3.2.0
*/
public function getExtensionCustomFields(Container $container): ExtensionCustomFields
{
return new ExtensionCustomFields();
}
/**
* Get The ExtensionsParams Class.
*
* @param Container $container The DI container.
*
* @return ExtensionsParams
* @since 3.2.0
*/
public function getExtensionsParams(Container $container): ExtensionsParams
{
return new ExtensionsParams();
}
/**
* Get The FieldGroupControl Class.
*
* @param Container $container The DI container.
*
* @return FieldGroupControl
* @since 3.2.0
*/
public function getFieldGroupControl(Container $container): FieldGroupControl
{
return new FieldGroupControl();
}
/**
* Get The FieldNames Class.
*
* @param Container $container The DI container.
*
* @return FieldNames
* @since 3.2.0
*/
public function getFieldNames(Container $container): FieldNames
{
return new FieldNames();
}
/**
* Get The FieldRelations Class.
*
* @param Container $container The DI container.
*
* @return FieldRelations
* @since 3.2.0
*/
public function getFieldRelations(Container $container): FieldRelations
{
return new FieldRelations();
}
/**
* Get The Filter Class.
*
* @param Container $container The DI container.
*
* @return Filter
* @since 3.2.0
*/
public function getFilter(Container $container): Filter
{
return new Filter();
}
/**
* Get The FootableScripts Class.
*
* @param Container $container The DI container.
*
* @return FootableScripts
* @since 3.2.0
*/
public function getFootableScripts(Container $container): FootableScripts
{
return new FootableScripts();
}
/**
* Get The FrontendParams Class.
*
* @param Container $container The DI container.
*
* @return FrontendParams
* @since 3.2.0
*/
public function getFrontendParams(Container $container): FrontendParams
{
return new FrontendParams();
}
/**
* Get The GetAsLookup Class.
*
* @param Container $container The DI container.
*
* @return GetAsLookup
* @since 3.2.0
*/
public function getGetAsLookup(Container $container): GetAsLookup
{
return new GetAsLookup();
}
/**
* Get The GetModule Class.
*
* @param Container $container The DI container.
*
* @return GetModule
* @since 3.2.0
*/
public function getGetModule(Container $container): GetModule
{
return new GetModule();
}
/**
* Get The GoogleChart Class.
*
* @param Container $container The DI container.
*
* @return GoogleChart
* @since 3.2.0
*/
public function getGoogleChart(Container $container): GoogleChart
{
return new GoogleChart();
}
/**
* Get The HasMenuGlobal Class.
*
* @param Container $container The DI container.
*
* @return HasMenuGlobal
* @since 3.2.0
*/
public function getHasMenuGlobal(Container $container): HasMenuGlobal
{
return new HasMenuGlobal();
}
/**
* Get The HasPermissions Class.
*
* @param Container $container The DI container.
*
* @return HasPermissions
* @since 3.2.0
*/
public function getHasPermissions(Container $container): HasPermissions
{
return new HasPermissions();
}
/**
* Get The HiddenFields Class.
*
* @param Container $container The DI container.
*
* @return HiddenFields
* @since 3.2.0
*/
public function getHiddenFields(Container $container): HiddenFields
{
return new HiddenFields();
}
/**
* Get The History Class.
*
* @param Container $container The DI container.
*
* @return History
* @since 3.2.0
*/
public function getHistory(Container $container): History
{
return new History();
}
/**
* Get The IntegerFields Class.
*
* @param Container $container The DI container.
*
* @return IntegerFields
* @since 3.2.0
*/
public function getIntegerFields(Container $container): IntegerFields
{
return new IntegerFields();
}
/**
* Get The ItemsMethodEximportString Class.
*
* @param Container $container The DI container.
*
* @return ItemsMethodEximportString
* @since 3.2.0
*/
public function getItemsMethodEximportString(Container $container): ItemsMethodEximportString
{
return new ItemsMethodEximportString();
}
/**
* Get The ItemsMethodListString Class.
*
* @param Container $container The DI container.
*
* @return ItemsMethodListString
* @since 3.2.0
*/
public function getItemsMethodListString(Container $container): ItemsMethodListString
{
return new ItemsMethodListString();
}
/**
* Get The JsonItem Class.
*
* @param Container $container The DI container.
*
* @return JsonItem
* @since 3.2.0
*/
public function getJsonItem(Container $container): JsonItem
{
return new JsonItem();
}
/**
* Get The JsonItemArray Class.
*
* @param Container $container The DI container.
*
* @return JsonItemArray
* @since 3.2.0
*/
public function getJsonItemArray(Container $container): JsonItemArray
{
return new JsonItemArray();
}
/**
* Get The JsonString Class.
*
* @param Container $container The DI container.
*
* @return JsonString
* @since 3.2.0
*/
public function getJsonString(Container $container): JsonString
{
return new JsonString();
}
}

View File

@@ -0,0 +1,938 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Builder\LanguageMessages;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Layout;
use VDM\Joomla\Componentbuilder\Compiler\Builder\LayoutData;
use VDM\Joomla\Componentbuilder\Compiler\Builder\LibraryManager;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ListFieldClass;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ListHeadOverride;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ListJoin;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Lists;
use VDM\Joomla\Componentbuilder\Compiler\Builder\MainTextField;
use VDM\Joomla\Componentbuilder\Compiler\Builder\MetaData;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelBasicField;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelExpertField;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelExpertFieldInitiator;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelMediumField;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelWhmcsField;
use VDM\Joomla\Componentbuilder\Compiler\Builder\MovedPublishingFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\MysqlTableSetting;
use VDM\Joomla\Componentbuilder\Compiler\Builder\NewPublishingFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OrderZero;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherFilter;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherGroup;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherJoin;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherOrder;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherQuery;
use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherWhere;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionAction;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionComponent;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionCore;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionDashboard;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionGlobalAction;
use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionViews;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Request;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Router;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ScriptMediaSwitch;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ScriptUserSwitch;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Search;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SelectionTranslation;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteDecrypt;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteDynamicGet;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteEditView;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFieldData;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFieldDecodeFilter;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFields;
use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteMainGet;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Sort;
use VDM\Joomla\Componentbuilder\Compiler\Builder\TabCounter;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Tags;
use VDM\Joomla\Componentbuilder\Compiler\Builder\TemplateData;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Title;
use VDM\Joomla\Componentbuilder\Compiler\Builder\UikitComp;
use VDM\Joomla\Componentbuilder\Compiler\Builder\UpdateMysql;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ViewsDefaultOrdering;
/**
* Builder L-Z Service Provider
*
* @since 3.2.0
*/
class BuilderLZ implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(LanguageMessages::class, 'Compiler.Builder.Language.Messages')
->share('Compiler.Builder.Language.Messages', [$this, 'getLanguageMessages'], true);
$container->alias(Layout::class, 'Compiler.Builder.Layout')
->share('Compiler.Builder.Layout', [$this, 'getLayout'], true);
$container->alias(LayoutData::class, 'Compiler.Builder.Layout.Data')
->share('Compiler.Builder.Layout.Data', [$this, 'getLayoutData'], true);
$container->alias(LibraryManager::class, 'Compiler.Builder.Library.Manager')
->share('Compiler.Builder.Library.Manager', [$this, 'getLibraryManager'], true);
$container->alias(ListFieldClass::class, 'Compiler.Builder.List.Field.Class')
->share('Compiler.Builder.List.Field.Class', [$this, 'getListFieldClass'], true);
$container->alias(ListHeadOverride::class, 'Compiler.Builder.List.Head.Override')
->share('Compiler.Builder.List.Head.Override', [$this, 'getListHeadOverride'], true);
$container->alias(ListJoin::class, 'Compiler.Builder.List.Join')
->share('Compiler.Builder.List.Join', [$this, 'getListJoin'], true);
$container->alias(Lists::class, 'Compiler.Builder.Lists')
->share('Compiler.Builder.Lists', [$this, 'getLists'], true);
$container->alias(MainTextField::class, 'Compiler.Builder.Main.Text.Field')
->share('Compiler.Builder.Main.Text.Field', [$this, 'getMainTextField'], true);
$container->alias(MetaData::class, 'Compiler.Builder.Meta.Data')
->share('Compiler.Builder.Meta.Data', [$this, 'getMetaData'], true);
$container->alias(ModelBasicField::class, 'Compiler.Builder.Model.Basic.Field')
->share('Compiler.Builder.Model.Basic.Field', [$this, 'getModelBasicField'], true);
$container->alias(ModelExpertField::class, 'Compiler.Builder.Model.Expert.Field')
->share('Compiler.Builder.Model.Expert.Field', [$this, 'getModelExpertField'], true);
$container->alias(ModelExpertFieldInitiator::class, 'Compiler.Builder.Model.Expert.Field.Initiator')
->share('Compiler.Builder.Model.Expert.Field.Initiator', [$this, 'getModelExpertFieldInitiator'], true);
$container->alias(ModelMediumField::class, 'Compiler.Builder.Model.Medium.Field')
->share('Compiler.Builder.Model.Medium.Field', [$this, 'getModelMediumField'], true);
$container->alias(ModelWhmcsField::class, 'Compiler.Builder.Model.Whmcs.Field')
->share('Compiler.Builder.Model.Whmcs.Field', [$this, 'getModelWhmcsField'], true);
$container->alias(MovedPublishingFields::class, 'Compiler.Builder.Moved.Publishing.Fields')
->share('Compiler.Builder.Moved.Publishing.Fields', [$this, 'getMovedPublishingFields'], true);
$container->alias(MysqlTableSetting::class, 'Compiler.Builder.Mysql.Table.Setting')
->share('Compiler.Builder.Mysql.Table.Setting', [$this, 'getMysqlTableSetting'], true);
$container->alias(NewPublishingFields::class, 'Compiler.Builder.New.Publishing.Fields')
->share('Compiler.Builder.New.Publishing.Fields', [$this, 'getNewPublishingFields'], true);
$container->alias(OrderZero::class, 'Compiler.Builder.Order.Zero')
->share('Compiler.Builder.Order.Zero', [$this, 'getOrderZero'], true);
$container->alias(OtherFilter::class, 'Compiler.Builder.Other.Filter')
->share('Compiler.Builder.Other.Filter', [$this, 'getOtherFilter'], true);
$container->alias(OtherGroup::class, 'Compiler.Builder.Other.Group')
->share('Compiler.Builder.Other.Group', [$this, 'getOtherGroup'], true);
$container->alias(OtherJoin::class, 'Compiler.Builder.Other.Join')
->share('Compiler.Builder.Other.Join', [$this, 'getOtherJoin'], true);
$container->alias(OtherOrder::class, 'Compiler.Builder.Other.Order')
->share('Compiler.Builder.Other.Order', [$this, 'getOtherOrder'], true);
$container->alias(OtherQuery::class, 'Compiler.Builder.Other.Query')
->share('Compiler.Builder.Other.Query', [$this, 'getOtherQuery'], true);
$container->alias(OtherWhere::class, 'Compiler.Builder.Other.Where')
->share('Compiler.Builder.Other.Where', [$this, 'getOtherWhere'], true);
$container->alias(PermissionAction::class, 'Compiler.Builder.Permission.Action')
->share('Compiler.Builder.Permission.Action', [$this, 'getPermissionAction'], true);
$container->alias(PermissionComponent::class, 'Compiler.Builder.Permission.Component')
->share('Compiler.Builder.Permission.Component', [$this, 'getPermissionComponent'], true);
$container->alias(PermissionCore::class, 'Compiler.Builder.Permission.Core')
->share('Compiler.Builder.Permission.Core', [$this, 'getPermissionCore'], true);
$container->alias(PermissionDashboard::class, 'Compiler.Builder.Permission.Dashboard')
->share('Compiler.Builder.Permission.Dashboard', [$this, 'getPermissionDashboard'], true);
$container->alias(PermissionFields::class, 'Compiler.Builder.Permission.Fields')
->share('Compiler.Builder.Permission.Fields', [$this, 'getPermissionFields'], true);
$container->alias(PermissionGlobalAction::class, 'Compiler.Builder.Permission.Global.Action')
->share('Compiler.Builder.Permission.Global.Action', [$this, 'getPermissionGlobalAction'], true);
$container->alias(PermissionViews::class, 'Compiler.Builder.Permission.Views')
->share('Compiler.Builder.Permission.Views', [$this, 'getPermissionViews'], true);
$container->alias(Request::class, 'Compiler.Builder.Request')
->share('Compiler.Builder.Request', [$this, 'getRequest'], true);
$container->alias(Router::class, 'Compiler.Builder.Router')
->share('Compiler.Builder.Router', [$this, 'getRouter'], true);
$container->alias(ScriptMediaSwitch::class, 'Compiler.Builder.Script.Media.Switch')
->share('Compiler.Builder.Script.Media.Switch', [$this, 'getScriptMediaSwitch'], true);
$container->alias(ScriptUserSwitch::class, 'Compiler.Builder.Script.User.Switch')
->share('Compiler.Builder.Script.User.Switch', [$this, 'getScriptUserSwitch'], true);
$container->alias(Search::class, 'Compiler.Builder.Search')
->share('Compiler.Builder.Search', [$this, 'getSearch'], true);
$container->alias(SelectionTranslation::class, 'Compiler.Builder.Selection.Translation')
->share('Compiler.Builder.Selection.Translation', [$this, 'getSelectionTranslation'], true);
$container->alias(SiteDecrypt::class, 'Compiler.Builder.Site.Decrypt')
->share('Compiler.Builder.Site.Decrypt', [$this, 'getSiteDecrypt'], true);
$container->alias(SiteDynamicGet::class, 'Compiler.Builder.Site.Dynamic.Get')
->share('Compiler.Builder.Site.Dynamic.Get', [$this, 'getSiteDynamicGet'], true);
$container->alias(SiteEditView::class, 'Compiler.Builder.Site.Edit.View')
->share('Compiler.Builder.Site.Edit.View', [$this, 'getSiteEditView'], true);
$container->alias(SiteFieldData::class, 'Compiler.Builder.Site.Field.Data')
->share('Compiler.Builder.Site.Field.Data', [$this, 'getSiteFieldData'], true);
$container->alias(SiteFieldDecodeFilter::class, 'Compiler.Builder.Site.Field.Decode.Filter')
->share('Compiler.Builder.Site.Field.Decode.Filter', [$this, 'getSiteFieldDecodeFilter'], true);
$container->alias(SiteFields::class, 'Compiler.Builder.Site.Fields')
->share('Compiler.Builder.Site.Fields', [$this, 'getSiteFields'], true);
$container->alias(SiteMainGet::class, 'Compiler.Builder.Site.Main.Get')
->share('Compiler.Builder.Site.Main.Get', [$this, 'getSiteMainGet'], true);
$container->alias(Sort::class, 'Compiler.Builder.Sort')
->share('Compiler.Builder.Sort', [$this, 'getSort'], true);
$container->alias(TabCounter::class, 'Compiler.Builder.Tab.Counter')
->share('Compiler.Builder.Tab.Counter', [$this, 'getTabCounter'], true);
$container->alias(Tags::class, 'Compiler.Builder.Tags')
->share('Compiler.Builder.Tags', [$this, 'getTags'], true);
$container->alias(TemplateData::class, 'Compiler.Builder.Template.Data')
->share('Compiler.Builder.Template.Data', [$this, 'getTemplateData'], true);
$container->alias(Title::class, 'Compiler.Builder.Title')
->share('Compiler.Builder.Title', [$this, 'getTitle'], true);
$container->alias(UikitComp::class, 'Compiler.Builder.Uikit.Comp')
->share('Compiler.Builder.Uikit.Comp', [$this, 'getUikitComp'], true);
$container->alias(UpdateMysql::class, 'Compiler.Builder.Update.Mysql')
->share('Compiler.Builder.Update.Mysql', [$this, 'getUpdateMysql'], true);
$container->alias(ViewsDefaultOrdering::class, 'Compiler.Builder.Views.Default.Ordering')
->share('Compiler.Builder.Views.Default.Ordering', [$this, 'getViewsDefaultOrdering'], true);
}
/**
* Get The LanguageMessages Class.
*
* @param Container $container The DI container.
*
* @return LanguageMessages
* @since 3.2.0
*/
public function getLanguageMessages(Container $container): LanguageMessages
{
return new LanguageMessages();
}
/**
* Get The Layout Class.
*
* @param Container $container The DI container.
*
* @return Layout
* @since 3.2.0
*/
public function getLayout(Container $container): Layout
{
return new Layout();
}
/**
* Get The LayoutData Class.
*
* @param Container $container The DI container.
*
* @return LayoutData
* @since 3.2.0
*/
public function getLayoutData(Container $container): LayoutData
{
return new LayoutData();
}
/**
* Get The LibraryManager Class.
*
* @param Container $container The DI container.
*
* @return LibraryManager
* @since 3.2.0
*/
public function getLibraryManager(Container $container): LibraryManager
{
return new LibraryManager();
}
/**
* Get The ListFieldClass Class.
*
* @param Container $container The DI container.
*
* @return ListFieldClass
* @since 3.2.0
*/
public function getListFieldClass(Container $container): ListFieldClass
{
return new ListFieldClass();
}
/**
* Get The ListHeadOverride Class.
*
* @param Container $container The DI container.
*
* @return ListHeadOverride
* @since 3.2.0
*/
public function getListHeadOverride(Container $container): ListHeadOverride
{
return new ListHeadOverride();
}
/**
* Get The ListJoin Class.
*
* @param Container $container The DI container.
*
* @return ListJoin
* @since 3.2.0
*/
public function getListJoin(Container $container): ListJoin
{
return new ListJoin();
}
/**
* Get The Lists Class.
*
* @param Container $container The DI container.
*
* @return Lists
* @since 3.2.0
*/
public function getLists(Container $container): Lists
{
return new Lists();
}
/**
* Get The MainTextField Class.
*
* @param Container $container The DI container.
*
* @return MainTextField
* @since 3.2.0
*/
public function getMainTextField(Container $container): MainTextField
{
return new MainTextField();
}
/**
* Get The MetaData Class.
*
* @param Container $container The DI container.
*
* @return MetaData
* @since 3.2.0
*/
public function getMetaData(Container $container): MetaData
{
return new MetaData();
}
/**
* Get The ModelBasicField Class.
*
* @param Container $container The DI container.
*
* @return ModelBasicField
* @since 3.2.0
*/
public function getModelBasicField(Container $container): ModelBasicField
{
return new ModelBasicField();
}
/**
* Get The ModelExpertField Class.
*
* @param Container $container The DI container.
*
* @return ModelExpertField
* @since 3.2.0
*/
public function getModelExpertField(Container $container): ModelExpertField
{
return new ModelExpertField();
}
/**
* Get The ModelExpertFieldInitiator Class.
*
* @param Container $container The DI container.
*
* @return ModelExpertFieldInitiator
* @since 3.2.0
*/
public function getModelExpertFieldInitiator(Container $container): ModelExpertFieldInitiator
{
return new ModelExpertFieldInitiator();
}
/**
* Get The ModelMediumField Class.
*
* @param Container $container The DI container.
*
* @return ModelMediumField
* @since 3.2.0
*/
public function getModelMediumField(Container $container): ModelMediumField
{
return new ModelMediumField();
}
/**
* Get The ModelWhmcsField Class.
*
* @param Container $container The DI container.
*
* @return ModelWhmcsField
* @since 3.2.0
*/
public function getModelWhmcsField(Container $container): ModelWhmcsField
{
return new ModelWhmcsField();
}
/**
* Get The MovedPublishingFields Class.
*
* @param Container $container The DI container.
*
* @return MovedPublishingFields
* @since 3.2.0
*/
public function getMovedPublishingFields(Container $container): MovedPublishingFields
{
return new MovedPublishingFields();
}
/**
* Get The MysqlTableSetting Class.
*
* @param Container $container The DI container.
*
* @return MysqlTableSetting
* @since 3.2.0
*/
public function getMysqlTableSetting(Container $container): MysqlTableSetting
{
return new MysqlTableSetting();
}
/**
* Get The NewPublishingFields Class.
*
* @param Container $container The DI container.
*
* @return NewPublishingFields
* @since 3.2.0
*/
public function getNewPublishingFields(Container $container): NewPublishingFields
{
return new NewPublishingFields();
}
/**
* Get The OrderZero Class.
*
* @param Container $container The DI container.
*
* @return OrderZero
* @since 3.2.0
*/
public function getOrderZero(Container $container): OrderZero
{
return new OrderZero();
}
/**
* Get The OtherFilter Class.
*
* @param Container $container The DI container.
*
* @return OtherFilter
* @since 3.2.0
*/
public function getOtherFilter(Container $container): OtherFilter
{
return new OtherFilter();
}
/**
* Get The OtherGroup Class.
*
* @param Container $container The DI container.
*
* @return OtherGroup
* @since 3.2.0
*/
public function getOtherGroup(Container $container): OtherGroup
{
return new OtherGroup();
}
/**
* Get The OtherJoin Class.
*
* @param Container $container The DI container.
*
* @return OtherJoin
* @since 3.2.0
*/
public function getOtherJoin(Container $container): OtherJoin
{
return new OtherJoin();
}
/**
* Get The OtherOrder Class.
*
* @param Container $container The DI container.
*
* @return OtherOrder
* @since 3.2.0
*/
public function getOtherOrder(Container $container): OtherOrder
{
return new OtherOrder();
}
/**
* Get The OtherQuery Class.
*
* @param Container $container The DI container.
*
* @return OtherQuery
* @since 3.2.0
*/
public function getOtherQuery(Container $container): OtherQuery
{
return new OtherQuery();
}
/**
* Get The OtherWhere Class.
*
* @param Container $container The DI container.
*
* @return OtherWhere
* @since 3.2.0
*/
public function getOtherWhere(Container $container): OtherWhere
{
return new OtherWhere();
}
/**
* Get The PermissionAction Class.
*
* @param Container $container The DI container.
*
* @return PermissionAction
* @since 3.2.0
*/
public function getPermissionAction(Container $container): PermissionAction
{
return new PermissionAction();
}
/**
* Get The PermissionComponent Class.
*
* @param Container $container The DI container.
*
* @return PermissionComponent
* @since 3.2.0
*/
public function getPermissionComponent(Container $container): PermissionComponent
{
return new PermissionComponent();
}
/**
* Get The PermissionCore Class.
*
* @param Container $container The DI container.
*
* @return PermissionCore
* @since 3.2.0
*/
public function getPermissionCore(Container $container): PermissionCore
{
return new PermissionCore();
}
/**
* Get The PermissionDashboard Class.
*
* @param Container $container The DI container.
*
* @return PermissionDashboard
* @since 3.2.0
*/
public function getPermissionDashboard(Container $container): PermissionDashboard
{
return new PermissionDashboard();
}
/**
* Get The PermissionFields Class.
*
* @param Container $container The DI container.
*
* @return PermissionFields
* @since 3.2.0
*/
public function getPermissionFields(Container $container): PermissionFields
{
return new PermissionFields();
}
/**
* Get The PermissionGlobalAction Class.
*
* @param Container $container The DI container.
*
* @return PermissionGlobalAction
* @since 3.2.0
*/
public function getPermissionGlobalAction(Container $container): PermissionGlobalAction
{
return new PermissionGlobalAction();
}
/**
* Get The PermissionViews Class.
*
* @param Container $container The DI container.
*
* @return PermissionViews
* @since 3.2.0
*/
public function getPermissionViews(Container $container): PermissionViews
{
return new PermissionViews();
}
/**
* Get The Request Class.
*
* @param Container $container The DI container.
*
* @return Request
* @since 3.2.0
*/
public function getRequest(Container $container): Request
{
return new Request();
}
/**
* Get The Router Class.
*
* @param Container $container The DI container.
*
* @return Router
* @since 3.2.0
*/
public function getRouter(Container $container): Router
{
return new Router();
}
/**
* Get The ScriptMediaSwitch Class.
*
* @param Container $container The DI container.
*
* @return ScriptMediaSwitch
* @since 3.2.0
*/
public function getScriptMediaSwitch(Container $container): ScriptMediaSwitch
{
return new ScriptMediaSwitch();
}
/**
* Get The ScriptUserSwitch Class.
*
* @param Container $container The DI container.
*
* @return ScriptUserSwitch
* @since 3.2.0
*/
public function getScriptUserSwitch(Container $container): ScriptUserSwitch
{
return new ScriptUserSwitch();
}
/**
* Get The Search Class.
*
* @param Container $container The DI container.
*
* @return Search
* @since 3.2.0
*/
public function getSearch(Container $container): Search
{
return new Search();
}
/**
* Get The SelectionTranslation Class.
*
* @param Container $container The DI container.
*
* @return SelectionTranslation
* @since 3.2.0
*/
public function getSelectionTranslation(Container $container): SelectionTranslation
{
return new SelectionTranslation();
}
/**
* Get The SiteDecrypt Class.
*
* @param Container $container The DI container.
*
* @return SiteDecrypt
* @since 3.2.0
*/
public function getSiteDecrypt(Container $container): SiteDecrypt
{
return new SiteDecrypt();
}
/**
* Get The SiteDynamicGet Class.
*
* @param Container $container The DI container.
*
* @return SiteDynamicGet
* @since 3.2.0
*/
public function getSiteDynamicGet(Container $container): SiteDynamicGet
{
return new SiteDynamicGet();
}
/**
* Get The SiteEditView Class.
*
* @param Container $container The DI container.
*
* @return SiteEditView
* @since 3.2.0
*/
public function getSiteEditView(Container $container): SiteEditView
{
return new SiteEditView();
}
/**
* Get The SiteFieldData Class.
*
* @param Container $container The DI container.
*
* @return SiteFieldData
* @since 3.2.0
*/
public function getSiteFieldData(Container $container): SiteFieldData
{
return new SiteFieldData();
}
/**
* Get The SiteFieldDecodeFilter Class.
*
* @param Container $container The DI container.
*
* @return SiteFieldDecodeFilter
* @since 3.2.0
*/
public function getSiteFieldDecodeFilter(Container $container): SiteFieldDecodeFilter
{
return new SiteFieldDecodeFilter();
}
/**
* Get The SiteFields Class.
*
* @param Container $container The DI container.
*
* @return SiteFields
* @since 3.2.0
*/
public function getSiteFields(Container $container): SiteFields
{
return new SiteFields();
}
/**
* Get The SiteMainGet Class.
*
* @param Container $container The DI container.
*
* @return SiteMainGet
* @since 3.2.0
*/
public function getSiteMainGet(Container $container): SiteMainGet
{
return new SiteMainGet();
}
/**
* Get The Sort Class.
*
* @param Container $container The DI container.
*
* @return Sort
* @since 3.2.0
*/
public function getSort(Container $container): Sort
{
return new Sort();
}
/**
* Get The TabCounter Class.
*
* @param Container $container The DI container.
*
* @return TabCounter
* @since 3.2.0
*/
public function getTabCounter(Container $container): TabCounter
{
return new TabCounter();
}
/**
* Get The Tags Class.
*
* @param Container $container The DI container.
*
* @return Tags
* @since 3.2.0
*/
public function getTags(Container $container): Tags
{
return new Tags();
}
/**
* Get The TemplateData Class.
*
* @param Container $container The DI container.
*
* @return TemplateData
* @since 3.2.0
*/
public function getTemplateData(Container $container): TemplateData
{
return new TemplateData();
}
/**
* Get The Title Class.
*
* @param Container $container The DI container.
*
* @return Title
* @since 3.2.0
*/
public function getTitle(Container $container): Title
{
return new Title();
}
/**
* Get The UikitComp Class.
*
* @param Container $container The DI container.
*
* @return UikitComp
* @since 3.2.0
*/
public function getUikitComp(Container $container): UikitComp
{
return new UikitComp();
}
/**
* Get The UpdateMysql Class.
*
* @param Container $container The DI container.
*
* @return UpdateMysql
* @since 3.2.0
*/
public function getUpdateMysql(Container $container): UpdateMysql
{
return new UpdateMysql();
}
/**
* Get The ViewsDefaultOrdering Class.
*
* @param Container $container The DI container.
*
* @return ViewsDefaultOrdering
* @since 3.2.0
*/
public function getViewsDefaultOrdering(Container $container): ViewsDefaultOrdering
{
return new ViewsDefaultOrdering();
}
}

View File

@@ -0,0 +1,90 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Registry;
use VDM\Joomla\Componentbuilder\Table;
/**
* Compiler Service Provider
*
* @since 3.2.0
*/
class Compiler implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(Config::class, 'Config')
->share('Config', [$this, 'getConfig'], true);
$container->alias(Registry::class, 'Registry')
->share('Registry', [$this, 'getRegistry'], true);
$container->alias(Table::class, 'Table')
->share('Table', [$this, 'getTable'], true);
}
/**
* Get the Compiler Configurations
*
* @param Container $container The DI container.
*
* @return Config
* @since 3.2.0
*/
public function getConfig(Container $container): Config
{
return new Config();
}
/**
* Get the Compiler Registry
*
* @param Container $container The DI container.
*
* @return Registry
* @since 3.2.0
*/
public function getRegistry(Container $container): Registry
{
return new Registry();
}
/**
* Get the Table
*
* @param Container $container The DI container.
*
* @return Table
* @since 3.2.0
*/
public function getTable(Container $container): Table
{
return new Table();
}
}

View File

@@ -0,0 +1,315 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Component as CompilerComponent;
use VDM\Joomla\Componentbuilder\Compiler\Component\JoomlaThree\Settings as J3Settings;
use VDM\Joomla\Componentbuilder\Compiler\Component\JoomlaFour\Settings as J4Settings;
use VDM\Joomla\Componentbuilder\Compiler\Component\JoomlaFive\Settings as J5Settings;
use VDM\Joomla\Componentbuilder\Compiler\Component\Dashboard;
use VDM\Joomla\Componentbuilder\Compiler\Component\Placeholder;
use VDM\Joomla\Componentbuilder\Compiler\Component\Data;
use VDM\Joomla\Componentbuilder\Compiler\Component\Structure;
use VDM\Joomla\Componentbuilder\Compiler\Component\Structuresingle;
use VDM\Joomla\Componentbuilder\Compiler\Component\Structuremultiple;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component\SettingsInterface as Settings;
/**
* Component Service Provider
*
* @since 3.2.0
*/
class Component implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(CompilerComponent::class, 'Component')
->share('Component', [$this, 'getCompilerComponent'], true);
$container->alias(J3Settings::class, 'Component.J3.Settings')
->share('Component.J3.Settings', [$this, 'getJ3Settings'], true);
$container->alias(J4Settings::class, 'Component.J4.Settings')
->share('Component.J4.Settings', [$this, 'getJ4Settings'], true);
$container->alias(J5Settings::class, 'Component.J5.Settings')
->share('Component.J5.Settings', [$this, 'getJ5Settings'], true);
$container->alias(Dashboard::class, 'Component.Dashboard')
->share('Component.Dashboard', [$this, 'getDashboard'], true);
$container->alias(Placeholder::class, 'Component.Placeholder')
->share('Component.Placeholder', [$this, 'getPlaceholder'], true);
$container->alias(Data::class, 'Component.Data')
->share('Component.Data', [$this, 'getData'], true);
$container->alias(Structure::class, 'Component.Structure')
->share('Component.Structure', [$this, 'getStructure'], true);
$container->alias(Structuresingle::class, 'Component.Structure.Single')
->share('Component.Structure.Single', [$this, 'getStructuresingle'], true);
$container->alias(Structuremultiple::class, 'Component.Structure.Multiple')
->share('Component.Structure.Multiple', [$this, 'getStructuremultiple'], true);
$container->alias(Settings::class, 'Component.Settings')
->share('Component.Settings', [$this, 'getSettings'], true);
}
/**
* Get The Component Class.
*
* @param Container $container The DI container.
*
* @return CompilerComponent
* @since 3.2.0
*/
public function getCompilerComponent(Container $container): CompilerComponent
{
return new CompilerComponent(
$container->get('Component.Data')
);
}
/**
* Get The Settings Class.
*
* @param Container $container The DI container.
*
* @return J3Settings
* @since 3.2.0
*/
public function getJ3Settings(Container $container): J3Settings
{
return new J3Settings(
$container->get('Config'),
$container->get('Registry'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Component'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Dynamicpath'),
$container->get('Utilities.Pathfix')
);
}
/**
* Get The Settings Class.
*
* @param Container $container The DI container.
*
* @return J4Settings
* @since 3.2.0
*/
public function getJ4Settings(Container $container): J4Settings
{
return new J4Settings(
$container->get('Config'),
$container->get('Registry'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Component'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Dynamicpath'),
$container->get('Utilities.Pathfix')
);
}
/**
* Get The Settings Class.
*
* @param Container $container The DI container.
*
* @return J5Settings
* @since 3.2.0
*/
public function getJ5Settings(Container $container): J5Settings
{
return new J5Settings(
$container->get('Config'),
$container->get('Registry'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Component'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Dynamicpath'),
$container->get('Utilities.Pathfix')
);
}
/**
* Get The Dashboard Class.
*
* @param Container $container The DI container.
*
* @return Dashboard
* @since 3.2.0
*/
public function getDashboard(Container $container): Dashboard
{
return new Dashboard(
$container->get('Registry'),
$container->get('Component')
);
}
/**
* Get The Placeholder Class.
*
* @param Container $container The DI container.
*
* @return Placeholder
* @since 3.2.0
*/
public function getPlaceholder(Container $container): Placeholder
{
return new Placeholder(
$container->get('Config')
);
}
/**
* Get The Data Class.
*
* @param Container $container The DI container.
*
* @return Data
* @since 3.2.0
*/
public function getData(Container $container): Data
{
return new Data(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Component.Placeholder'),
$container->get('Customcode.Dispenser'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Field'),
$container->get('Field.Name'),
$container->get('Field.Unique.Name'),
$container->get('Model.Filesfolders'),
$container->get('Model.Historycomponent'),
$container->get('Model.Whmcs'),
$container->get('Model.Sqltweaking'),
$container->get('Model.Adminviews'),
$container->get('Model.Siteviews'),
$container->get('Model.Customadminviews'),
$container->get('Model.Updateserver'),
$container->get('Model.Joomlamodules'),
$container->get('Model.Joomlaplugins'),
$container->get('Model.Router')
);
}
/**
* Get The Structure Class.
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getStructure(Container $container): Structure
{
return new Structure(
$container->get('Component.Settings'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Folder')
);
}
/**
* Get The Structuresingle Class.
*
* @param Container $container The DI container.
*
* @return Structuresingle
* @since 3.2.0
*/
public function getStructuresingle(Container $container): Structuresingle
{
return new Structuresingle(
$container->get('Config'),
$container->get('Registry'),
$container->get('Placeholder'),
$container->get('Component.Settings'),
$container->get('Component'),
$container->get('Compiler.Builder.Content.One'),
$container->get('Utilities.Counter'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Files')
);
}
/**
* Get The Structuremultiple Class.
*
* @param Container $container The DI container.
*
* @return Structuremultiple
* @since 3.2.0
*/
public function getStructuremultiple(Container $container): Structuremultiple
{
return new Structuremultiple(
$container->get('Config'),
$container->get('Registry'),
$container->get('Component.Settings'),
$container->get('Component'),
$container->get('Model.Createdate'),
$container->get('Model.Modifieddate'),
$container->get('Utilities.Structure')
);
}
/**
* Get The Settings Class.
*
* @param Container $container The DI container.
*
* @return Settings
* @since 3.2.0
*/
public function getSettings(Container $container): Settings
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Component.J' . $this->targetVersion . '.Settings');
}
}

View File

@@ -0,0 +1,869 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Creator\AccessSections;
use VDM\Joomla\Componentbuilder\Compiler\Creator\AccessSectionsCategory;
use VDM\Joomla\Componentbuilder\Compiler\Creator\AccessSectionsJoomlaFields;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Builders;
use VDM\Joomla\Componentbuilder\Compiler\Creator\CustomFieldTypeFile;
use VDM\Joomla\Componentbuilder\Compiler\Creator\CustomButtonPermissions;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsets;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsCustomfield;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsEmailHelper;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsEncryption;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsGlobal;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsGooglechart;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsGroupControl;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsSiteControl;
use VDM\Joomla\Componentbuilder\Compiler\Creator\ConfigFieldsetsUikit;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Layout;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission;
use VDM\Joomla\Componentbuilder\Compiler\Creator\SiteFieldData;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Request;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Router;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterConstructorDefault;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterConstructorManual;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterMethodsDefault;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterMethodsManual;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldsetString;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldsetXML;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldsetDynamic;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldXML;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldString;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldDynamic;
use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldAsString;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldtypeinterface as FieldType;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldsetinterface as Fieldset;
/**
* Creator Service Provider
*
* @since 3.2.0
*/
class Creator implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(AccessSections::class, 'Compiler.Creator.Access.Sections')
->share('Compiler.Creator.Access.Sections', [$this, 'getAccessSections'], true);
$container->alias(AccessSectionsCategory::class, 'Compiler.Creator.Access.Sections.Category')
->share('Compiler.Creator.Access.Sections.Category', [$this, 'getAccessSectionsCategory'], true);
$container->alias(AccessSectionsJoomlaFields::class, 'Compiler.Creator.Access.Sections.Joomla.Fields')
->share('Compiler.Creator.Access.Sections.Joomla.Fields', [$this, 'getAccessSectionsJoomlaFields'], true);
$container->alias(Builders::class, 'Compiler.Creator.Builders')
->share('Compiler.Creator.Builders', [$this, 'getBuilders'], true);
$container->alias(CustomFieldTypeFile::class, 'Compiler.Creator.Custom.Field.Type.File')
->share('Compiler.Creator.Custom.Field.Type.File', [$this, 'getCustomFieldTypeFile'], true);
$container->alias(CustomButtonPermissions::class, 'Compiler.Creator.Custom.Button.Permissions')
->share('Compiler.Creator.Custom.Button.Permissions', [$this, 'getCustomButtonPermissions'], true);
$container->alias(ConfigFieldsets::class, 'Compiler.Creator.Config.Fieldsets')
->share('Compiler.Creator.Config.Fieldsets', [$this, 'getConfigFieldsets'], true);
$container->alias(ConfigFieldsetsCustomfield::class, 'Compiler.Creator.Config.Fieldsets.Customfield')
->share('Compiler.Creator.Config.Fieldsets.Customfield', [$this, 'getConfigFieldsetsCustomfield'], true);
$container->alias(ConfigFieldsetsEmailHelper::class, 'Compiler.Creator.Config.Fieldsets.Email.Helper')
->share('Compiler.Creator.Config.Fieldsets.Email.Helper', [$this, 'getConfigFieldsetsEmailHelper'], true);
$container->alias(ConfigFieldsetsEncryption::class, 'Compiler.Creator.Config.Fieldsets.Encryption')
->share('Compiler.Creator.Config.Fieldsets.Encryption', [$this, 'getConfigFieldsetsEncryption'], true);
$container->alias(ConfigFieldsetsGlobal::class, 'Compiler.Creator.Config.Fieldsets.Global')
->share('Compiler.Creator.Config.Fieldsets.Global', [$this, 'getConfigFieldsetsGlobal'], true);
$container->alias(ConfigFieldsetsGooglechart::class, 'Compiler.Creator.Config.Fieldsets.Googlechart')
->share('Compiler.Creator.Config.Fieldsets.Googlechart', [$this, 'getConfigFieldsetsGooglechart'], true);
$container->alias(ConfigFieldsetsGroupControl::class, 'Compiler.Creator.Config.Fieldsets.Group.Control')
->share('Compiler.Creator.Config.Fieldsets.Group.Control', [$this, 'getConfigFieldsetsGroupControl'], true);
$container->alias(ConfigFieldsetsSiteControl::class, 'Compiler.Creator.Config.Fieldsets.Site.Control')
->share('Compiler.Creator.Config.Fieldsets.Site.Control', [$this, 'getConfigFieldsetsSiteControl'], true);
$container->alias(ConfigFieldsetsUikit::class, 'Compiler.Creator.Config.Fieldsets.Uikit')
->share('Compiler.Creator.Config.Fieldsets.Uikit', [$this, 'getConfigFieldsetsUikit'], true);
$container->alias(Layout::class, 'Compiler.Creator.Layout')
->share('Compiler.Creator.Layout', [$this, 'getLayout'], true);
$container->alias(Permission::class, 'Compiler.Creator.Permission')
->share('Compiler.Creator.Permission', [$this, 'getPermission'], true);
$container->alias(SiteFieldData::class, 'Compiler.Creator.Site.Field.Data')
->share('Compiler.Creator.Site.Field.Data', [$this, 'getSiteFieldData'], true);
$container->alias(Request::class, 'Compiler.Creator.Request')
->share('Compiler.Creator.Request', [$this, 'getRequest'], true);
$container->alias(Router::class, 'Compiler.Creator.Router')
->share('Compiler.Creator.Router', [$this, 'getRouter'], true);
$container->alias(RouterConstructorDefault::class, 'Compiler.Creator.Router.Constructor.Default')
->share('Compiler.Creator.Router.Constructor.Default', [$this, 'getRouterConstructorDefault'], true);
$container->alias(RouterConstructorManual::class, 'Compiler.Creator.Router.Constructor.Manual')
->share('Compiler.Creator.Router.Constructor.Manual', [$this, 'getRouterConstructorManual'], true);
$container->alias(RouterMethodsDefault::class, 'Compiler.Creator.Router.Methods.Default')
->share('Compiler.Creator.Router.Methods.Default', [$this, 'getRouterMethodsDefault'], true);
$container->alias(RouterMethodsManual::class, 'Compiler.Creator.Router.Methods.Manual')
->share('Compiler.Creator.Router.Methods.Manual', [$this, 'getRouterMethodsManual'], true);
$container->alias(FieldsetString::class, 'Compiler.Creator.Fieldset.String')
->share('Compiler.Creator.Fieldset.String', [$this, 'getFieldsetString'], true);
$container->alias(FieldsetXML::class, 'Compiler.Creator.Fieldset.XML')
->share('Compiler.Creator.Fieldset.XML', [$this, 'getFieldsetXML'], true);
$container->alias(FieldsetDynamic::class, 'Compiler.Creator.Fieldset.Dynamic')
->share('Compiler.Creator.Fieldset.Dynamic', [$this, 'getFieldsetDynamic'], true);
$container->alias(FieldXML::class, 'Compiler.Creator.Field.XML')
->share('Compiler.Creator.Field.XML', [$this, 'getFieldXML'], true);
$container->alias(FieldString::class, 'Compiler.Creator.Field.String')
->share('Compiler.Creator.Field.String', [$this, 'getFieldString'], true);
$container->alias(FieldDynamic::class, 'Compiler.Creator.Field.Dynamic')
->share('Compiler.Creator.Field.Dynamic', [$this, 'getFieldDynamic'], true);
$container->alias(FieldAsString::class, 'Compiler.Creator.Field.As.String')
->share('Compiler.Creator.Field.As.String', [$this, 'getFieldAsString'], true);
$container->alias(FieldType::class, 'Compiler.Creator.Field.Type')
->share('Compiler.Creator.Field.Type', [$this, 'getFieldType'], true);
$container->alias(Fieldset::class, 'Compiler.Creator.Fieldset')
->share('Compiler.Creator.Fieldset', [$this, 'getFieldset'], true);
}
/**
* Get The AccessSections Class.
*
* @param Container $container The DI container.
*
* @return AccessSections
* @since 3.2.0
*/
public function getAccessSections(Container $container): AccessSections
{
return new AccessSections(
$container->get('Config'),
$container->get('Event'),
$container->get('Language'),
$container->get('Component'),
$container->get('Field.Name'),
$container->get('Field.Type.Name'),
$container->get('Utilities.Counter'),
$container->get('Compiler.Creator.Permission'),
$container->get('Compiler.Builder.Assets.Rules'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Compiler.Builder.Permission.Views'),
$container->get('Compiler.Builder.Permission.Fields'),
$container->get('Compiler.Builder.Permission.Component'),
$container->get('Compiler.Creator.Custom.Button.Permissions')
);
}
/**
* Get The AccessSectionsCategory Class.
*
* @param Container $container The DI container.
*
* @return AccessSectionsCategory
* @since 3.2.0
*/
public function getAccessSectionsCategory(Container $container): AccessSectionsCategory
{
return new AccessSectionsCategory(
$container->get('Compiler.Builder.Category.Code')
);
}
/**
* Get The AccessSectionsJoomlaFields Class.
*
* @param Container $container The DI container.
*
* @return AccessSectionsJoomlaFields
* @since 3.2.0
*/
public function getAccessSectionsJoomlaFields(Container $container): AccessSectionsJoomlaFields
{
return new AccessSectionsJoomlaFields();
}
/**
* Get The Builders Class.
*
* @param Container $container The DI container.
*
* @return Builders
* @since 3.2.0
*/
public function getBuilders(Container $container): Builders
{
return new Builders(
$container->get('Config'),
$container->get('Power'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Compiler.Creator.Layout'),
$container->get('Compiler.Creator.Site.Field.Data'),
$container->get('Compiler.Builder.Tags'),
$container->get('Compiler.Builder.Database.Tables'),
$container->get('Compiler.Builder.Database.Unique.Keys'),
$container->get('Compiler.Builder.Database.Keys'),
$container->get('Compiler.Builder.Database.Unique.Guid'),
$container->get('Compiler.Builder.List.Join'),
$container->get('Compiler.Builder.History'),
$container->get('Compiler.Builder.Alias'),
$container->get('Compiler.Builder.Title'),
$container->get('Compiler.Builder.Category.Other.Name'),
$container->get('Compiler.Builder.Lists'),
$container->get('Compiler.Builder.Custom.List'),
$container->get('Compiler.Builder.Field.Relations'),
$container->get('Compiler.Builder.Hidden.Fields'),
$container->get('Compiler.Builder.Integer.Fields'),
$container->get('Compiler.Builder.Dynamic.Fields'),
$container->get('Compiler.Builder.Main.Text.Field'),
$container->get('Compiler.Builder.Custom.Field'),
$container->get('Compiler.Builder.Custom.Field.Links'),
$container->get('Compiler.Builder.Script.User.Switch'),
$container->get('Compiler.Builder.Script.Media.Switch'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Category.Code'),
$container->get('Compiler.Builder.Check.Box'),
$container->get('Compiler.Builder.Json.String'),
$container->get('Compiler.Builder.Base.Six.Four'),
$container->get('Compiler.Builder.Model.Basic.Field'),
$container->get('Compiler.Builder.Model.Whmcs.Field'),
$container->get('Compiler.Builder.Model.Medium.Field'),
$container->get('Compiler.Builder.Model.Expert.Field.Initiator'),
$container->get('Compiler.Builder.Model.Expert.Field'),
$container->get('Compiler.Builder.Json.Item'),
$container->get('Compiler.Builder.Items.Method.List.String'),
$container->get('Compiler.Builder.Json.Item.Array'),
$container->get('Compiler.Builder.Items.Method.Eximport.String'),
$container->get('Compiler.Builder.Selection.Translation'),
$container->get('Compiler.Builder.Admin.Filter.Type'),
$container->get('Compiler.Builder.Sort'),
$container->get('Compiler.Builder.Search'),
$container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Component.Fields')
);
}
/**
* Get The CustomFieldTypeFile Class.
*
* @param Container $container The DI container.
*
* @return CustomFieldTypeFile
* @since 3.2.0
*/
public function getCustomFieldTypeFile(Container $container): CustomFieldTypeFile
{
return new CustomFieldTypeFile(
$container->get('Config'),
$container->get('Compiler.Builder.Content.One'),
$container->get('Compiler.Builder.Content.Multi'),
$container->get('Compiler.Builder.Site.Field.Data'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Component.Placeholder'),
$container->get('Utilities.Structure'),
$container->get('Field.Input.Button'),
$container->get('Compiler.Builder.Field.Group.Control'),
$container->get('Compiler.Builder.Extension.Custom.Fields'),
$container->get('Header'),
$container->get('Field.Core.Field')
);
}
/**
* Get The CustomButtonPermissions Class.
*
* @param Container $container The DI container.
*
* @return CustomButtonPermissions
* @since 3.2.0
*/
public function getCustomButtonPermissions(Container $container): CustomButtonPermissions
{
return new CustomButtonPermissions(
$container->get('Config'),
$container->get('Language'),
$container->get('Compiler.Builder.Permission.Component'),
$container->get('Utilities.Counter')
);
}
/**
* Get The ConfigFieldsets Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsets
* @since 3.2.0
*/
public function getConfigFieldsets(Container $container): ConfigFieldsets
{
return new ConfigFieldsets(
$container->get('Config'),
$container->get('Component'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Component.Placeholder'),
$container->get('Compiler.Builder.Extensions.Params'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield'),
$container->get('Compiler.Creator.Field.As.String'),
$container->get('Compiler.Creator.Config.Fieldsets.Global'),
$container->get('Compiler.Creator.Config.Fieldsets.Site.Control'),
$container->get('Compiler.Creator.Config.Fieldsets.Group.Control'),
$container->get('Compiler.Creator.Config.Fieldsets.Uikit'),
$container->get('Compiler.Creator.Config.Fieldsets.Googlechart'),
$container->get('Compiler.Creator.Config.Fieldsets.Email.Helper'),
$container->get('Compiler.Creator.Config.Fieldsets.Encryption'),
$container->get('Compiler.Creator.Config.Fieldsets.Customfield')
);
}
/**
* Get The ConfigFieldsetsCustomfield Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsCustomfield
* @since 3.2.0
*/
public function getConfigFieldsetsCustomfield(Container $container): ConfigFieldsetsCustomfield
{
return new ConfigFieldsetsCustomfield(
$container->get('Config'),
$container->get('Language'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield'),
$container->get('Compiler.Builder.Config.Fieldsets')
);
}
/**
* Get The ConfigFieldsetsEmailHelper Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsEmailHelper
* @since 3.2.0
*/
public function getConfigFieldsetsEmailHelper(Container $container): ConfigFieldsetsEmailHelper
{
return new ConfigFieldsetsEmailHelper(
$container->get('Config'),
$container->get('Language'),
$container->get('Component'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield')
);
}
/**
* Get The ConfigFieldsetsEncryption Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsEncryption
* @since 3.2.0
*/
public function getConfigFieldsetsEncryption(Container $container): ConfigFieldsetsEncryption
{
return new ConfigFieldsetsEncryption(
$container->get('Config'),
$container->get('Language'),
$container->get('Component'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield')
);
}
/**
* Get The ConfigFieldsetsGlobal Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsGlobal
* @since 3.2.0
*/
public function getConfigFieldsetsGlobal(Container $container): ConfigFieldsetsGlobal
{
return new ConfigFieldsetsGlobal(
$container->get('Config'),
$container->get('Language'),
$container->get('Component'),
$container->get('Compiler.Builder.Contributors'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Extensions.Params'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield')
);
}
/**
* Get The ConfigFieldsetsGooglechart Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsGooglechart
* @since 3.2.0
*/
public function getConfigFieldsetsGooglechart(Container $container): ConfigFieldsetsGooglechart
{
return new ConfigFieldsetsGooglechart(
$container->get('Config'),
$container->get('Language'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield'),
$container->get('Compiler.Builder.Extensions.Params')
);
}
/**
* Get The ConfigFieldsetsGroupControl Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsGroupControl
* @since 3.2.0
*/
public function getConfigFieldsetsGroupControl(Container $container): ConfigFieldsetsGroupControl
{
return new ConfigFieldsetsGroupControl(
$container->get('Config'),
$container->get('Language'),
$container->get('Compiler.Builder.Field.Group.Control'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Extensions.Params'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield')
);
}
/**
* Get The ConfigFieldsetsSiteControl Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsSiteControl
* @since 3.2.0
*/
public function getConfigFieldsetsSiteControl(Container $container): ConfigFieldsetsSiteControl
{
return new ConfigFieldsetsSiteControl(
$container->get('Component'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield'),
$container->get('Compiler.Builder.Has.Menu.Global'),
$container->get('Compiler.Builder.Frontend.Params'),
$container->get('Compiler.Creator.Request')
);
}
/**
* Get The ConfigFieldsetsUikit Class.
*
* @param Container $container The DI container.
*
* @return ConfigFieldsetsUikit
* @since 3.2.0
*/
public function getConfigFieldsetsUikit(Container $container): ConfigFieldsetsUikit
{
return new ConfigFieldsetsUikit(
$container->get('Config'),
$container->get('Language'),
$container->get('Compiler.Builder.Config.Fieldsets'),
$container->get('Compiler.Builder.Extensions.Params'),
$container->get('Compiler.Builder.Config.Fieldsets.Customfield')
);
}
/**
* Get The Layout Class.
*
* @param Container $container The DI container.
*
* @return Layout
* @since 3.2.0
*/
public function getLayout(Container $container): Layout
{
return new Layout(
$container->get('Config'),
$container->get('Compiler.Builder.Order.Zero'),
$container->get('Compiler.Builder.Tab.Counter'),
$container->get('Compiler.Builder.Layout'),
$container->get('Compiler.Builder.Moved.Publishing.Fields'),
$container->get('Compiler.Builder.New.Publishing.Fields')
);
}
/**
* Get The Permission Class.
*
* @param Container $container The DI container.
*
* @return Permission
* @since 3.2.0
*/
public function getPermission(Container $container): Permission
{
return new Permission(
$container->get('Config'),
$container->get('Compiler.Builder.Permission.Core'),
$container->get('Compiler.Builder.Permission.Views'),
$container->get('Compiler.Builder.Permission.Action'),
$container->get('Compiler.Builder.Permission.Component'),
$container->get('Compiler.Builder.Permission.Global.Action'),
$container->get('Compiler.Builder.Permission.Dashboard'),
$container->get('Utilities.Counter'),
$container->get('Language')
);
}
/**
* Get The SiteFieldData Class.
*
* @param Container $container The DI container.
*
* @return SiteFieldData
* @since 3.2.0
*/
public function getSiteFieldData(Container $container): SiteFieldData
{
return new SiteFieldData(
$container->get('Config'),
$container->get('Compiler.Builder.Site.Fields'),
$container->get('Compiler.Builder.Site.Field.Data')
);
}
/**
* Get The Request Class.
*
* @param Container $container The DI container.
*
* @return Request
* @since 3.2.0
*/
public function getRequest(Container $container): Request
{
return new Request(
$container->get('Compiler.Builder.Request')
);
}
/**
* Get The Router Class.
*
* @param Container $container The DI container.
*
* @return Router
* @since 3.2.0
*/
public function getRouter(Container $container): Router
{
return new Router(
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Request'),
$container->get('Compiler.Builder.Router'),
$container->get('Compiler.Creator.Router.Constructor.Default'),
$container->get('Compiler.Creator.Router.Constructor.Manual'),
$container->get('Compiler.Creator.Router.Methods.Default'),
$container->get('Compiler.Creator.Router.Methods.Manual')
);
}
/**
* Get The RouterConstructorDefault Class.
*
* @param Container $container The DI container.
*
* @return RouterConstructorDefault
* @since 3.2.0
*/
public function getRouterConstructorDefault(Container $container): RouterConstructorDefault
{
return new RouterConstructorDefault(
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The RouterConstructorManual Class.
*
* @param Container $container The DI container.
*
* @return RouterConstructorManual
* @since 3.2.0
*/
public function getRouterConstructorManual(Container $container): RouterConstructorManual
{
return new RouterConstructorManual(
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The RouterMethodsDefault Class.
*
* @param Container $container The DI container.
*
* @return RouterMethodsDefault
* @since 3.2.0
*/
public function getRouterMethodsDefault(Container $container): RouterMethodsDefault
{
return new RouterMethodsDefault(
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The RouterMethodsManual Class.
*
* @param Container $container The DI container.
*
* @return RouterMethodsManual
* @since 3.2.0
*/
public function getRouterMethodsManual(Container $container): RouterMethodsManual
{
return new RouterMethodsManual(
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The FieldsetString Class.
*
* @param Container $container The DI container.
*
* @return FieldsetString
* @since 3.2.0
*/
public function getFieldsetString(Container $container): FieldsetString
{
return new FieldsetString(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Language.Fieldset'),
$container->get('Event'),
$container->get('Adminview.Permission'),
$container->get('Compiler.Creator.Field.Dynamic'),
$container->get('Compiler.Builder.Field.Names'),
$container->get('Compiler.Builder.Access.Switch'),
$container->get('Compiler.Builder.Meta.Data'),
$container->get('Compiler.Creator.Layout'),
$container->get('Utilities.Counter')
);
}
/**
* Get The FieldsetXML Class.
*
* @param Container $container The DI container.
*
* @return FieldsetXML
* @since 3.2.0
*/
public function getFieldsetXML(Container $container): FieldsetXML
{
return new FieldsetXML(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Language.Fieldset'),
$container->get('Event'),
$container->get('Adminview.Permission'),
$container->get('Compiler.Creator.Field.Dynamic'),
$container->get('Compiler.Builder.Field.Names'),
$container->get('Compiler.Builder.Access.Switch'),
$container->get('Compiler.Builder.Meta.Data'),
$container->get('Compiler.Creator.Layout'),
$container->get('Utilities.Counter'),
$container->get('Utilities.Xml')
);
}
/**
* Get The FieldsetDynamic Class.
*
* @param Container $container The DI container.
*
* @return FieldsetDynamic
* @since 3.2.0
*/
public function getFieldsetDynamic(Container $container): FieldsetDynamic
{
return new FieldsetDynamic(
$container->get('Compiler.Creator.Field.As.String')
);
}
/**
* Get The FieldXML Class.
*
* @param Container $container The DI container.
*
* @return FieldXML
* @since 3.2.0
*/
public function getFieldXML(Container $container): FieldXML
{
return new FieldXML(
$container->get('Config'),
$container->get('Language'),
$container->get('Field'),
$container->get('Field.Groups'),
$container->get('Field.Name'),
$container->get('Field.Type.Name'),
$container->get('Field.Attributes'),
$container->get('Utilities.Xml'),
$container->get('Compiler.Creator.Custom.Field.Type.File'),
$container->get('Utilities.Counter')
);
}
/**
* Get The FieldString Class.
*
* @param Container $container The DI container.
*
* @return FieldString
* @since 3.2.0
*/
public function getFieldString(Container $container): FieldString
{
return new FieldString(
$container->get('Config'),
$container->get('Language'),
$container->get('Field'),
$container->get('Field.Groups'),
$container->get('Field.Name'),
$container->get('Field.Type.Name'),
$container->get('Field.Attributes'),
$container->get('Compiler.Creator.Custom.Field.Type.File'),
$container->get('Utilities.Counter')
);
}
/**
* Get The FieldDynamic Class.
*
* @param Container $container The DI container.
*
* @return FieldDynamic
* @since 3.2.0
*/
public function getFieldDynamic(Container $container): FieldDynamic
{
return new FieldDynamic(
$container->get('Field.Name'),
$container->get('Field.Type.Name'),
$container->get('Field.Attributes'),
$container->get('Field.Groups'),
$container->get('Compiler.Builder.Field.Names'),
$container->get('Compiler.Creator.Field.Type'),
$container->get('Compiler.Creator.Builders'),
$container->get('Compiler.Creator.Layout')
);
}
/**
* Get The FieldAsString Class.
*
* @param Container $container The DI container.
*
* @return FieldAsString
* @since 3.2.0
*/
public function getFieldAsString(Container $container): FieldAsString
{
return new FieldAsString(
$container->get('Compiler.Creator.Field.Dynamic'),
$container->get('Utilities.Xml')
);
}
/**
* Get The Fieldtypeinterface Class.
*
* @param Container $container The DI container.
*
* @return FieldType
* @since 3.2.0
*/
public function getFieldType(Container $container): FieldType
{
// check what type of field builder to use
if ($container->get('Config')->get('field_builder_type', 2) == 1)
{
// build field set using string manipulation
return $container->get('Compiler.Creator.Field.String');
}
else
{
// build field set with simpleXMLElement class
return $container->get('Compiler.Creator.Field.XML');
}
}
/**
* Get The Fieldsetinterface Class.
*
* @param Container $container The DI container.
*
* @return Fieldset
* @since 3.2.0
*/
public function getFieldset(Container $container): Fieldset
{
// check what type of field builder to use
if ($container->get('Config')->get('field_builder_type', 2) == 1)
{
// build field set using string manipulation
return $container->get('Compiler.Creator.Fieldset.String');
}
else
{
// build field set with simpleXMLElement class
return $container->get('Compiler.Creator.Fieldset.XML');
}
}
}

View File

@@ -0,0 +1,209 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Customcode as CompilerCustomcode;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\CustomcodeInterface;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\External;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Gui;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Hash;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\LockBase;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor\Paths;
/**
* Compiler Custom Code Service Provider
*
* @since 3.2.0
*/
class Customcode implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(CompilerCustomcode::class, 'Customcode')
->share('Customcode', [$this, 'getCustomcode'], true);
$container->alias(External::class, 'Customcode.External')
->share('Customcode.External', [$this, 'getExternal'], true);
$container->alias(Gui::class, 'Customcode.Gui')
->share('Customcode.Gui', [$this, 'getGui'], true);
$container->alias(Hash::class, 'Customcode.Hash')
->share('Customcode.Hash', [$this, 'getHash'], true);
$container->alias(LockBase::class, 'Customcode.LockBase')
->share('Customcode.LockBase', [$this, 'getLockBase'], true);
$container->alias(Dispenser::class, 'Customcode.Dispenser')
->share('Customcode.Dispenser', [$this, 'getDispenser'], true);
$container->alias(Paths::class, 'Customcode.Extractor.Paths')
->share('Customcode.Extractor.Paths', [$this, 'getPaths'], true);
$container->alias(Extractor::class, 'Customcode.Extractor')
->share('Customcode.Extractor', [$this, 'getExtractor'], true);
}
/**
* Get the Compiler Customcode
*
* @param Container $container The DI container.
*
* @return CustomcodeInterface
* @since 3.2.0
*/
public function getCustomcode(Container $container): CustomcodeInterface
{
return new CompilerCustomcode(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Language.Extractor'),
$container->get('Power.Extractor'),
$container->get('Customcode.External')
);
}
/**
* Get the Compiler Customcode External
*
* @param Container $container The DI container.
*
* @return External
* @since 3.2.0
*/
public function getExternal(Container $container): External
{
return new External(
$container->get('Placeholder')
);
}
/**
* Get the Compiler Customcode Gui
*
* @param Container $container The DI container.
*
* @return Gui
* @since 3.2.0
*/
public function getGui(Container $container): Gui
{
return new Gui(
$container->get('Config'),
$container->get('Placeholder.Reverse')
);
}
/**
* Get the Customcode Hash
*
* @param Container $container The DI container.
*
* @return Hash
* @since 3.2.0
*/
public function getHash(Container $container): Hash
{
return new Hash(
$container->get('Placeholder')
);
}
/**
* Get the Customcode LockBase64
*
* @param Container $container The DI container.
*
* @return LockBase
* @since 3.2.0
*/
public function getLockBase(Container $container): LockBase
{
return new LockBase(
$container->get('Placeholder')
);
}
/**
* Get the Customcode Dispenser
*
* @param Container $container The DI container.
*
* @return Dispenser
* @since 3.2.0
*/
public function getDispenser(Container $container): Dispenser
{
return new Dispenser(
$container->get('Placeholder'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Customcode.Hash'),
$container->get('Customcode.LockBase')
);
}
/**
* Get the Customcode Extractor Paths
*
* @param Container $container The DI container.
*
* @return Paths
* @since 3.2.0
*/
public function getPaths(Container $container): Paths
{
return new Paths(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Component.Placeholder'),
$container->get('Customcode'),
$container->get('Language.Extractor')
);
}
/**
* Get the Customcode Extractor
*
* @param Container $container The DI container.
*
* @return Extractor
* @since 3.2.0
*/
public function getExtractor(Container $container): Extractor
{
return new Extractor(
$container->get('Config'),
$container->get('Customcode.Gui'),
$container->get('Customcode.Extractor.Paths'),
$container->get('Placeholder.Reverse'),
$container->get('Component.Placeholder'),
$container->get('Utilities.Pathfix')
);
}
}

View File

@@ -0,0 +1,114 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Customview\Data as CustomviewData;
use VDM\Joomla\Componentbuilder\Compiler\Dynamicget\Data as DynamicgetData;
use VDM\Joomla\Componentbuilder\Compiler\Dynamicget\Selection as DynamicgetSelection;
/**
* Compiler Customview
*
* @since 3.2.0
*/
class Customview implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(CustomviewData::class, 'Customview.Data')
->share('Customview.Data', [$this, 'getCustomviewData'], true);
$container->alias(DynamicgetData::class, 'Dynamicget.Data')
->share('Dynamicget.Data', [$this, 'getDynamicgetData'], true);
$container->alias(DynamicgetSelection::class, 'Dynamicget.Selection')
->share('Dynamicget.Selection', [$this, 'getDynamicgetSelection'], true);
}
/**
* Get the Compiler Customview Data
*
* @param Container $container The DI container.
*
* @return CustomviewData
* @since 3.2.0
*/
public function getCustomviewData(Container $container): CustomviewData
{
return new CustomviewData(
$container->get('Config'),
$container->get('Event'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Model.Libraries'),
$container->get('Templatelayout.Data'),
$container->get('Dynamicget.Data'),
$container->get('Model.Loader'),
$container->get('Model.Javascriptcustomview'),
$container->get('Model.Csscustomview'),
$container->get('Model.Phpcustomview'),
$container->get('Model.Ajaxcustomview'),
$container->get('Model.Custombuttons')
);
}
/**
* Get the Compiler Dynamicget Data
*
* @param Container $container The DI container.
*
* @return DynamicgetData
* @since 3.2.0
*/
public function getDynamicgetData(Container $container): DynamicgetData
{
return new DynamicgetData(
$container->get('Config'),
$container->get('Registry'),
$container->get('Event'),
$container->get('Customcode'),
$container->get('Customcode.Dispenser'),
$container->get('Customcode.Gui'),
$container->get('Model.Dynamicget')
);
}
/**
* Get the Compiler Dynamicget Selection
*
* @param Container $container The DI container.
*
* @return DynamicgetSelection
* @since 3.2.0
*/
public function getDynamicgetSelection(Container $container): DynamicgetSelection
{
return new DynamicgetSelection(
$container->get('Config'),
$container->get('Compiler.Builder.Get.As.Lookup'),
$container->get('Compiler.Builder.Site.Fields')
);
}
}

View File

@@ -0,0 +1,119 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use Joomla\CMS\Version;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaThree\Event as J3Event;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFour\Event as J4Event;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFive\Event as J5Event;
/**
* Event Service Provider
*
* @since 3.2.0
*/
class Event implements ServiceProviderInterface
{
/**
* Current Joomla Version We are IN
*
* @var int
* @since 3.2.0
**/
protected $currentVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(J3Event::class, 'J3.Event')
->share('J3.Event', [$this, 'getJ3Event'], true);
$container->alias(J4Event::class, 'J4.Event')
->share('J4.Event', [$this, 'getJ4Event'], true);
$container->alias(J5Event::class, 'J5.Event')
->share('J5.Event', [$this, 'getJ5Event'], true);
$container->alias(EventInterface::class, 'Event')
->share('Event', [$this, 'getEvent'], true);
}
/**
* Get the Event
*
* @param Container $container The DI container.
*
* @return EventInterface
* @since 3.2.0
*/
public function getEvent(Container $container): EventInterface
{
if (empty($this->currentVersion))
{
$this->currentVersion = Version::MAJOR_VERSION;
}
return $container->get('J' . $this->currentVersion . '.Event');
}
/**
* Get the Joomla 3 Event
*
* @param Container $container The DI container.
*
* @return J3Event
* @since 3.2.0
*/
public function getJ3Event(Container $container): J3Event
{
return new J3Event();
}
/**
* Get the Joomla 4 Event
*
* @param Container $container The DI container.
*
* @return J4Event
* @since 3.2.0
*/
public function getJ4Event(Container $container): J4Event
{
return new J4Event();
}
/**
* Get the Joomla 5 Event
*
* @param Container $container The DI container.
*
* @return J5Event
* @since 3.2.0
*/
public function getJ5Event(Container $container): J5Event
{
return new J5Event();
}
}

View File

@@ -0,0 +1,119 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\GetScriptInterface;
use VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree\InstallScript as J3InstallScript;
use VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaFour\InstallScript as J4InstallScript;
use VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaFive\InstallScript as J5InstallScript;
/**
* Extension Script Service Provider
*
* @since 3.2.0
*/
class Extension implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(GetScriptInterface::class, 'Extension.InstallScript')
->share('Extension.InstallScript', [$this, 'getExtensionInstallScript'], true);
$container->alias(J3InstallScript::class, 'J3.Extension.InstallScript')
->share('J3.Extension.InstallScript', [$this, 'getJ3ExtensionInstallScript'], true);
$container->alias(J4InstallScript::class, 'J4.Extension.InstallScript')
->share('J4.Extension.InstallScript', [$this, 'getJ4ExtensionInstallScript'], true);
$container->alias(J5InstallScript::class, 'J5.Extension.InstallScript')
->share('J5.Extension.InstallScript', [$this, 'getJ5ExtensionInstallScript'], true);
}
/**
* Get the Joomla 3 Extension Install Script
*
* @param Container $container The DI container.
*
* @return J3InstallScript
* @since 3.2.0
*/
public function getJ3ExtensionInstallScript(Container $container): J3InstallScript
{
return new J3InstallScript();
}
/**
* Get the Joomla 4 Extension Install Script
*
* @param Container $container The DI container.
*
* @return J4InstallScript
* @since 3.2.0
*/
public function getJ4ExtensionInstallScript(Container $container): J4InstallScript
{
return new J4InstallScript();
}
/**
* Get the Joomla 5 Extension Install Script
*
* @param Container $container The DI container.
*
* @return J5InstallScript
* @since 3.2.0
*/
public function getJ5ExtensionInstallScript(Container $container): J5InstallScript
{
return new J5InstallScript();
}
/**
* Get the Joomla Extension Install Script
*
* @param Container $container The DI container.
*
* @return GetScriptInterface
* @since 3.2.0
*/
public function getExtensionInstallScript(Container $container): GetScriptInterface
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('J' . $this->targetVersion . '.Extension.InstallScript');
}
}

View File

@@ -0,0 +1,421 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use Joomla\CMS\Version;
use VDM\Joomla\Componentbuilder\Compiler\Field as CompilerField;
use VDM\Joomla\Componentbuilder\Compiler\Field\Data;
use VDM\Joomla\Componentbuilder\Compiler\Field\Groups;
use VDM\Joomla\Componentbuilder\Compiler\Field\Attributes;
use VDM\Joomla\Componentbuilder\Compiler\Field\Name;
use VDM\Joomla\Componentbuilder\Compiler\Field\TypeName;
use VDM\Joomla\Componentbuilder\Compiler\Field\UniqueName;
use VDM\Joomla\Componentbuilder\Compiler\Field\Rule;
use VDM\Joomla\Componentbuilder\Compiler\Field\Customcode;
use VDM\Joomla\Componentbuilder\Compiler\Field\DatabaseName;
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\CoreField as J3CoreField;
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour\CoreField as J4CoreField;
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive\CoreField as J5CoreField;
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\InputButton as J3InputButton;
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour\InputButton as J4InputButton;
use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive\InputButton as J5InputButton;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreFieldInterface as CoreField;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\InputButtonInterface as InputButton;
/**
* Compiler Field
*
* @since 3.2.0
*/
class Field implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Current Joomla Version We are IN
*
* @var int
* @since 3.2.0
**/
protected $currentVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(CompilerField::class, 'Field')
->share('Field', [$this, 'getCompilerField'], true);
$container->alias(Data::class, 'Field.Data')
->share('Field.Data', [$this, 'getData'], true);
$container->alias(Groups::class, 'Field.Groups')
->share('Field.Groups', [$this, 'getGroups'], true);
$container->alias(Attributes::class, 'Field.Attributes')
->share('Field.Attributes', [$this, 'getAttributes'], true);
$container->alias(Name::class, 'Field.Name')
->share('Field.Name', [$this, 'getName'], true);
$container->alias(TypeName::class, 'Field.Type.Name')
->share('Field.Type.Name', [$this, 'getTypeName'], true);
$container->alias(UniqueName::class, 'Field.Unique.Name')
->share('Field.Unique.Name', [$this, 'getUniqueName'], true);
$container->alias(Rule::class, 'Field.Rule')
->share('Field.Rule', [$this, 'getRule'], true);
$container->alias(Customcode::class, 'Field.Customcode')
->share('Field.Customcode', [$this, 'getCustomcode'], true);
$container->alias(DatabaseName::class, 'Field.Database.Name')
->share('Field.Database.Name', [$this, 'getDatabaseName'], true);
$container->alias(J3CoreField::class, 'J3.Field.Core.Field')
->share('J3.Field.Core.Field', [$this, 'getJ3CoreField'], true);
$container->alias(J4CoreField::class, 'J4.Field.Core.Field')
->share('J4.Field.Core.Field', [$this, 'getJ4CoreField'], true);
$container->alias(J5CoreField::class, 'J5.Field.Core.Field')
->share('J5.Field.Core.Field', [$this, 'getJ5CoreField'], true);
$container->alias(J3InputButton::class, 'J3.Field.Input.Button')
->share('J3.Field.Input.Button', [$this, 'getJ3InputButton'], true);
$container->alias(J4InputButton::class, 'J4.Field.Input.Button')
->share('J4.Field.Input.Button', [$this, 'getJ4InputButton'], true);
$container->alias(J5InputButton::class, 'J5.Field.Input.Button')
->share('J5.Field.Input.Button', [$this, 'getJ5InputButton'], true);
$container->alias(CoreField::class, 'Field.Core.Field')
->share('Field.Core.Field', [$this, 'getCoreField'], true);
$container->alias(InputButton::class, 'Field.Input.Button')
->share('Field.Input.Button', [$this, 'getInputButton'], true);
}
/**
* Get The Field Class.
*
* @param Container $container The DI container.
*
* @return CompilerField
* @since 3.2.0
*/
public function getCompilerField(Container $container): CompilerField
{
return new CompilerField(
$container->get('Field.Data'),
$container->get('Field.Name'),
$container->get('Field.Type.Name'),
$container->get('Field.Unique.Name')
);
}
/**
* Get The Data Class.
*
* @param Container $container The DI container.
*
* @return Data
* @since 3.2.0
*/
public function getData(Container $container): Data
{
return new Data(
$container->get('Config'),
$container->get('Event'),
$container->get('History'),
$container->get('Placeholder'),
$container->get('Customcode'),
$container->get('Field.Customcode'),
$container->get('Field.Rule')
);
}
/**
* Get The Groups Class.
*
* @param Container $container The DI container.
*
* @return Groups
* @since 3.2.0
*/
public function getGroups(Container $container): Groups
{
return new Groups();
}
/**
* Get The Attributes Class.
*
* @param Container $container The DI container.
*
* @return Attributes
* @since 3.2.0
*/
public function getAttributes(Container $container): Attributes
{
return new Attributes(
$container->get('Config'),
$container->get('Registry'),
$container->get('Compiler.Builder.List.Field.Class'),
$container->get('Compiler.Builder.Do.Not.Escape'),
$container->get('Placeholder'),
$container->get('Customcode'),
$container->get('Language'),
$container->get('Field.Groups')
);
}
/**
* Get The Name Class.
*
* @param Container $container The DI container.
*
* @return Name
* @since 3.2.0
*/
public function getName(Container $container): Name
{
return new Name(
$container->get('Placeholder'),
$container->get('Field.Unique.Name'),
$container->get('Compiler.Builder.Category.Other.Name')
);
}
/**
* Get The TypeName Class.
*
* @param Container $container The DI container.
*
* @return TypeName
* @since 3.2.0
*/
public function getTypeName(Container $container): TypeName
{
return new TypeName();
}
/**
* Get The UniqueName Class.
*
* @param Container $container The DI container.
*
* @return UniqueName
* @since 3.2.0
*/
public function getUniqueName(Container $container): UniqueName
{
return new UniqueName(
$container->get('Registry')
);
}
/**
* Get The Rule Class.
*
* @param Container $container The DI container.
*
* @return Rule
* @since 3.2.0
*/
public function getRule(Container $container): Rule
{
return new Rule(
$container->get('Registry'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Placeholder'),
$container->get('Field.Core.Rule')
);
}
/**
* Get The Customcode Class.
*
* @param Container $container The DI container.
*
* @return Customcode
* @since 3.2.0
*/
public function getCustomcode(Container $container): Customcode
{
return new Customcode(
$container->get('Customcode.Dispenser')
);
}
/**
* Get The DatabaseName Class.
*
* @param Container $container The DI container.
*
* @return DatabaseName
* @since 3.2.0
*/
public function getDatabaseName(Container $container): DatabaseName
{
return new DatabaseName(
$container->get('Compiler.Builder.Lists'),
$container->get('Registry')
);
}
/**
* Get The CoreField Class.
*
* @param Container $container The DI container.
*
* @return J3CoreField
* @since 3.2.0
*/
public function getJ3CoreField(Container $container): J3CoreField
{
return new J3CoreField();
}
/**
* Get The CoreField Class.
*
* @param Container $container The DI container.
*
* @return J4CoreField
* @since 3.2.0
*/
public function getJ4CoreField(Container $container): J4CoreField
{
return new J4CoreField();
}
/**
* Get The CoreField Class.
*
* @param Container $container The DI container.
*
* @return J5CoreField
* @since 3.2.0
*/
public function getJ5CoreField(Container $container): J5CoreField
{
return new J5CoreField();
}
/**
* Get The J3InputButton Class.
*
* @param Container $container The DI container.
*
* @return J3InputButton
* @since 3.2.0
*/
public function getJ3InputButton(Container $container): J3InputButton
{
return new J3InputButton(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The J4InputButton Class.
*
* @param Container $container The DI container.
*
* @return J4InputButton
* @since 3.2.0
*/
public function getJ4InputButton(Container $container): J4InputButton
{
return new J4InputButton(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The J5InputButton Class.
*
* @param Container $container The DI container.
*
* @return J5InputButton
* @since 3.2.0
*/
public function getJ5InputButton(Container $container): J5InputButton
{
return new J5InputButton(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Compiler.Creator.Permission')
);
}
/**
* Get The CoreFieldInterface Class.
*
* @param Container $container The DI container.
*
* @return CoreField
* @since 3.2.0
*/
public function getCoreField(Container $container): CoreField
{
if (empty($this->currentVersion))
{
$this->currentVersion = Version::MAJOR_VERSION;
}
return $container->get('J' . $this->currentVersion . '.Field.Core.Field');
}
/**
* Get The InputButton Class.
*
* @param Container $container The DI container.
*
* @return InputButton
* @since 3.2.0
*/
public function getInputButton(Container $container): InputButton
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('J' . $this->targetVersion . '.Field.Input.Button');
}
}

View File

@@ -0,0 +1,151 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HeaderInterface;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaThree\Header as J3Header;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFour\Header as J4Header;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFive\Header as J5Header;
/**
* Header Service Provider
*
* @since 3.2.0
*/
class Header implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(J3Header::class, 'J3.Header')
->share('J3.Header', [$this, 'getJ3Header'], true);
$container->alias(J4Header::class, 'J4.Header')
->share('J4.Header', [$this, 'getJ4Header'], true);
$container->alias(J5Header::class, 'J5.Header')
->share('J5.Header', [$this, 'getJ5Header'], true);
$container->alias(HeaderInterface::class, 'Header')
->share('Header', [$this, 'getHeader'], true);
}
/**
* Get the Header
*
* @param Container $container The DI container.
*
* @return HeaderInterface
* @since 3.2.0
*/
public function getHeader(Container $container): HeaderInterface
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('J' . $this->targetVersion . '.Header');
}
/**
* Get The Header Class.
*
* @param Container $container The DI container.
*
* @return J3Header
* @since 3.2.0
*/
public function getJ3Header(Container $container): J3Header
{
return new J3Header(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Compiler.Builder.Uikit.Comp'),
$container->get('Compiler.Builder.Admin.Filter.Type'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Access.Switch.List'),
$container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags')
);
}
/**
* Get The Header Class.
*
* @param Container $container The DI container.
*
* @return J4Header
* @since 3.2.0
*/
public function getJ4Header(Container $container): J4Header
{
return new J4Header(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Compiler.Builder.Uikit.Comp'),
$container->get('Compiler.Builder.Admin.Filter.Type'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Access.Switch.List'),
$container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags')
);
}
/**
* Get The Header Class.
*
* @param Container $container The DI container.
*
* @return J5Header
* @since 3.2.0
*/
public function getJ5Header(Container $container): J5Header
{
return new J5Header(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Compiler.Builder.Uikit.Comp'),
$container->get('Compiler.Builder.Admin.Filter.Type'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Access.Switch.List'),
$container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags')
);
}
}

View File

@@ -0,0 +1,125 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use Joomla\CMS\Version;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HistoryInterface;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaThree\History as J3History;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFour\History as J4History;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFive\History as J5History;
/**
* History Service Provider
*
* @since 3.2.0
*/
class History implements ServiceProviderInterface
{
/**
* Current Joomla Version We are IN
*
* @var int
* @since 3.2.0
**/
protected $currentVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(J3History::class, 'J3.History')
->share('J3.History', [$this, 'getJ3History'], true);
$container->alias(J4History::class, 'J4.History')
->share('J4.History', [$this, 'getJ4History'], true);
$container->alias(J5History::class, 'J5.History')
->share('J5.History', [$this, 'getJ5History'], true);
$container->alias(HistoryInterface::class, 'History')
->share('History', [$this, 'getHistory'], true);
}
/**
* Get the History
*
* @param Container $container The DI container.
*
* @return HistoryInterface
* @since 3.2.0
*/
public function getHistory(Container $container): HistoryInterface
{
if (empty($this->currentVersion))
{
$this->currentVersion = Version::MAJOR_VERSION;
}
return $container->get('J' . $this->currentVersion . '.History');
}
/**
* Get the Joomla 3 History
*
* @param Container $container The DI container.
*
* @return J3History
* @since 3.2.0
*/
public function getJ3History(Container $container): J3History
{
return new J3History(
$container->get('Config')
);
}
/**
* Get the Joomla 4 History
*
* @param Container $container The DI container.
*
* @return J4History
* @since 3.2.0
*/
public function getJ4History(Container $container): J4History
{
return new J4History(
$container->get('Config')
);
}
/**
* Get the Joomla 5 History
*
* @param Container $container The DI container.
*
* @return J5History
* @since 3.2.0
*/
public function getJ5History(Container $container): J5History
{
return new J5History(
$container->get('Config')
);
}
}

View File

@@ -0,0 +1,95 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Joomlamodule\Data;
use VDM\Joomla\Componentbuilder\Compiler\Joomlamodule\Structure;
/**
* Joomla Module Service Provider
*
* @since 3.2.0
*/
class Joomlamodule implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(Data::class, 'Joomlamodule.Data')
->share('Joomlamodule.Data', [$this, 'getData'], true);
$container->alias(Structure::class, 'Joomlamodule.Structure')
->share('Joomlamodule.Structure', [$this, 'getStructure'], true);
}
/**
* Get The Data Class.
*
* @param Container $container The DI container.
*
* @return Data
* @since 3.2.0
*/
public function getData(Container $container): Data
{
return new Data(
$container->get('Config'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Field'),
$container->get('Field.Name'),
$container->get('Model.Filesfolders'),
$container->get('Model.Libraries'),
$container->get('Dynamicget.Data'),
$container->get('Templatelayout.Data')
);
}
/**
* Get The Structure Class.
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getStructure(Container $container): Structure
{
return new Structure(
$container->get('Joomlamodule.Data'),
$container->get('Component'),
$container->get('Config'),
$container->get('Registry'),
$container->get('Customcode.Dispenser'),
$container->get('Event'),
$container->get('Utilities.Counter'),
$container->get('Utilities.Folder'),
$container->get('Utilities.File'),
$container->get('Utilities.Files'),
$container->get('Compiler.Builder.Template.Data')
);
}
}

View File

@@ -0,0 +1,92 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Joomlaplugin\Data;
use VDM\Joomla\Componentbuilder\Compiler\Joomlaplugin\Structure;
/**
* Joomla Plugin Service Provider
*
* @since 3.2.0
*/
class Joomlaplugin implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(Data::class, 'Joomlaplugin.Data')
->share('Joomlaplugin.Data', [$this, 'getData'], true);
$container->alias(Structure::class, 'Joomlaplugin.Structure')
->share('Joomlaplugin.Structure', [$this, 'getStructure'], true);
}
/**
* Get the Joomla Plugin Data
*
* @param Container $container The DI container.
*
* @return Data
* @since 3.2.0
*/
public function getData(Container $container): Data
{
return new Data(
$container->get('Config'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Field'),
$container->get('Field.Name'),
$container->get('Model.Filesfolders')
);
}
/**
* Get the Joomla Plugin Structure Builder
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getStructure(Container $container): Structure
{
return new Structure(
$container->get('Joomlaplugin.Data'),
$container->get('Component'),
$container->get('Config'),
$container->get('Registry'),
$container->get('Customcode.Dispenser'),
$container->get('Event'),
$container->get('Utilities.Counter'),
$container->get('Utilities.Folder'),
$container->get('Utilities.File'),
$container->get('Utilities.Files')
);
}
}

View File

@@ -0,0 +1,99 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Language as CompilerLanguage;
use VDM\Joomla\Componentbuilder\Compiler\Language\Extractor;
use VDM\Joomla\Componentbuilder\Compiler\Language\Fieldset;
/**
* Compiler Language Service Provider
*
* @since 3.2.0
*/
class Language implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(CompilerLanguage::class, 'Language')
->share('Language', [$this, 'getCompilerLanguage'], true);
$container->alias(Extractor::class, 'Language.Extractor')
->share('Language.Extractor', [$this, 'getExtractor'], true);
$container->alias(Fieldset::class, 'Language.Fieldset')
->share('Language.Fieldset', [$this, 'getFieldset'], true);
}
/**
* Get The Language Class.
*
* @param Container $container The DI container.
*
* @return CompilerLanguage
* @since 3.2.0
*/
public function getCompilerLanguage(Container $container): CompilerLanguage
{
return new CompilerLanguage(
$container->get('Config')
);
}
/**
* Get The Extractor Class.
*
* @param Container $container The DI container.
*
* @return Extractor
* @since 3.2.0
*/
public function getExtractor(Container $container): Extractor
{
return new Extractor(
$container->get('Config'),
$container->get('Language'),
$container->get('Placeholder')
);
}
/**
* Get The Fieldset Class.
*
* @param Container $container The DI container.
*
* @return Fieldset
* @since 3.2.0
*/
public function getFieldset(Container $container): Fieldset
{
return new Fieldset(
$container->get('Language'),
$container->get('Compiler.Builder.Meta.Data'),
$container->get('Compiler.Builder.Access.Switch'),
$container->get('Compiler.Builder.Access.Switch.List')
);
}
}

View File

@@ -0,0 +1,89 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Library\Data;
use VDM\Joomla\Componentbuilder\Compiler\Library\Structure;
/**
* Compiler Library
*
* @since 3.2.0
*/
class Library implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(Data::class, 'Library.Data')
->share('Library.Data', [$this, 'getData'], true);
$container->alias(Structure::class, 'Library.Structure')
->share('Library.Structure', [$this, 'getStructure'], true);
}
/**
* Get the Compiler Library Data
*
* @param Container $container The DI container.
*
* @return Data
* @since 3.2.0
*/
public function getData(Container $container): Data
{
return new Data(
$container->get('Config'),
$container->get('Registry'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Field.Data'),
$container->get('Model.Filesfolders')
);
}
/**
* Get the Compiler Library Structure Builder
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getStructure(Container $container): Structure
{
return new Structure(
$container->get('Config'),
$container->get('Registry'),
$container->get('Event'),
$container->get('Component'),
$container->get('Compiler.Builder.Content.One'),
$container->get('Utilities.Counter'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Folder'),
$container->get('Utilities.File')
);
}
}

View File

@@ -0,0 +1,914 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Server\Model\Load as ServerLoad;
use VDM\Joomla\Componentbuilder\Compiler\Model\Joomlaplugins;
use VDM\Joomla\Componentbuilder\Compiler\Model\Joomlamodules;
use VDM\Joomla\Componentbuilder\Compiler\Model\Historycomponent;
use VDM\Joomla\Componentbuilder\Compiler\Model\Customadminviews;
use VDM\Joomla\Componentbuilder\Compiler\Model\Ajaxcustomview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Javascriptcustomview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Csscustomview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Phpcustomview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Dynamicget;
use VDM\Joomla\Componentbuilder\Compiler\Model\Libraries;
use VDM\Joomla\Componentbuilder\Compiler\Model\Siteviews;
use VDM\Joomla\Componentbuilder\Compiler\Model\Permissions;
use VDM\Joomla\Componentbuilder\Compiler\Model\Historyadminview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Mysqlsettings;
use VDM\Joomla\Componentbuilder\Compiler\Model\Sql;
use VDM\Joomla\Componentbuilder\Compiler\Model\Customalias;
use VDM\Joomla\Componentbuilder\Compiler\Model\Ajaxadmin;
use VDM\Joomla\Componentbuilder\Compiler\Model\Customimportscripts;
use VDM\Joomla\Componentbuilder\Compiler\Model\Custombuttons;
use VDM\Joomla\Componentbuilder\Compiler\Model\Loader;
use VDM\Joomla\Componentbuilder\Compiler\Model\Phpadminview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Cssadminview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Javascriptadminview;
use VDM\Joomla\Componentbuilder\Compiler\Model\Linkedviews;
use VDM\Joomla\Componentbuilder\Compiler\Model\Relations;
use VDM\Joomla\Componentbuilder\Compiler\Model\Conditions;
use VDM\Joomla\Componentbuilder\Compiler\Model\Fields;
use VDM\Joomla\Componentbuilder\Compiler\Model\Updatesql;
use VDM\Joomla\Componentbuilder\Compiler\Model\Tabs;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Model\CustomtabsInterface as Customtabs;
use VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaThree\Customtabs as CustomtabsJ3;
use VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFour\Customtabs as CustomtabsJ4;
use VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFive\Customtabs as CustomtabsJ5;
use VDM\Joomla\Componentbuilder\Compiler\Model\Adminviews;
use VDM\Joomla\Componentbuilder\Compiler\Model\Sqltweaking;
use VDM\Joomla\Componentbuilder\Compiler\Model\Sqldump;
use VDM\Joomla\Componentbuilder\Compiler\Model\Whmcs;
use VDM\Joomla\Componentbuilder\Compiler\Model\Filesfolders;
use VDM\Joomla\Componentbuilder\Compiler\Model\Modifieddate;
use VDM\Joomla\Componentbuilder\Compiler\Model\Createdate;
use VDM\Joomla\Componentbuilder\Compiler\Model\Router;
use VDM\Joomla\Componentbuilder\Compiler\Model\Updateserver;
/**
* Model Service Provider
*
* @since 3.2.0
*/
class Model implements ServiceProviderInterface
{
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(ServerLoad::class, 'Model.Server.Load')
->share('Model.Server.Load', [$this, 'getServerLoad'], true);
$container->alias(Joomlaplugins::class, 'Model.Joomlaplugins')
->share('Model.Joomlaplugins', [$this, 'getJoomlaplugins'], true);
$container->alias(Joomlamodules::class, 'Model.Joomlamodules')
->share('Model.Joomlamodules', [$this, 'getJoomlamodules'], true);
$container->alias(Historycomponent::class, 'Model.Historycomponent')
->share('Model.Historycomponent', [$this, 'getHistorycomponent'], true);
$container->alias(Customadminviews::class, 'Model.Customadminviews')
->share('Model.Customadminviews', [$this, 'getCustomadminviews'], true);
$container->alias(Ajaxcustomview::class, 'Model.Ajaxcustomview')
->share('Model.Ajaxcustomview', [$this, 'getAjaxcustomview'], true);
$container->alias(Javascriptcustomview::class, 'Model.Javascriptcustomview')
->share('Model.Javascriptcustomview', [$this, 'getJavascriptcustomview'], true);
$container->alias(Csscustomview::class, 'Model.Csscustomview')
->share('Model.Csscustomview', [$this, 'getCsscustomview'], true);
$container->alias(Phpcustomview::class, 'Model.Phpcustomview')
->share('Model.Phpcustomview', [$this, 'getPhpcustomview'], true);
$container->alias(Dynamicget::class, 'Model.Dynamicget')
->share('Model.Dynamicget', [$this, 'getDynamicget'], true);
$container->alias(Libraries::class, 'Model.Libraries')
->share('Model.Libraries', [$this, 'getLibraries'], true);
$container->alias(Siteviews::class, 'Model.Siteviews')
->share('Model.Siteviews', [$this, 'getSiteviews'], true);
$container->alias(Permissions::class, 'Model.Permissions')
->share('Model.Permissions', [$this, 'getPermissions'], true);
$container->alias(Historyadminview::class, 'Model.Historyadminview')
->share('Model.Historyadminview', [$this, 'getHistoryadminview'], true);
$container->alias(Mysqlsettings::class, 'Model.Mysqlsettings')
->share('Model.Mysqlsettings', [$this, 'getMysqlsettings'], true);
$container->alias(Sql::class, 'Model.Sql')
->share('Model.Sql', [$this, 'getSql'], true);
$container->alias(Customalias::class, 'Model.Customalias')
->share('Model.Customalias', [$this, 'getCustomalias'], true);
$container->alias(Ajaxadmin::class, 'Model.Ajaxadmin')
->share('Model.Ajaxadmin', [$this, 'getAjaxadmin'], true);
$container->alias(Customimportscripts::class, 'Model.Customimportscripts')
->share('Model.Customimportscripts', [$this, 'getCustomimportscripts'], true);
$container->alias(Custombuttons::class, 'Model.Custombuttons')
->share('Model.Custombuttons', [$this, 'getCustombuttons'], true);
$container->alias(Loader::class, 'Model.Loader')
->share('Model.Loader', [$this, 'getLoader'], true);
$container->alias(Phpadminview::class, 'Model.Phpadminview')
->share('Model.Phpadminview', [$this, 'getPhpadminview'], true);
$container->alias(Cssadminview::class, 'Model.Cssadminview')
->share('Model.Cssadminview', [$this, 'getCssadminview'], true);
$container->alias(Javascriptadminview::class, 'Model.Javascriptadminview')
->share('Model.Javascriptadminview', [$this, 'getJavascriptadminview'], true);
$container->alias(Linkedviews::class, 'Model.Linkedviews')
->share('Model.Linkedviews', [$this, 'getLinkedviews'], true);
$container->alias(Relations::class, 'Model.Relations')
->share('Model.Relations', [$this, 'getRelations'], true);
$container->alias(Conditions::class, 'Model.Conditions')
->share('Model.Conditions', [$this, 'getConditions'], true);
$container->alias(Fields::class, 'Model.Fields')
->share('Model.Fields', [$this, 'getFields'], true);
$container->alias(Updatesql::class, 'Model.Updatesql')
->share('Model.Updatesql', [$this, 'getUpdatesql'], true);
$container->alias(Tabs::class, 'Model.Tabs')
->share('Model.Tabs', [$this, 'getTabs'], true);
$container->alias(Customtabs::class, 'Model.Customtabs')
->share('Model.Customtabs', [$this, 'getCustomtabs'], true);
$container->alias(CustomtabsJ3::class, 'Model.J3.Customtabs')
->share('Model.J3.Customtabs', [$this, 'getCustomtabsJ3'], true);
$container->alias(CustomtabsJ4::class, 'Model.J4.Customtabs')
->share('Model.J4.Customtabs', [$this, 'getCustomtabsJ4'], true);
$container->alias(CustomtabsJ5::class, 'Model.J5.Customtabs')
->share('Model.J5.Customtabs', [$this, 'getCustomtabsJ5'], true);
$container->alias(Adminviews::class, 'Model.Adminviews')
->share('Model.Adminviews', [$this, 'getAdminviews'], true);
$container->alias(Sqltweaking::class, 'Model.Sqltweaking')
->share('Model.Sqltweaking', [$this, 'getSqltweaking'], true);
$container->alias(Sqldump::class, 'Model.Sqldump')
->share('Model.Sqldump', [$this, 'getSqldump'], true);
$container->alias(Whmcs::class, 'Model.Whmcs')
->share('Model.Whmcs', [$this, 'getWhmcs'], true);
$container->alias(Filesfolders::class, 'Model.Filesfolders')
->share('Model.Filesfolders', [$this, 'getFilesfolders'], true);
$container->alias(Modifieddate::class, 'Model.Modifieddate')
->share('Model.Modifieddate', [$this, 'getModifieddate'], true);
$container->alias(Createdate::class, 'Model.Createdate')
->share('Model.Createdate', [$this, 'getCreatedate'], true);
$container->alias(Router::class, 'Model.Router')
->share('Model.Router', [$this, 'getRouter'], true);
$container->alias(Updateserver::class, 'Model.Updateserver')
->share('Model.Updateserver', [$this, 'getUpdateserver'], true);
}
/**
* Get The Load Class.
*
* @param Container $container The DI container.
*
* @return ServerLoad
* @since 3.2.0
*/
public function getServerLoad(Container $container): ServerLoad
{
return new ServerLoad(
$container->get('Crypt'),
$container->get('Table')
);
}
/**
* Get The Joomlaplugins Class.
*
* @param Container $container The DI container.
*
* @return Joomlaplugins
* @since 3.2.0
*/
public function getJoomlaplugins(Container $container): Joomlaplugins
{
return new Joomlaplugins(
$container->get('Joomlaplugin.Data')
);
}
/**
* Get The Joomlamodules Class.
*
* @param Container $container The DI container.
*
* @return Joomlamodules
* @since 3.2.0
*/
public function getJoomlamodules(Container $container): Joomlamodules
{
return new Joomlamodules(
$container->get('Joomlamodule.Data')
);
}
/**
* Get The Historycomponent Class.
*
* @param Container $container The DI container.
*
* @return Historycomponent
* @since 3.2.0
*/
public function getHistorycomponent(Container $container): Historycomponent
{
return new Historycomponent(
$container->get('Config'),
$container->get('History'),
$container->get('Model.Updatesql')
);
}
/**
* Get The Customadminviews Class.
*
* @param Container $container The DI container.
*
* @return Customadminviews
* @since 3.2.0
*/
public function getCustomadminviews(Container $container): Customadminviews
{
return new Customadminviews(
$container->get('Customview.Data'),
$container->get('Config')
);
}
/**
* Get The Ajaxcustomview Class.
*
* @param Container $container The DI container.
*
* @return Ajaxcustomview
* @since 3.2.0
*/
public function getAjaxcustomview(Container $container): Ajaxcustomview
{
return new Ajaxcustomview(
$container->get('Config'),
$container->get('Customcode.Dispenser')
);
}
/**
* Get The Javascriptcustomview Class.
*
* @param Container $container The DI container.
*
* @return Javascriptcustomview
* @since 3.2.0
*/
public function getJavascriptcustomview(Container $container): Javascriptcustomview
{
return new Javascriptcustomview(
$container->get('Customcode'),
$container->get('Customcode.Gui')
);
}
/**
* Get The Csscustomview Class.
*
* @param Container $container The DI container.
*
* @return Csscustomview
* @since 3.2.0
*/
public function getCsscustomview(Container $container): Csscustomview
{
return new Csscustomview(
$container->get('Customcode')
);
}
/**
* Get The Phpcustomview Class.
*
* @param Container $container The DI container.
*
* @return Phpcustomview
* @since 3.2.0
*/
public function getPhpcustomview(Container $container): Phpcustomview
{
return new Phpcustomview(
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Model.Loader'),
$container->get('Templatelayout.Data')
);
}
/**
* Get The Dynamicget Class.
*
* @param Container $container The DI container.
*
* @return Dynamicget
* @since 3.2.0
*/
public function getDynamicget(Container $container): Dynamicget
{
return new Dynamicget(
$container->get('Config'),
$container->get('Compiler.Builder.Site.Dynamic.Get'),
$container->get('Compiler.Builder.Site.Main.Get'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Placeholder'),
$container->get('Dynamicget.Selection')
);
}
/**
* Get The Libraries Class.
*
* @param Container $container The DI container.
*
* @return Libraries
* @since 3.2.0
*/
public function getLibraries(Container $container): Libraries
{
return new Libraries(
$container->get('Config'),
$container->get('Compiler.Builder.Library.Manager'),
$container->get('Library.Data')
);
}
/**
* Get The Siteviews Class.
*
* @param Container $container The DI container.
*
* @return Siteviews
* @since 3.2.0
*/
public function getSiteviews(Container $container): Siteviews
{
return new Siteviews(
$container->get('Customview.Data'),
$container->get('Config')
);
}
/**
* Get The Permissions Class.
*
* @param Container $container The DI container.
*
* @return Permissions
* @since 3.2.0
*/
public function getPermissions(Container $container): Permissions
{
return new Permissions();
}
/**
* Get The Historyadminview Class.
*
* @param Container $container The DI container.
*
* @return Historyadminview
* @since 3.2.0
*/
public function getHistoryadminview(Container $container): Historyadminview
{
return new Historyadminview(
$container->get('Config'),
$container->get('History'),
$container->get('Model.Updatesql')
);
}
/**
* Get The Mysqlsettings Class.
*
* @param Container $container The DI container.
*
* @return Mysqlsettings
* @since 3.2.0
*/
public function getMysqlsettings(Container $container): Mysqlsettings
{
return new Mysqlsettings(
$container->get('Config'),
$container->get('Compiler.Builder.Mysql.Table.Setting')
);
}
/**
* Get The Sql Class.
*
* @param Container $container The DI container.
*
* @return Sql
* @since 3.2.0
*/
public function getSql(Container $container): Sql
{
return new Sql(
$container->get('Customcode.Dispenser'),
$container->get('Model.Sqldump')
);
}
/**
* Get The Customalias Class.
*
* @param Container $container The DI container.
*
* @return Customalias
* @since 3.2.0
*/
public function getCustomalias(Container $container): Customalias
{
return new Customalias(
$container->get('Compiler.Builder.Custom.Alias'),
$container->get('Field.Name')
);
}
/**
* Get The Ajaxadmin Class.
*
* @param Container $container The DI container.
*
* @return Ajaxadmin
* @since 3.2.0
*/
public function getAjaxadmin(Container $container): Ajaxadmin
{
return new Ajaxadmin(
$container->get('Config'),
$container->get('Compiler.Builder.Site.Edit.View'),
$container->get('Customcode.Dispenser')
);
}
/**
* Get The Customimportscripts Class.
*
* @param Container $container The DI container.
*
* @return Customimportscripts
* @since 3.2.0
*/
public function getCustomimportscripts(Container $container): Customimportscripts
{
return new Customimportscripts(
$container->get('Customcode.Dispenser')
);
}
/**
* Get The Custombuttons Class.
*
* @param Container $container The DI container.
*
* @return Custombuttons
* @since 3.2.0
*/
public function getCustombuttons(Container $container): Custombuttons
{
return new Custombuttons(
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Templatelayout.Data')
);
}
/**
* Get The Loader Class.
*
* @param Container $container The DI container.
*
* @return Loader
* @since 3.2.0
*/
public function getLoader(Container $container): Loader
{
return new Loader(
$container->get('Config'),
$container->get('Compiler.Builder.Footable.Scripts'),
$container->get('Compiler.Builder.Google.Chart'),
$container->get('Compiler.Builder.Get.Module'),
$container->get('Compiler.Builder.Uikit.Comp')
);
}
/**
* Get The Phpadminview Class.
*
* @param Container $container The DI container.
*
* @return Phpadminview
* @since 3.2.0
*/
public function getPhpadminview(Container $container): Phpadminview
{
return new Phpadminview(
$container->get('Customcode.Dispenser'),
$container->get('Templatelayout.Data')
);
}
/**
* Get The Cssadminview Class.
*
* @param Container $container The DI container.
*
* @return Cssadminview
* @since 3.2.0
*/
public function getCssadminview(Container $container): Cssadminview
{
return new Cssadminview(
$container->get('Customcode.Dispenser')
);
}
/**
* Get The Javascriptadminview Class.
*
* @param Container $container The DI container.
*
* @return Javascriptadminview
* @since 3.2.0
*/
public function getJavascriptadminview(Container $container): Javascriptadminview
{
return new Javascriptadminview(
$container->get('Customcode.Dispenser')
);
}
/**
* Get The Linkedviews Class.
*
* @param Container $container The DI container.
*
* @return Linkedviews
* @since 3.2.0
*/
public function getLinkedviews(Container $container): Linkedviews
{
return new Linkedviews(
$container->get('Registry')
);
}
/**
* Get The Relations Class.
*
* @param Container $container The DI container.
*
* @return Relations
* @since 3.2.0
*/
public function getRelations(Container $container): Relations
{
return new Relations(
$container->get('Config'),
$container->get('Language'),
$container->get('Customcode'),
$container->get('Compiler.Builder.List.Join'),
$container->get('Compiler.Builder.List.Head.Override'),
$container->get('Compiler.Builder.Field.Relations')
);
}
/**
* Get The Conditions Class.
*
* @param Container $container The DI container.
*
* @return Conditions
* @since 3.2.0
*/
public function getConditions(Container $container): Conditions
{
return new Conditions(
$container->get('Field.Type.Name'),
$container->get('Field.Name'),
$container->get('Field.Groups')
);
}
/**
* Get The Fields Class.
*
* @param Container $container The DI container.
*
* @return Fields
* @since 3.2.0
*/
public function getFields(Container $container): Fields
{
return new Fields(
$container->get('Config'),
$container->get('Registry'),
$container->get('History'),
$container->get('Customcode'),
$container->get('Field'),
$container->get('Field.Name'),
$container->get('Field.Groups'),
$container->get('Model.Updatesql')
);
}
/**
* Get The Updatesql Class.
*
* @param Container $container The DI container.
*
* @return Updatesql
* @since 3.2.0
*/
public function getUpdatesql(Container $container): Updatesql
{
return new Updatesql(
$container->get('Registry')
);
}
/**
* Get The Tabs Class.
*
* @param Container $container The DI container.
*
* @return Tabs
* @since 3.2.0
*/
public function getTabs(Container $container): Tabs
{
return new Tabs();
}
/**
* Get The Customtabs Class.
*
* @param Container $container The DI container.
*
* @return Customtabs
* @since 3.2.0
*/
public function getCustomtabs(Container $container): Customtabs
{
if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Model.J' . $this->targetVersion . '.Customtabs');
}
/**
* Get The CustomtabsJ3 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ3
* @since 3.2.0
*/
public function getCustomtabsJ3(Container $container): CustomtabsJ3
{
return new CustomtabsJ3(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The CustomtabsJ4 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ4
* @since 3.2.0
*/
public function getCustomtabsJ4(Container $container): CustomtabsJ4
{
return new CustomtabsJ4(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The CustomtabsJ5 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ5
* @since 3.2.0
*/
public function getCustomtabsJ5(Container $container): CustomtabsJ5
{
return new CustomtabsJ5(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The Adminviews Class.
*
* @param Container $container The DI container.
*
* @return Adminviews
* @since 3.2.0
*/
public function getAdminviews(Container $container): Adminviews
{
return new Adminviews(
$container->get('Config'),
$container->get('Adminview.Data'),
$container->get('Compiler.Builder.Site.Edit.View'),
$container->get('Compiler.Builder.Admin.Filter.Type')
);
}
/**
* Get The Sqltweaking Class.
*
* @param Container $container The DI container.
*
* @return Sqltweaking
* @since 3.2.0
*/
public function getSqltweaking(Container $container): Sqltweaking
{
return new Sqltweaking(
$container->get('Registry')
);
}
/**
* Get The Sqldump Class.
*
* @param Container $container The DI container.
*
* @return Sqldump
* @since 3.2.0
*/
public function getSqldump(Container $container): Sqldump
{
return new Sqldump(
$container->get('Registry')
);
}
/**
* Get The Whmcs Class.
*
* @param Container $container The DI container.
*
* @return Whmcs
* @since 3.2.0
*/
public function getWhmcs(Container $container): Whmcs
{
return new Whmcs();
}
/**
* Get The Filesfolders Class.
*
* @param Container $container The DI container.
*
* @return Filesfolders
* @since 3.2.0
*/
public function getFilesfolders(Container $container): Filesfolders
{
return new Filesfolders();
}
/**
* Get The Modifieddate Class.
*
* @param Container $container The DI container.
*
* @return Modifieddate
* @since 3.2.0
*/
public function getModifieddate(Container $container): Modifieddate
{
return new Modifieddate();
}
/**
* Get The Createdate Class.
*
* @param Container $container The DI container.
*
* @return Createdate
* @since 3.2.0
*/
public function getCreatedate(Container $container): Createdate
{
return new Createdate();
}
/**
* Get The Router Class.
*
* @param Container $container The DI container.
*
* @return Router
* @since 3.2.0
*/
public function getRouter(Container $container): Router
{
return new Router(
$container->get('Config'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The Updateserver Class.
*
* @param Container $container The DI container.
*
* @return Updateserver
* @since 3.2.0
*/
public function getUpdateserver(Container $container): Updateserver
{
return new Updateserver();
}
}

View File

@@ -0,0 +1,79 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Placeholder as CompilerPlaceholder;
use VDM\Joomla\Componentbuilder\Compiler\Placeholder\Reverse;
/**
* Compiler Placeholder Service Provider
*
* @since 3.2.0
*/
class Placeholder implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(CompilerPlaceholder::class, 'Placeholder')
->share('Placeholder', [$this, 'getPlaceholder'], true);
$container->alias(Reverse::class, 'Placeholder.Reverse')
->share('Placeholder.Reverse', [$this, 'getPlaceholderReverse'], true);
}
/**
* Get the Compiler Placeholder
*
* @param Container $container The DI container.
*
* @return CompilerPlaceholder
* @since 3.2.0
*/
public function getPlaceholder(Container $container): CompilerPlaceholder
{
return new CompilerPlaceholder(
$container->get('Config')
);
}
/**
* Get the Compiler Placeholder Reverse
*
* @param Container $container The DI container.
*
* @return Worker
* @since 3.2.0
*/
public function getPlaceholderReverse(Container $container): Reverse
{
return new Reverse(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Language.Extractor'),
$container->get('Power.Extractor')
);
}
}

View File

@@ -0,0 +1,348 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Power as Powers;
use VDM\Joomla\Componentbuilder\Power\Grep;
use VDM\Joomla\Componentbuilder\Power\Super as Superpower;
use VDM\Joomla\Componentbuilder\Compiler\Power\Infusion;
use VDM\Joomla\Componentbuilder\Compiler\Power\Autoloader;
use VDM\Joomla\Componentbuilder\Compiler\Power\Structure;
use VDM\Joomla\Componentbuilder\Compiler\Power\Parser;
use VDM\Joomla\Componentbuilder\Compiler\Power\Plantuml;
use VDM\Joomla\Componentbuilder\Compiler\Power\Repo\Readme as RepoReadme;
use VDM\Joomla\Componentbuilder\Compiler\Power\Repos\Readme as ReposReadme;
use VDM\Joomla\Componentbuilder\Compiler\Power\Extractor;
use VDM\Joomla\Componentbuilder\Compiler\Power\Injector;
use VDM\Joomla\Componentbuilder\Power\Model\Upsert;
use VDM\Joomla\Componentbuilder\Power\Database\Insert;
use VDM\Joomla\Componentbuilder\Power\Database\Update;
/**
* Compiler Power Service Provider
*
* @since 3.2.0
*/
class Power implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(Powers::class, 'Power')
->share('Power', [$this, 'getPowers'], true);
$container->alias(Superpower::class, 'Superpower')
->share('Superpower', [$this, 'getSuperpower'], true);
$container->alias(Grep::class, 'Power.Grep')
->share('Power.Grep', [$this, 'getGrep'], true);
$container->alias(Autoloader::class, 'Power.Autoloader')
->share('Power.Autoloader', [$this, 'getAutoloader'], true);
$container->alias(Infusion::class, 'Power.Infusion')
->share('Power.Infusion', [$this, 'getInfusion'], true);
$container->alias(Structure::class, 'Power.Structure')
->share('Power.Structure', [$this, 'getStructure'], true);
$container->alias(Parser::class, 'Power.Parser')
->share('Power.Parser', [$this, 'getParser'], true);
$container->alias(Plantuml::class, 'Power.Plantuml')
->share('Power.Plantuml', [$this, 'getPlantuml'], true);
$container->alias(RepoReadme::class, 'Power.Repo.Readme')
->share('Power.Repo.Readme', [$this, 'getRepoReadme'], true);
$container->alias(ReposReadme::class, 'Power.Repos.Readme')
->share('Power.Repos.Readme', [$this, 'getReposReadme'], true);
$container->alias(Extractor::class, 'Power.Extractor')
->share('Power.Extractor', [$this, 'getExtractor'], true);
$container->alias(Injector::class, 'Power.Injector')
->share('Power.Injector', [$this, 'getInjector'], true);
$container->alias(Upsert::class, 'Power.Model.Upsert')
->share('Power.Model.Upsert', [$this, 'getModelUpsert'], true);
$container->alias(Insert::class, 'Power.Insert')
->share('Power.Insert', [$this, 'getInsert'], true);
$container->alias(Update::class, 'Power.Update')
->share('Power.Update', [$this, 'getUpdate'], true);
}
/**
* Get the Powers
*
* @param Container $container The DI container.
*
* @return Powers
* @since 3.2.0
*/
public function getPowers(Container $container): Powers
{
return new Powers(
$container->get('Config'),
$container->get('Placeholder'),
$container->get('Customcode'),
$container->get('Customcode.Gui')
);
}
/**
* Get the Superpower
*
* @param Container $container The DI container.
*
* @return Superpower
* @since 3.2.0
*/
public function getSuperpower(Container $container): Superpower
{
return new Superpower(
$container->get('Power.Grep'),
$container->get('Power.Insert'),
$container->get('Power.Update')
);
}
/**
* Get the Grep
*
* @param Container $container The DI container.
*
* @return Grep
* @since 3.2.0
*/
public function getGrep(Container $container): Grep
{
return new Grep(
$container->get('Config')->local_powers_repository_path,
$container->get('Config')->approved_paths,
$container->get('Gitea.Repository.Contents')
);
}
/**
* Get the Compiler Autoloader
*
* @param Container $container The DI container.
*
* @return Autoloader
* @since 3.2.0
*/
public function getAutoloader(Container $container): Autoloader
{
return new Autoloader(
$container->get('Power'),
$container->get('Config'),
$container->get('Compiler.Builder.Content.One')
);
}
/**
* Get the Compiler Power Infusion
*
* @param Container $container The DI container.
*
* @return Infusion
* @since 3.2.0
*/
public function getInfusion(Container $container): Infusion
{
return new Infusion(
$container->get('Config'),
$container->get('Power'),
$container->get('Compiler.Builder.Content.One'),
$container->get('Compiler.Builder.Content.Multi'),
$container->get('Power.Parser'),
$container->get('Power.Repo.Readme'),
$container->get('Power.Repos.Readme'),
$container->get('Placeholder'),
$container->get('Event')
);
}
/**
* Get the Compiler Power Structure Builder
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getStructure(Container $container): Structure
{
return new Structure(
$container->get('Power'),
$container->get('Config'),
$container->get('Registry'),
$container->get('Event'),
$container->get('Utilities.Counter'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Folder'),
$container->get('Utilities.File'),
$container->get('Utilities.Files')
);
}
/**
* Get the Compiler Power Parser
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getParser(Container $container): Parser
{
return new Parser();
}
/**
* Get the Compiler Power Plantuml Builder
*
* @param Container $container The DI container.
*
* @return Plantuml
* @since 3.2.0
*/
public function getPlantuml(Container $container): Plantuml
{
return new Plantuml();
}
/**
* Get the Compiler Power Repo Readme Builder
*
* @param Container $container The DI container.
*
* @return RepoReadme
* @since 3.2.0
*/
public function getRepoReadme(Container $container): RepoReadme
{
return new RepoReadme(
$container->get('Power'),
$container->get('Power.Plantuml')
);
}
/**
* Get the Compiler Power Repos Readme Builder
*
* @param Container $container The DI container.
*
* @return ReposReadme
* @since 3.2.0
*/
public function getReposReadme(Container $container): ReposReadme
{
return new ReposReadme(
$container->get('Power'),
$container->get('Power.Plantuml')
);
}
/**
* Get the Compiler Power Extractor
*
* @param Container $container The DI container.
*
* @return Extractor
* @since 3.2.0
*/
public function getExtractor(Container $container): Extractor
{
return new Extractor();
}
/**
* Get the Compiler Power Injector
*
* @param Container $container The DI container.
*
* @return Injector
* @since 3.2.0
*/
public function getInjector(Container $container): Injector
{
return new Injector(
$container->get('Power'),
$container->get('Power.Extractor'),
$container->get('Power.Parser'),
$container->get('Placeholder')
);
}
/**
* Get the Power Model Upsert
*
* @param Container $container The DI container.
*
* @return Upsert
* @since 3.2.0
*/
public function getModelUpsert(Container $container): Upsert
{
return new Upsert(
$container->get('Table')
);
}
/**
* Get the Power Insert
*
* @param Container $container The DI container.
*
* @return Insert
* @since 3.2.0
*/
public function getInsert(Container $container): Insert
{
return new Insert(
$container->get('Power.Model.Upsert'),
$container->get('Insert')
);
}
/**
* Get the Power Update
*
* @param Container $container The DI container.
*
* @return Update
* @since 3.2.0
*/
public function getUpdate(Container $container): Update
{
return new Update(
$container->get('Power.Model.Upsert'),
$container->get('Update')
);
}
}

View File

@@ -0,0 +1,83 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Templatelayout\Data as TemplatelayoutData;
use VDM\Joomla\Componentbuilder\Compiler\Alias\Data as AliasData;
/**
* Compiler Templatelayout
*
* @since 3.2.0
*/
class Templatelayout implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(TemplatelayoutData::class, 'Templatelayout.Data')
->share('Templatelayout.Data', [$this, 'getTemplatelayoutData'], true);
$container->alias(AliasData::class, 'Alias.Data')
->share('Alias.Data', [$this, 'getAliasData'], true);
}
/**
* Get The Data Class.
*
* @param Container $container The DI container.
*
* @return TemplatelayoutData
* @since 3.2.0
*/
public function getTemplatelayoutData(Container $container): TemplatelayoutData
{
return new TemplatelayoutData(
$container->get('Config'),
$container->get('Compiler.Builder.Layout.Data'),
$container->get('Compiler.Builder.Template.Data'),
$container->get('Alias.Data')
);
}
/**
* Get The Data Class.
*
* @param Container $container The DI container.
*
* @return AliasData
* @since 3.2.0
*/
public function getAliasData(Container $container): AliasData
{
return new AliasData(
$container->get('Config'),
$container->get('Registry'),
$container->get('Customcode'),
$container->get('Customcode.Gui'),
$container->get('Model.Loader'),
$container->get('Model.Libraries')
);
}
}

View File

@@ -0,0 +1,249 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Folder;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\File;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\FileInjector;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Paths;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Counter;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Files;
use VDM\Joomla\Componentbuilder\Utilities\Constantpaths;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Dynamicpath;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Pathfix;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Structure;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Xml;
/**
* Utilities Service Provider
*
* @since 3.2.0
*/
class Utilities implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 3.2.0
*/
public function register(Container $container)
{
$container->alias(Folder::class, 'Utilities.Folder')
->share('Utilities.Folder', [$this, 'getFolder'], true);
$container->alias(File::class, 'Utilities.File')
->share('Utilities.File', [$this, 'getFile'], true);
$container->alias(FileInjector::class, 'Utilities.FileInjector')
->share('Utilities.FileInjector', [$this, 'getFileInjector'], true);
$container->alias(Counter::class, 'Utilities.Counter')
->share('Utilities.Counter', [$this, 'getCounter'], true);
$container->alias(Paths::class, 'Utilities.Paths')
->share('Utilities.Paths', [$this, 'getPaths'], true);
$container->alias(Files::class, 'Utilities.Files')
->share('Utilities.Files', [$this, 'getFiles'], true);
$container->alias(Constantpaths::class, 'Utilities.Constantpaths')
->share('Utilities.Constantpaths', [$this, 'getConstantpaths'], true);
$container->alias(Dynamicpath::class, 'Utilities.Dynamicpath')
->share('Utilities.Dynamicpath', [$this, 'getDynamicpath'], true);
$container->alias(Pathfix::class, 'Utilities.Pathfix')
->share('Utilities.Pathfix', [$this, 'getPathfix'], true);
$container->alias(Structure::class, 'Utilities.Structure')
->share('Utilities.Structure', [$this, 'getStructure'], true);
$container->alias(Xml::class, 'Utilities.Xml')
->share('Utilities.Xml', [$this, 'getXml'], true);
}
/**
* Get the Compiler Folder
*
* @param Container $container The DI container.
*
* @return Folder
* @since 3.2.0
*/
public function getFolder(Container $container): Folder
{
return new Folder(
$container->get('Utilities.Counter'),
$container->get('Utilities.File')
);
}
/**
* Get the Compiler File
*
* @param Container $container The DI container.
*
* @return File
* @since 3.2.0
*/
public function getFile(Container $container): File
{
return new File(
$container->get('Utilities.Counter')
);
}
/**
* Get The FileInjector Class.
*
* @param Container $container The DI container.
*
* @return FileInjector
* @since 3.2.0
*/
public function getFileInjector(Container $container): FileInjector
{
return new FileInjector(
$container->get('Power.Injector')
);
}
/**
* Get the Compiler Counter
*
* @param Container $container The DI container.
*
* @return Counter
* @since 3.2.0
*/
public function getCounter(Container $container): Counter
{
return new Counter(
$container->get('Compiler.Builder.Content.One')
);
}
/**
* Get the Compiler Paths
*
* @param Container $container The DI container.
*
* @return Paths
* @since 3.2.0
*/
public function getPaths(Container $container): Paths
{
return new Paths(
$container->get('Config'),
$container->get('Component')
);
}
/**
* Get the Compiler Files Bucket
*
* @param Container $container The DI container.
*
* @return Files
* @since 3.2.0
*/
public function getFiles(Container $container): Files
{
return new Files();
}
/**
* Get the Constant Paths
*
* @param Container $container The DI container.
*
* @return Constantpaths
* @since 3.2.0
*/
public function getConstantpaths(Container $container): Constantpaths
{
return new Constantpaths();
}
/**
* Get the Compiler Dynamic Path
*
* @param Container $container The DI container.
*
* @return Dynamicpath
* @since 3.2.0
*/
public function getDynamicpath(Container $container): Dynamicpath
{
return new Dynamicpath(
$container->get('Placeholder'),
$container->get('Utilities.Constantpaths')
);
}
/**
* Get the Compiler Path Fixer
*
* @param Container $container The DI container.
*
* @return Pathfix
* @since 3.2.0
*/
public function getPathfix(Container $container): Pathfix
{
return new Pathfix();
}
/**
* Get the Compiler Structure Dynamic Builder
*
* @param Container $container The DI container.
*
* @return Structure
* @since 3.2.0
*/
public function getStructure(Container $container): Structure
{
return new Structure(
$container->get('Placeholder'),
$container->get('Component.Settings'),
$container->get('Utilities.Paths'),
$container->get('Utilities.Counter'),
$container->get('Utilities.File'),
$container->get('Utilities.Files')
);
}
/**
* Get the Compiler Xml Helper
*
* @param Container $container The DI container.
*
* @return Xml
* @since 3.2.0
*/
public function getXml(Container $container): Xml
{
return new Xml(
$container->get('Config')
);
}
}

View File

@@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>