Grehgo 0 Denunciar post Postado Fevereiro 5, 2019 Boa tarde pessoal, tenho dois trechos de código, estou estudando boas práticas de programação e gostaria de saber se alguém tem dicas de como refatorar a ponto de melhorar os trechos de código a seguir. if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){ header("Location: http://www.google.com"); exit(); }elseif(isset($_COOKIE['Loggedin']) && $_COOKIE['Loggedin'] == true){ header("Location: http://www.google.com"); exit(); } o outro trecho é esse: class MyUserClass { public function getUserList() { $dbconn = new DatabaseConnection('localhost','user','password'); $results = $dbconn->query('select name from user'); sort($results); return $results; } } Se alguém tiver dicas de como deixar isso mais apropriado, de acordo com normas PSR-2 ou algum standard, agradeço o auxílio. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
marcosmarcolin 0 Denunciar post Postado Fevereiro 5, 2019 Olha, no método getUserList(), faria o seguinte: Criaria um atributo para setar a DB, assim poderá utilizar em todo lugar da classe o $this->db. Criaria um método para setar a conexão da DB; Pode dar o return direto com o sort. Usar palavras chaves SQL em maiúsculo. class MyUserClass { private $db; public function __construct() { $this->setDB(); } private function setDB(){ $this->db = new DatabaseConnection('localhost','user','password'); } public function getUserList() { $results = $this->db->query('SELECT name FROM user'); return sort($results); } } Agora, nas condições você está redundante, veja: // isset($_SESSION['loggedin'] é igual $_SESSION['loggedin'] == true, precisa mesmo usar isset? // então use apenas if(isset($_SESSION['loggedin'])){ header("Location: http://www.google.com"); exit(); }else if(isset($_COOKIE['Loggedin'])){ header("Location: http://www.google.com"); exit(); } // ainda tem código repetido, as duas condições fazem a mesma coisa, certo? Podemos simplificar, veja: if(isset($_SESSION['loggedin']) || isset($_COOKIE['Loggedin'])){ // caso uma outra seja true header("Location: http://www.google.com"); exit(); } // Pra melhorar, pode criar um método/função e apenas chamar onde quiser no sistema Minhas dicas são essas, pode ser que errei em algo... mas é para não ter alterado o funcionamento. Compartilhar este post Link para o post Compartilhar em outros sites