J4.x

Namespace Conventions In Joomla: Difference between revisions

From Joomla! Documentation

Uglyeoin (talk | contribs)
m The word module was incorrect and misleading.
mNo edit summary
 
(10 intermediate revisions by 5 users not shown)
Line 8: Line 8:


<translate>
<translate>
==== Core Components ==== <!--T:3-->
=== Components === <!--T:3-->
</translate>
</translate>


* Joomla\Component\<ComponentName>\<ClientName>
<translate>
==== Core Components ==== <!--T:4-->
</translate>
 
* Joomla\Component\''ComponentName''\''ClientName''
** Joomla\Component\Content\Site
** Joomla\Component\Content\Site
** Joomla\Component\Content\Administrator
** Joomla\Component\Content\Administrator


<translate>
<translate>
===== 3rd Party Components ===== <!--T:4-->
 
==== 3rd Party Components ==== <!--T:5-->
</translate>
</translate>
* <CompanyName>\<ComponentName>\<ClientName>
* ''CompanyName''\Component\''ComponentName''\''ClientName''
** Akeeba\Backup\Site
** Acme\Component\Backup\Site
** Akeeba\Backup\Administrator
** Acme\Component\Backup\Administrator


<translate>
<translate>
===== Example locations ===== <!--T:5-->
 
==== Example locations ==== <!--T:6-->
</translate>
</translate>
''Joomla\Component\Content\Site\Controller''<br />
''Joomla\Component\Content\Site\Controller''<br />
Line 32: Line 38:


<translate>
<translate>
===== Core Modules ===== <!--T:6-->
=== Modules === <!--T:7-->
</translate>
</translate>
* Joomla\Module\<ModuleName>\<ClientName>
 
<translate>
==== Core Modules ==== <!--T:8-->
</translate>
* Joomla\Module\''ModuleName''\''ClientName''
** Joomla\Module\UsersLatest\Site
** Joomla\Module\UsersLatest\Site
** Joomla\Module\Quickicon\Administrator
** Joomla\Module\Quickicon\Administrator


<translate>
<translate>
===== 3rd Party Modules ===== <!--T:7-->
 
==== 3rd Party Modules ==== <!--T:9-->
</translate>
</translate>
* <CompanyName>\Module\<ModuleName>\<ClientName>
* ''CompanyName''\Module\''ModuleName''\''ClientName''
** Akeeba\Module\SubscriptionStatus\Site
** Acme\Module\SubscriptionStatus\Site
** Akeeba\Module\LastBackupStatus\Administrator
** Acme\Module\LastBackupStatus\Administrator


<translate>
<translate>
===== Example locations ===== <!--T:8-->
 
==== Example locations ==== <!--T:10-->
</translate>
</translate>
''Joomla\Module\Quickicon\Administrator\Dispatcher''<br />
''Joomla\Module\Quickicon\Administrator\Dispatcher''<br />
Line 55: Line 67:


<translate>
<translate>
==== Core Plugins ==== <!--T:9-->
=== Plugins === <!--T:11-->
</translate>
</translate>
* Joomla\Plugin\<PluginGroup>\<PluginName>
 
<translate>
==== Core Plugins ==== <!--T:12-->
</translate>
* Joomla\Plugin\''PluginGroup''\''PluginName''
** Joomla\Plugin\System\Debug
** Joomla\Plugin\System\Debug
** Joomla\Plugin\Quickicon\Joomlaupdate
** Joomla\Plugin\Quickicon\Joomlaupdate


<translate>
<translate>
==== 3rd Party Plugins ==== <!--T:10-->
 
==== 3rd Party Plugins ==== <!--T:13-->
</translate>
</translate>
* Plugin <CompanyName>\Plugin\<PluginGroup>\<PluginName>\
* ''CompanyName''\Plugin\''PluginGroup''\''PluginName''>
** Akeeba\Plugin\System\BackupOnDemand
** Acme\Plugin\System\BackupOnDemand


<translate>
<translate>
===== Example locations ===== <!--T:11-->
 
==== Example locations ==== <!--T:14-->
</translate>
</translate>
''Joomla\Plugin\System\Debug''<br />
''Joomla\Plugin\System\Debug''<br />
Line 77: Line 95:


<translate>
<translate>
==== Joomla Framework Library ==== <!--T:12-->
=== Framework === <!--T:15-->
</translate>
 
<translate>
==== Joomla Framework Library ==== <!--T:16-->
</translate>
</translate>
* Joomla
* Joomla
Line 84: Line 106:


<translate>
<translate>
==== Joomla CMS Library ==== <!--T:13-->
==== Joomla CMS Library ==== <!--T:17-->
</translate>
</translate>
* Joomla\CMS
* Joomla\CMS
Line 91: Line 113:


<translate>
<translate>
===== Example locations ===== <!--T:14-->
==== Example locations ==== <!--T:18-->
</translate>
</translate>
''Joomla\Session''<br />
''Joomla\Session''<br />

Latest revision as of 18:52, 19 August 2022

Joomla! 
4.0

Base Namespaces

The recommended naming conventions in Joomla 4 are the following:

Components

Core Components

  • Joomla\Component\ComponentName\ClientName
    • Joomla\Component\Content\Site
    • Joomla\Component\Content\Administrator


3rd Party Components

  • CompanyName\Component\ComponentName\ClientName
    • Acme\Component\Backup\Site
    • Acme\Component\Backup\Administrator


Example locations

Joomla\Component\Content\Site\Controller
components/com_content/Controller/ArticleController.php

Joomla\Component\Content\Administrator\Controller
administrator/components/com_content/Controller/ArticlesController.php

Modules

Core Modules

  • Joomla\Module\ModuleName\ClientName
    • Joomla\Module\UsersLatest\Site
    • Joomla\Module\Quickicon\Administrator


3rd Party Modules

  • CompanyName\Module\ModuleName\ClientName
    • Acme\Module\SubscriptionStatus\Site
    • Acme\Module\LastBackupStatus\Administrator


Example locations

Joomla\Module\Quickicon\Administrator\Dispatcher
administrator/modules/mod_quickicon/Dispatcher/Dispatcher.php

Joomla\Module\UsersLatest\Site\Helper
modules/mod_users_latest/Helper/UsersLatestHelper.php

Plugins

Core Plugins

  • Joomla\Plugin\PluginGroup\PluginName
    • Joomla\Plugin\System\Debug
    • Joomla\Plugin\Quickicon\Joomlaupdate


3rd Party Plugins

  • CompanyName\Plugin\PluginGroup\PluginName>
    • Acme\Plugin\System\BackupOnDemand


Example locations

Joomla\Plugin\System\Debug
plugins/system/debug/DataFormatter.php

Joomla\Plugin\Quickicon\Joomlaupdate\Extension
plugins/quickicon/joomlaupdate/Extension/Joomlaupdate.php

Framework

Joomla Framework Library

  • Joomla
    • Joomla\Session
    • Joomla\Image

Joomla CMS Library

  • Joomla\CMS
    • Joomla\CMS\Mail
    • Joomla\CMS\MVC

Example locations

Joomla\Session
libraries/vendor/joomla/session/src/Session.php

Joomla\CMS\Mail
libraries/src/Mail/Mail.php