我正在尝试制作某种形式的CMS用于学习目的。现在我想了解如何自动将一堆类包含到某些文件中。我想编写一行代码,其中包含我想要的所有类。
<?php include(realpath($_SERVER["DOCUMENT_ROOT"])."/lib/php/session.inc.php");
Essentials::getDOCTYPE();
Essentials::getHeader();
这是我的索引文件的顶部。如何自动包含该会话文件?从我能够理解的知道,Joomla中的_JEXEC定义了一个自定义的Joomla会话,然后在使用之后立即使用了$ this-&gt; baseURL(),这意味着有一个类以某种方式使用。但是,没有include(“myclass.php”);
答案 0 :(得分:1)
Joomla文件中的_JEXEC并没有像你想象的那样聪明。它只是在主脚本的入口点(index.php)中定义的常量。然后在后续文件中测试它的存在,作为防止文件被直接访问的安全预防措施。
如果未定义_JEXEC,则没有通过index.php进入 - 如果直接请求index.php,或者通过mod_rewrite静默重定向(重写)到index.php,则定义_JEXEC,如果不是必须直接访问其他文件,并且脚本以“不允许直接访问”类型的消息退出。
我相信您所谈论的功能可以通过基于单词'php autoload'的搜索找到,您可以在其中构建一个函数,该函数将在特定文件夹中查找名称与您定义的模式匹配的文件,其中包括名称您尝试实例化但尚未加载的类。