我已经根据我在网上找到的其他所谓的高质量、安全的类编写了一个用户类(尽管混合了其中的一些,从我所学到的,实际上没有一个是那么安全的)。问题是,在我初始化不同对象的脚本中,$User 对象的片段太长了。其他对象只需要$Browser = new Browser();
或$_ = new Translate ($DB, $User->get('Language'));
。所以,突然把所有这些代码放在这里感觉有点难看:
/* USER. Handles user data and login/logout/register. */
$User=new User($DB, Configuration::get('SiteKey'));
if (isset($_POST['logout']))
$User->logout();
else if (isset($_POST['login']) && !$User->login($_POST['email'], $_POST['password'])) // If user tries to login
$Error->set ('Banner', 'Username or password incorrect. Please try again.');
else if (isset($_SESSION['email']) && isset($_SESSION['session']))
$User->loginSession ($_SESSION['email'], $_SESSION['session']);
else if (isset($_POST['register']))
$User->add ($_POST);
/* Language */
if (!empty ($_POST['lang']) && in_array($_POST['lang'],Configuration::get('SupportedLanguages')))
{
$User->set('language', $_POST['lang']);
$_SESSION['language'] = $_POST['lang'];
}
if (!$User->get('language'))
$User->set('language', Configuration::get('DefaultLanguage'));
我不确定所有这些代码应该在哪里,我应该把它放在用户的类__constructor()
中还是应该像现在这样放在外面?
传递 $_POST 比直接在内部使用它更好,这可能会影响答案(传递了太多变量的 __constructor() 也不是很好)。
我不认为类中的代码如此相关以至于将其附加到此处,但是如果您想查看它,我只是将其公开在我的 github中。