* @git 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(); } }