Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#26 Laravel 5.x » Прошу помощи как реализовывать классы в laravel » 24.07.2017 17:56:33

Viktor92
Ответов: 5

Здравствуйте уважаемые форумчане ,Я новичок в Ларавель версии 5.3. Создав  простую регистрацию и логин в этом фреймворке, я задался вопросом ,как перенести или вписать свой класс users в котором есть переменные,методы, хэш и поля с проверкой . Подскажите пожалуйста , как создавать ООП клаccы в ларе, а главное где? Вот пример моего класса users.
По старинке я делал так.

/Подключаем файл класса Users к index.php .
require_once("class.user.php");
//Запускаем сессию Users.
session_start();
//Тестовая переменная которая будет запускать роутинг.
$router_strart;
// с помощью переменной создаём нового пользователя.
$login = new USER();
// если новый пользователь залогинился
if($login->is_loggedin()!="")
{
//Перенаправляем его с логина  на страницу'profile.php'.
    $login->redirect('profile.php');
}
//Заполнения полей в логине и отправка запросов POST переменных серверу .
// Если кнопка батон логин нажата и поля правильно заполненны  после регистрации.
if(isset($_POST['btn-login']))
{
    $uname = strip_tags($_POST['txt_uname_email']);
    $umail = strip_tags($_POST['txt_uname_email']);
    $upass = strip_tags($_POST['txt_password']);
    // если поля переменных $uname,$umail,$upass заполнены   
    if($login->doLogin($uname,$umail,$upass))
    {
        //  то перенапрвляем пользователя на страницу профайл.php
        $login->redirect('profile.php');
    }
    // иначе
    else
    {
          // ошибка (вывод на экран)
        $error= "Неправильный логин или пароль";
               
    }   
}

Сам класс Юзеров с функциями и методами.

<?php

require_once('dbconfig.php');

class USER
{   
    public $username;
    private $login = false;
    private $conn;
   
    public function __construct()
    {
        $database = new Database();
        $db = $database->dbConnection();
        $this->conn = $db;
    }
   
    public function runQuery($sql)
    {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
    }
   
    public function register($uname,$umail,$upass)
    {
        try
        {
            $new_password = password_hash($upass, PASSWORD_DEFAULT);
            $stmt = $this->conn->prepare("INSERT INTO users(user_name,user_email,user_pass)
                                                       VALUES(:uname, :umail, :upass)");
                                                  
            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":umail", $umail);
            $stmt->bindparam(":upass", $new_password);
                                                         
            $stmt->execute();   
           
            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }
   
   
    public function doLogin($uname,$umail,$upass)
   
    {
        try
        {
            $stmt = $this->conn->prepare("SELECT user_id, user_name, user_email, user_pass FROM users WHERE user_name=:uname OR user_email=:umail ");
            $stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            if($stmt->rowCount() == 1)
            {
                if(password_verify($upass, $userRow['user_pass']))
                {
                    $_SESSION['user_session'] = $userRow['user_id'];
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }
   
    public function is_loggedin()
    {
        if(isset($_SESSION['user_session']))
        {
            return true;
        }
    }
   
    public function redirect($url)
    {
        header("Location: $url");
    }
   
    public function doLogout()
    {
        session_destroy();
        unset($_SESSION['user_session']);
        return true;
    }
}

Подвал раздела