В XML-файлах розширень (модулів, плагінів) Joomla 6 тег <namespace> відіграє критичну роль. Якщо пояснювати просто: це "адреса" або "прізвище" твого коду, яка каже Joomla, де фізично шукати PHP-класи твого модуля.
Namespace допомагає уникнути конфліктів, якщо два розробники назвали свої класи однаково (наприклад, Helper).
Ось детальний розбір того, як це працює в Joomla 6:
1. Структура тегу в XML
У файлі mod_yourmodule.xml це виглядає приблизно так:
<namespace>MyCompany\Module\YourModule</namespace>2. Що це дає на практиці?
Цей рядок вмикає автозавантаження (PSR-4). Це означає, що тобі більше не потрібно писати require_once для кожного файлу. Joomla "бачить" цей простір імен і автоматично пов'язує його з папкою src твого модуля.
Логіка пошуку файлів: Коли Joomla бачить namespace MyCompany\Module\YourModule, вона очікує таку структуру папок:
- XML файл: modules/mod_yourmodule/mod_yourmodule.xml
- PHP класи: modules/mod_yourmodule/src/
Якщо ти створиш файл modules/mod_yourmodule/src/Helper/MyHelper.php, то всередині нього обов'язково має бути прописаний цей же namespace:
<?phpnamespace MyCompany\Module\YourModule\Helper;// Тепер цей клас доступний всюди в Joomla за цією адресоюclass MyHelper {// твій код}?>3. Чому це важливо для Joomla 6?
Joomla 6 повністю відходить від застарілих методів завантаження файлів.
- Без namespace: Тобі доведеться вручну підключати файли через include.
- З namespace: Ти просто пишеш use MyCompany\Module\YourModule\Helper\MyHelper; у будь-якому місці сайту, і Joomla сама знайде і завантажить цей файл.
4. Правила написання (Стандарт)
Для модулів Joomla рекомендує дотримуватися такого формату: [Vendor]\[Type]\[Name]
- Vendor: Твоє ім'я або назва компанії (наприклад, MyCompany).
- Type: Завжди Module (якщо це модуль).
- Name: Назва твого розширення в CamelCase (наприклад, YourModule).
Разом: <namespace>MyCompany\Module\YourModule</namespace>
Порада:
Якщо ти створюєш власний модуль (наприклад, для виводу цін або списку матеріалів), обов'язково додай цей тег. Це зробить твій код сучасним і сумісним з майбутніми оновленнями Joomla.
Важливо: Після того, як ти зміниш або додасиш <namespace> у XML-файлі вже встановленого модуля, іноді потрібно натиснути "Оновити структуру" в менеджері розширень або перевстановити модуль, щоб Joomla оновила свій внутрішній список шляхів (autoload_psr4.php).