В таком виде это наиболее универсальный вариант, ведь вряд ли вы удалите страницу авторизации напрямую, а вот дружественную ссылку на нее можете и поменять(например было /login, а стало /login-or-register), что никак не повлияет на этот код.
Однако, если у вас при любом запрете доступа(401) кидает на страницу логина(это надо прописать дополнительно в настройках админки), тогда достаточно написать
Понятно. Ввели в заблуждение исходники класса modx:
...
/**
* This is the MODX gateway class.
*
* It can be used to interact with the MODX framework and serves as a front
* controller for handling requests to the virtual resources managed by the MODX
* Content Management Framework.
*
* @package modx
*/
class modX extends xPDO {
/**
...
Зря Вы упоминаете в статье xPDO, т.к. вы его не используете.
Но разве modx не является прямым наследником xPDO?
xPDOCriteria() можно заменить на $this->modx->prepare() + bindValue()
Способ использования выбран после долгого гугления как лучше составлять запросы к своим таблицам в базе, не связанным с modX, в большинстве мест советовали делать именно так )
А вообще, хотелось бы чего-то такого,
$sql="SELETCT * FROM ... WHERE a=:a AND b=:b";
if($result=$modx->prepare($sql)->execute([":a"=>1,":b"=>2])->fetch(PDO::FETCH_ASSOC))//и чтобы при неудавшемся создании
{//какого-то объекта просто возвращалось false, а не исключение/ошибка
...//работа с бд
}
но у меня сроки, поэтому времени на поиски более оптимального варианта пока нет.
Безусловно, для стабильного проекта ваш вариант подходит лучше.
Но мой нынешний заказчик, к сожалению, не имеет четкого ТЗ и выдумывает функционал на ходу. Так что для меня была наиболее важна возможность быстро добавить/отредактировать/удалить функционал, что, имхо, в моем варианте делается проще, по крайней мере мне. Однако спасибо за указанный вариант, приму его к сведению и в более адекватных проектах буду применять.
Настраивается тут(unauthorized_page):
По сути, это ничем почти не отличается, параметр нужен точно так же, просто записан он в другом месте.
Однако, если у вас при любом запрете доступа(401) кидает на страницу логина(это надо прописать дополнительно в настройках админки), тогда достаточно написать
Но разве modx не является прямым наследником xPDO?
Способ использования выбран после долгого гугления как лучше составлять запросы к своим таблицам в базе, не связанным с modX, в большинстве мест советовали делать именно так )
А вообще, хотелось бы чего-то такого,
но у меня сроки, поэтому времени на поиски более оптимального варианта пока нет.
Но мой нынешний заказчик, к сожалению, не имеет четкого ТЗ и выдумывает функционал на ходу. Так что для меня была наиболее важна возможность быстро добавить/отредактировать/удалить функционал, что, имхо, в моем варианте делается проще, по крайней мере мне. Однако спасибо за указанный вариант, приму его к сведению и в более адекватных проектах буду применять.