Joomla 4 MVC Anatomy: Загрузочные файлы админки

  1. Обзор файлов админки компонента в Joomla 4
  2. services/provider.php
  3. Extension/CountrybaseComponent.php
  4. access.xml
  5. config.xml
  6. Анатомия MVC Joomla 4

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Обзор файлов админки компонента в Joomla 4.

В админке компонента больше файлов, отчасти потому, что там две таблицы, каждая из которых имеет вид списка и редактирования, а отчасти потому, что некоторые файлы управляют поведением компонента как в интерфейсе сайта, так и в интерфейсе администратора.

Создание кода для представления списка было рассмотрено в части учебника, посвященной файлам сайта, поэтому здесь повторяться не будем. В этом разделе будут рассмотрены файлы, общие для большинства компонентов. В следующем уроке будет рассмотрен один из видов редактирования, необходимый для обновления или добавления новых записей.

services/provider.php

Этот файл используется, когда приложение Joomla вызывает ComponentHelper для рендеринга компонента. Это самый первый код компонента, выполняемый как для Site, так и для Administrator. Его роль заключается в регистрации компонента:

	public function register(Container $container)
	{
		$container->registerServiceProvider(new CategoryFactory('\\J4xdemos\\Component\\Countrybase'));
		$container->registerServiceProvider(new MVCFactory('\\J4xdemos\\Component\\Countrybase'));
		$container->registerServiceProvider(new ComponentDispatcherFactory('\\J4xdemos\\Component\\Countrybase'));
		$container->registerServiceProvider(new RouterFactory('\\J4xdemos\\Component\\Countrybase'));
		$container->set(
			ComponentInterface::class,
			function (Container $container)
			{
				$component = new CountrybaseComponent($container->get(ComponentDispatcherFactoryInterface::class));

				//$component->setRegistry($container->get(Registry::class));
				$component->setMVCFactory($container->get(MVCFactoryInterface::class));
				//$component->setCategoryFactory($container->get(CategoryFactoryInterface::class));
				$component->setRouterFactory($container->get(RouterFactoryInterface::class));

				return $component;
			}
		);
	}

Registry и Categories не используются в Countrybase, поэтому некоторые строки были закомментированы.

Extension/CountrybaseComponent.php

Функция register этого файла вызывается из оператора $component = new CountrybaseComponent(...); в файле services/provider.php. Ее цель - загрузить компонент как в интерфейсе сайта, так и в интерфейсе администратора. И снова то, что не используется, было закомментировано.

	public function boot(ContainerInterface $container)
	{
		//$this->getRegistry()->register('countrybaseadministrator', new AdministratorService);
	}

access.xml

В этом файле задаются элементы управления доступом, используемые в данном компоненте. Элементы, перечисленные здесь, появляются на вкладке Параметры (Options) компонента Разрешения (Permissions):

<?xml version="1.0" encoding="utf-8" ?>
<access component="com_countrybase">
	<section name="component">
		<action name="core.admin" title="JACTION_ADMIN" />
		<action name="core.options" title="JACTION_OPTIONS" />
		<action name="core.manage" title="JACTION_MANAGE" />
		<action name="core.create" title="JACTION_CREATE" />
		<action name="core.delete" title="JACTION_DELETE" />
		<action name="core.edit" title="JACTION_EDIT" />
	</section>
</access>

config.xml

Этот файл используется для управления тем, появляются ли какие-либо параметры в форме Параметры (Options) компонента и на какой вкладке они появляются. Для com_countrybase нет никаких параметров, кроме стандартных параметров разрешений Joomla. Здесь можно было бы добавить настройки, например, показывать или скрывать определенный столбец в окне вывода. Это можно сделать в отдельном наборе полей под названием Параметры (Options).

<?xml version="1.0" encoding="utf-8"?>
<config>

	<fieldset
		name="permissions"
		label="JCONFIG_PERMISSIONS_LABEL"
		description="JCONFIG_PERMISSIONS_DESC"
		>

		<field
			name="rules"
			type="rules"
			label="JCONFIG_PERMISSIONS_LABEL"
			filter="rules"
			validate="rules"
			component="com_countrybase"
			section="component"
		 />
	</fieldset>
</config>

Анатомия MVC Joomla 4.

  1. «Joomla 4 MVC Anatomy: Начало работы над созданием компонента»
  2. «Joomla 4 MVC Anatomy: Файловая структура компонента»
  3. «Joomla 4 MVC Anatomy: Файл манифеста компонента (Manifest File)»
  4. «Joomla 4 MVC Anatomy: Файлы сайта компонента»
  5. «Joomla 4 MVC Anatomy: Загрузочные файлы админки»
  6. «Joomla 4 MVC Anatomy: Файлы для правки админки»

Перевод с английского официальной документации CMS Joomla 4:
https://docs.joomla.org/J4.x:MVC_Anatomy:_Administrator_Startup_Files

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню