0

我正在尝试制作某种形式的 CMS 用于学习目的。现在我想了解如何将一堆类自动包含到某些文件中。我想编写一行代码,其中包含我想要的所有类。

<?php include(realpath($_SERVER["DOCUMENT_ROOT"])."/lib/php/session.inc.php");

Essentials::getDOCTYPE();
Essentials::getHeader();

这是我的索引文件顶部的样子。如何自动包含该会话文件?据我所知,Joomla 中的 _JEXEC 定义了一个自定义 Joomla 会话,然后在使用之后立即使用了 $this->baseURL() ,这意味着有一个以某种方式使用的类。但是,没有 include("myclass.php");

4

1 回答 1

1

Joomla 文件中的 _JEXEC 并没有你想象的那么聪明。它只是一个在主脚本的入口点 (index.php) 中定义的常量。然后在后续文件中测试它的存在,作为防止文件被直接访问的安全预防措施。

如果 _JEXEC 未定义,则您没有通过 index.php 进入 - 如果您直接请求 index.php,或者通过 mod_rewrite 静默重定向(重写)到 index.php,则定义了 _JEXEC,否则您必须访问另一个文件直接退出,脚本以“不允许直接访问”类型的消息退出。

我相信您正在谈论的功能可以通过基于单词“php autoload”的搜索找到,您可以构建一个函数,该函数将在特定文件夹中查找名称与您定义的模式匹配的文件,其中包括您所定义的类的名称尝试实例化但尚未加载。

于 2012-04-13T23:45:52.533 回答