Перейти к содержимому

Отсутствующий справочник по Joomla™ для разработчиков расширений
Nicholas K. Dionysopoulos
Авторское право © 2022-2023 Nicholas K. Dionysopoulos

Разрешается копировать, распространять и/или изменять этот документ на условиях Лицензии свободной документации GNU, версия 1.3 или любой более поздней версии, опубликованной Фондом свободного программного обеспечения; без неизменяемых разделов, без текстов на передней и задней обложках. Копия лицензии включена в раздел "GNU Free Documentation License".

-

Эта работа не связана с проектом Joomla! и не поддерживается им. Она не поддерживается и не гарантируется проектом Joomla! или Open Source Matters. Логотип Joomla! используется по ограниченной лицензии, предоставленной Open Source Matters, владельцем торговой марки в США и других странах.

-

Весь код, найденный в примерах кода в этой книге, является свободным программным обеспечением; вы можете распространять его и/или изменять на условиях Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения; либо версии 2 этой лицензии, либо (по вашему выбору) любой более поздней версии.

Этот пример программного кода распространяется в надежде, что он будет полезен, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий товарности или пригодности для определенной цели. Более подробную информацию см. в Стандартной общественной лицензии GNU.

Вы должны были получить копию Стандартной общественной лицензии GNU вместе с этим примером программного кода; если нет, напишите в Фонд свободного программного обеспечения, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

январь 2023 г.

Аннотация

Разработка расширений Joomla - увлекательное и полезное занятие. Тем не менее, ее API развивается, чтобы лучше соответствовать меняющемуся времени и лучшим практикам PHP. Когда Joomla 4 вышла со своим более богатым, совершенно новым API, не было никакой документации, чтобы рассказать разработчикам, как обновлять и продолжать развивать свои расширения. Более того, более десяти лет стагнации API и отсутствие документации привели разработчиков к самоуспокоенности, плохому и не поддерживаемому коду. Эта книга призвана обобщить мой опыт написания программ для Joomla с 2006 года и включает в себя полезные сведения о том, как было принято решение о некоторых функциях, как они должны использоваться и как они вписываются в общую картину написания эффективного, поддерживаемого кода. Это не учебник и не справочник. Это скорее практическое руководство по API разработки расширений Joomla.

Joomla 4 представила множество новых возможностей. Некоторые из этих функций вводят новые фундаментальные концепции или уточняют существующие. Прежде чем углубиться в разработку расширений Joomla, давайте рассмотрим основные понятия, чтобы убедиться в том, что мы все на одной волне.

Компонент Joomla - это, пожалуй, самый важный тип расширения. Дело не только в том, что это приложение внутри приложения, позволяющее нам создавать пользовательский опыт, который практически невозможен при использовании только основного кода, но и в том, что Joomla принимает необходимость такого рода пользовательского опыта и вложила значительные средства в то, чтобы сделать разработку компонентов относительно простой. Это резко контрастирует с WordPress, где ваш опыт определяется в первую очередь кодом ядра, пользовательский опыт вне пользовательских типов контента активно не поощряется, и нет никакого разумного API для создания эквивалентного типа расширения без необходимости изобретать колесо, гнуть спину и разумно применять тёмную магию.

Плагины - это фундаментальные строительные блоки Joomla. Они позволяют нам выполнять код, когда происходит что-то интересное. Неудивительно, что плагины чрезвычайно мощны и являются краеугольным камнем для реализации сложных функций, которые изменяют или добавляют возможности Joomla без необходимости изменять файлы ядра ("взламывать ядро"), как это обычно происходит в других CMS. Это позволяет нам иметь очень мощные, легко поддерживаемые сайты.