2012-04-13 4 views
0

Я пытаюсь сделать какую-то форму CMS для учебных целей. Теперь я хочу узнать, как автоматически включать кучу классов в определенные файлы. Я хочу написать одну строку кода, которая будет включать в себя все классы, в которых я хочу.Joomla _JEXEC как функциональность

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

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

Это верхняя часть моего индексного файла. Как я могу автоматически включить этот файл сеанса? Из того, что я могу понять, что _JEXEC в Joomla определяет пользовательский сеанс Joomla, а затем сразу после этого использования используется $ this-> baseURL(), что означает, что есть класс, который каким-то образом использовался. Однако нет include ("myclass.php");

ответ

1

_JEXEC в файлах Joomla не делает ничего такого умного, как вы себе представляете. Это просто константа, которая определяется в точке входа основного сценария (index.php). Его существование затем тестируется в последующих файлах в качестве меры предосторожности для предотвращения доступа к файлам напрямую.

Если _JEXEC не определен, вы не вошли через index.php - если вы запросили index.php напрямую или были тихо перенаправлены (переписываются) на index.php через mod_rewrite, тогда _JEXEC определяется, если не вы должны получить доступ к другому файлу напрямую, и сценарий выходит с типом сообщения «прямой доступ не разрешен».

Я считаю, что функциональность, о которой вы говорите, может быть найдена с помощью поиска, основанного на словах «автозагрузка php», посредством чего вы можете создать функцию, которая будет выглядеть в определенных папках для файлов с именами, которые соответствуют вашим шаблонам, которые включают имя класса, который вы пытаетесь создать, но который еще не был загружен.

+0

Эта функция _autoload, казалось, была интересной, я столкнулся с ней, я буду смотреть дальше. Большое спасибо за помощь. –

Смежные вопросы