01 - Поиск файлов классов с помощью PSR4
Пространства имен позволяют нам организовывать наши классы PHP аналогично тому, как каталоги позволяют нам организовывать наши файлы. В частности, рекомендация PSR4 , которую использует Joomla, позволяет нам определить, в каком файле должен находиться определенный класс.
Чтобы убедиться в этом, давайте возьмем пример файла administrator/components/com_content/src/View/Articles/HtmlView.php, который содержит код для представления статей администратору. Этот файл содержит строки
namespace Joomla\Component\Content\Administrator\View\Articles; ... class HtmlView extends BaseHtmlView { …
таким образом, полное имя (FQN) класса равно \Joomla\Component\Content\Administrator\View\Articles\HtmlView
.
Joomla содержит список строк с префиксами пространства имен и сравнивает строку, содержащую полное имя класса, с этим списком, начинающимся с левой стороны имени класса, чтобы увидеть, может ли она найти частичное совпадение. В этом примере префикс пространства имен 'Joomla\Component\Content\Administrator'
будет соответствовать.
С этим префиксом пространства имен связан каталог в файловой системе, который является отправной точкой для поиска классов. В данном случае каталогом является administrator/components/com_content/src. (Вскоре мы увидим, как определяются префиксы пространства имен и связанные с ними каталоги).
Затем он удаляет соответствующий префикс пространства имен из FQN, оставляя \View\Articles\HtmlView , и рассматривает это как путь вниз из вышеупомянутого каталога. Таким образом, полный путь к файлу: administrator/components/com_content/src/View/Articles/HtmlView.php. Диаграмма дает наглядное представление об этом.