跳至主要内容
版本:5.1

使用 PSR4 查找类文件

命名空间允许我们以类似于目录组织文件的方式来组织 PHP 类。特别是,Joomla 使用的PSR4 建议使我们能够确定某个类应该位于哪个文件中。

为了说明这一点,让我们以文件 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。该图以图形方式显示了这一点。

Namespacing