Использование xPDO в функциях
Доброго Времени суток!
Поскольку еще не силен в php (но я стараюсь) столкнулся с проблемой и пока не нашел решения (может просто не могу правильно сформулировать вопрос всемогущему интернету).
Проблема такая: создал пользовательскую функцию в которой обращаюсь к xPDO, к примеру $user = $modx->user->get('id');, на что получаю ответ, что юзер не объект, а женщина не человек…
То есть внутри функции не получается обратиться к модели modx…
Конечно я понимаю, что это просто пробелы в моих знаниях, подскажите как решить или что прочитать на эту тему
Поскольку еще не силен в php (но я стараюсь) столкнулся с проблемой и пока не нашел решения (может просто не могу правильно сформулировать вопрос всемогущему интернету).
Проблема такая: создал пользовательскую функцию в которой обращаюсь к xPDO, к примеру $user = $modx->user->get('id');, на что получаю ответ, что юзер не объект, а женщина не человек…
То есть внутри функции не получается обратиться к модели modx…
Конечно я понимаю, что это просто пробелы в моих знаниях, подскажите как решить или что прочитать на эту тему
Комментарии: 6
в самом начале функции:
global $modx;
Так?
function myfunction(){
global $modx;
$user = $modx->user->get('id');
}
Верно.
Спасибо, Добрый человек!
Мне кажется, лучше передавать переменную $modx в функцию при вызове. Да, это несколько сложнее, но глобальные переменные стараются не использовать…
function myfunction($modx){
if (!$modx) return 'Error';
$user = $modx->user->get('id');
}
myfunction($modx);
Где угодно вставляем
require_once('functions.php');
$functions->test();
Создаем файл$functions = new functions($modx);
class functions {
public $modx;
function __construct(modX &$modx){
$this->modx =& $modx;
$this->pdoFetch = $this->modx->getService('pdofetch','pdoFetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', array());
}
function test() {
// $this->modx->****
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.