Baranov_Dron
Новичок
Класс UserLog и MVC
В общем есть задача для админа вести удобочитаемый и просматриваемый лог действий юзеров - регистрация, смена email, вход, неудачный вход, подтверждение по email и так далее.
И я споткнулся с этой задачей на следующих шагах и прошу совета.
Первое, как лучше всё же вести лог
?
Второе, есть action в контролере - подтверждение email
И класс myUser(выше он вызывался, как $this->getUser())
Вопрос в том, кто должен писать лог, класс myUser или userActions(он же контролер)?
В общем есть задача для админа вести удобочитаемый и просматриваемый лог действий юзеров - регистрация, смена email, вход, неудачный вход, подтверждение по email и так далее.
И я споткнулся с этой задачей на следующих шагах и прошу совета.
Первое, как лучше всё же вести лог
PHP:
//так
class userActions extends sfActions
{
public function executeRegister($request)
{
$this->form = new RegisterForm;
if ($request->isMethod('post'))
{
$this->form->bind($request->getParameter('register'));
if ($this->form->isValid())
{
$values = $this->form->getValues();
$log = new UserLog;
$log->setAction('register');
$log->setResult('Регистрация прошла успешно, ссылка активации выслана. Регистрация по реф id');
$log->save();
$user = new User;;
$user->setLogin($values['login']);
$user->save();
$user->link('UserLog', array($log->getId()));
}
}
}
}
//или так
class userActions extends sfActions
{
public function executeRegister($request)
{
$this->form = new RegisterForm;
if ($request->isMethod('post'))
{
$this->form->bind($request->getParameter('register'));
if ($this->form->isValid())
{
$values = $this->form->getValues();;
$user = new User;;
$user->setLogin($values['login']);
$user->save();
Doctrine::getTable('UserLog')->addLog('register',
'Регистрация прошла успешно, ссылка активации выслана. Регистрация по реф id', $user->getId());
}
}
}
}
Второе, есть action в контролере - подтверждение email
PHP:
class userActions extends sfActions
{
public function executeConfirm($request)
{
if ($request->isMethod('post'))
return $this->forward404();
if (!$this->getUser()->confirmRegistration($request->getParameter('id'), $request->getParameter('key')))
return $this->forward404();
}
}
PHP:
class myUser extends sfBasicSecurityUser
{
public function confirmRegistration($id, $key)
{
$table = Doctrine::getTable('UserConfirm');
if ($record = $table->retrieveByUserID($id))
{
if ($record->getRemember_key() == $key)
{
$record->User->setIsconfirm(1);
$record->save();
Doctrine::getTable('UserLog')->addLog('confirm', 'Email адрес '.$record->User->getEmail().' подтверждён.', $record->User->getId());
$record = '';
$table->delitByUserID($id);
return TRUE;
}
else
return FALSE;
}
else
return FALSE;
}
}
):
)