PHP ООП Подход - PullRequest
       5

PHP ООП Подход

0 голосов
/ 10 июня 2018

Я сейчас изучаю и пишу коды на PHP с подходом ООП.Я на правильном пути?Постараюсь использовать систему MVC, когда я привык к такому подходу.Можете ли вы сказать мне, что мне нужно улучшить или что читать как статьи, документацию или руководства при использовании подхода MVC?Спасибо!

database.class.php

<?php
class Database
{
    private $db;
    private $cfg;

    public function __construct()
    {
        $this->cfg = include('conf/config.php');

        try{
            $this->db = new PDO("mysql:host=" . $this->cfg['host']
            . ";dbname=" . $this->cfg['dbname'],
            $this->cfg['username'],
            $this->cfg['password'],
            array(
                PDO::ATTR_ERRMODE,
                PDO::ERRMODE_EXCEPTION
            )
        );
        }
        catch(PDOEsception $e)
        {
            echo $e->getMessage();
        }
    }

    public function getConnection()
    {
        return $this->db;
    }
}
?>

config.php

<?php
return [
    'host'      =>  'localhost',
    'dbname'    =>  'test',
    'username'  =>  'root',
    'password'  =>  ''
];
?>

user.service.php

<?php
require_once('class/database.class.php');

class UserService
{
    private $dbh;
    private $db;

    private $username;
    private $password;

    private $_user;

    public function __construct($username, $password)
    {
        $this->dbh = new Database();
        $this->db = $this->dbh->getConnection();
        $this->username = $username;
        $this->password = $password;
    }

    public function login()
    {
        try
        {
            $user = $this->checkInformation();
            if ($user) {
                $this->_user = $user;
                return $user;
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }

    public function checkInformation()
    {
        try
        {
            $checkUsername = $this->db->prepare('SELECT * FROM users WHERE uname = :uname');
            $checkUsername->execute(
                [
                    ':uname' => $this->username
                ]
            );
            if ($checkUsername->rowCount() > 0) {
                $userData = $checkUsername->fetch(PDO::FETCH_ASSOC);
                $hashedpwd = $userData['pwd'];
                $verify = password_verify($this->password, $hashedpwd);
                if ($verify) {
                    return $userData;
                }
            }
            return false;
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...