オンラインで見つけた高品質で安全だと思われる他のクラスに基づいてユーザークラスを作成しました(ただし、私が学んだことから、実際にはそれほど安全なものはなかったので、それらのいくつかを混ぜ合わせました)。問題は、さまざまなオブジェクトを初期化するスクリプト内で、$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で公開しました。