Я строю модуль ExpressionEngine, который будет нуждаться в возможности добавлять новых членов в систему. Кажется, что основные модули не предназначены для использования сторонними модулями, что оставляет мне два слегка хакерских подхода.
Первый - использовать подход, который использует метод register_member модуля-члена:
function register_member()
{
if ( ! class_exists('Member_register'))
{
require PATH_MOD.'member/mod.member_register.php';
}
$MR = new Member_register();
foreach(get_object_vars($this) as $key => $value)
{
$MR->{$key} = $value;
}
$MR->register_member();
}
Кажется, это немного грязно, так как мне нужно было бы найти правильный путь к файлу mod.member_register.php из моего пользовательского модуля.
Второй подход заключается в вставке записи члена непосредственно в базу данных, что выглядит хуже, так как я бы избегал всего существующего кода для создания членов. Ни один из этих подходов не кажется настолько чистым, кто-нибудь может предложить лучший подход?