Отношения MVC и DRY

Я пытаюсь создать систему входа пользователя.

У меня есть класс / контроллер под названием AccessControl, который включает в себя все функции для создания, удаления и регистрации пользователя.

У меня также есть модель под названием «Пользователи», в которой есть все функции базы данных, которые вызывается из класса AccessControl.

Мой класс AccessControl:

include_once('../models/User.php') ; class AccessControl { private $_systemKey ; public function __construct() { $this->_systemKey = 'QA>8fg)@z#t#:E60mj&MzHsm-lUj&b-}R%~<y$|nAuF)C3!r%+rT"Q<r$o?{_XR' ; } public function createUser($email, $password, $level) { $user_salt = $this->randomString() ; $password = $user_salt . $password ; $password = $this->hashData($password) ; if(!is_int($level)) { return false ; } //Create verification code $code = $this->randomString() ; //SQL... $created = User->insertNewUser($email, $password, $level) ; if($created != false){ return true; } return false ; } } 

И в моей модели:

 class User extends Core { public function fetchSalt($username) { $result = $this->db->prepare("SELECT saltword FROM users WHERE username = ?") ; $result->execute(array($username)) ; return $result->fetchColumn() ; } public function insertNewUser($email, $password, $level) { //SQL Insert... } } 

Я не уверен, что я делаю это правильно, потому что не являются createUser и insertNewUser идентичны? Как я могу изменить ситуацию, чтобы сделать ее СУХОЙ?


Core – это только мой класс соединений PDO, все мои модели будут расширяться от него. Это план в любом случае.

 abstract class Core { protected $db ; function __construct() { try{ $this->db = new PDO("mysql:host=localhost;dbname=database", "user", "pass") ; $this->db->exec('set names utf8') ; $this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $this->db->setAttribute(PDO::ATTR_PERSISTENT, TRUE) ; } catch(PDOEXCEPTION $e) { echo 'Database error: <i style="color:#993300;">'.$e.'</i>' ; die() ; } } function __destruct() { $this->db = NULL ; } } 

Related of "Отношения MVC и DRY"