Laravel по-русски

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

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

#1 24.07.2017 17:56:33

Viktor92
Откуда: Москва
Сообщений: 26

Прошу помощи как реализовывать классы в laravel

Здравствуйте уважаемые форумчане ,Я новичок в Ларавель версии 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;
    }
}

Изменено Viktor92 (24.07.2017 18:18:18)

Не в сети

#2 24.07.2017 18:43:02

Re: Прошу помощи как реализовывать классы в laravel

Я тебе один умный совет дам, только ты не обижайся. Забудь про велосипеды, прочитай документацию и используй функционал фреймворка. В Laravel есть шикарная ORM, вылизанная система авторизации и десятки других ништяков. А ты берешь код уровня 2000х и суешь его в современный фреймворк.

Не в сети

#3 24.07.2017 21:12:09

Viktor92
Откуда: Москва
Сообщений: 26

Re: Прошу помощи как реализовывать классы в laravel

Ок спасибо большое пошёл читать ORM

Не в сети

#4 24.07.2017 22:28:28

Re: Прошу помощи как реализовывать классы в laravel

Мне кажется тут проблема не в ORM а в том, что у автора нет понимания MVC, по этому надо сначала подучить MVC, еще в него вникнуть.


Изучаю Laravel, до этого дела с фреймворками не имел.
Печальные познания в английском.

Не в сети

#5 25.07.2017 09:10:43

Re: Прошу помощи как реализовывать классы в laravel

Дак я не только про ORM написал. Код автора вообще полностью оторван от фреймворка, я бы посоветовал начать с книги или туториала (доки не помогут), которая разжевывает на все с нуля на реальном примере.

Не в сети

#6 25.07.2017 12:42:21

Viktor92
Откуда: Москва
Сообщений: 26

Re: Прошу помощи как реализовывать классы в laravel

Спасибо я во всём разобрался.

Не в сети

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