J4.x

Namespace Conventions In Joomla: Difference between revisions

From Joomla! Documentation

Brian (talk | contribs)
better to use an anonymous company name as an example
Garkell (talk | contribs)
m Added extra headings to make it more defined
Line 8: Line 8:


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


Line 16: Line 20:


<translate>
<translate>
===== 3rd Party Components ===== <!--T:4-->
==== 3rd Party Components ==== <!--T:5-->
</translate>
</translate>
* <CompanyName>\<ComponentName>\<ClientName>
* <CompanyName>\<ComponentName>\<ClientName>
Line 23: Line 27:


<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 36:


<translate>
<translate>
===== Core Modules ===== <!--T:6-->
=== Modules === <!--T:7-->
</translate>
 
<translate>
==== Core Modules ==== <!--T:8-->
</translate>
</translate>
* Joomla\Module\<ModuleName>\<ClientName>
* Joomla\Module\<ModuleName>\<ClientName>
Line 39: Line 47:


<translate>
<translate>
===== 3rd Party Modules ===== <!--T:7-->
==== 3rd Party Modules ==== <!--T:9-->
</translate>
</translate>
* <CompanyName>\Module\<ModuleName>\<ClientName>
* <CompanyName>\Module\<ModuleName>\<ClientName>
Line 46: Line 54:


<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 63:


<translate>
<translate>
==== Core Plugins ==== <!--T:9-->
=== Plugins === <!--T:11-->
</translate>
 
<translate>
==== Core Plugins ==== <!--T:12-->
</translate>
</translate>
* Joomla\Plugin\<PluginGroup>\<PluginName>
* Joomla\Plugin\<PluginGroup>\<PluginName>
Line 62: Line 74:


<translate>
<translate>
==== 3rd Party Plugins ==== <!--T:10-->
==== 3rd Party Plugins ==== <!--T:13-->
</translate>
</translate>
* <CompanyName>\Plugin\<PluginGroup>\<PluginName>\
* <CompanyName>\Plugin\<PluginGroup>\<PluginName>\
Line 68: Line 80:


<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 89:


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


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


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

Revision as of 04:17, 20 August 2020

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>\<ComponentName>\<ClientName>
    • Acme\Backup\Site
    • Acme\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