我没有挖掘“自从实施以来”,但它可以在不改变核心的情况下完成。
Joomla 在根目录中查找defines.php,如果存在,则查找imports it。 并且如果它发现定义了一个名为_JDEFINES 的常量,它不会加载原始文件,有效地覆盖它。
所以,如果您希望覆盖定义,它非常简单,您所要做的就是从 webroot/includes/ 路径下复制 defines.php 文件的内容并将其粘贴到我们在 @987654329 中创建的文件中@。您可以根据自己的喜好更改以下常量。
define('JPATH_CONFIGURATION', JPATH_ROOT."/my/supersecret/directory");
现在还有另一件事要做,然后我们就可以开始了:)
您必须将以下行添加到我们覆盖文件的顶部(webroot 中的 defines.php)。
define('JPATH_BASE', __DIR__);
define('_JDEFINES', 1);
此常量向框架传达定义已被覆盖并相应地使用新文件(上次我检查时,此标志/常量在整个框架的大约 10 个不同位置进行检查,例如@987654322 @,所以很重要)
根据您在问题中的要求,我还看到 Joomla v2.5.0 和 v3.8.8 提供了此功能。
编辑:请记住,如果您想要管理面板工作,您也必须对管理员文件夹重复相同的过程,并记住管理员有自己的/includes/defines.php