Php OOP在其他类中使用我的函数而没有扩展

时间:2016-12-02 15:57:51

标签: php oop

我是OOP的初学者,我有一个没有孩子的Database班,一个userInfo班是母亲,一个login班是女儿。

Database Manager中,我有function

public function usernameExist(userInfo $user)
    {

        $q = $this->_db->prepare('SELECT COUNT(username) FROM register where username=:username');
        // on bind
        $q->bindValue(':username', $user->username());
        $q->execute();
        $donnees = $q->fetch(PDO::FETCH_ASSOC);
        // on verifie le contenu de $donnees
        if($donnees['COUNT(username)'] >= '1')
        {
            // l'utilisateur existe on retourne true
            return true;
        }



    }

我的数据库管理员 我可以为所有内容创建一个动态函数,但我觉得它更容易阅读,但不管我是一个noob =)。

<?php
/**
 * Created by PhpStorm.
 * User: Arnaud
 * Date: 29/11/2016
 * Time: 23:52
 */
class Manager
{
    protected $_db;

    public function __construct($db)
    {
        $this->setDB($db);
    }

    //getter
    // on regarde si le nom d'utilisateur est déjà pris
    public function usernameExist(userInfo $user)
    {

        $q = $this->_db->prepare('SELECT COUNT(username) FROM register where username=:username');
        // on bind
        $q->bindValue(':username', $user->username());
        $q->execute();
        $donnees = $q->fetch(PDO::FETCH_ASSOC);
        // on verifie le contenu de $donnees
        if($donnees['COUNT(username)'] >= '1')
        {
            // l'utilisateur existe on retourne true
            return true;
        }



    }

    // methode pour verifier si l'email entrée existe
    public function emailExist(userInfo $user)
    {
        try
        {
            $q = $this->_db->prepare('SELECT COUNT(email) FROM register WHERE email=:email');
            $q->bindValue(':email', $user->email());
            $q->execute();
        }
        catch (PDOException $e)
        {
            echo $e->getMessage();
        }
        // on réccupère les infos
        $donnees = $q->fetch(PDO::FETCH_ASSOC);
        //si l'email existe on renvois true
        if($donnees['COUNT(email)'] >= '1')
        {
            return true;
        }
        // sinon false
        elseif($donnees['COUNT(email)'] == '0')
        {
            return false;
        }





    }

    //ajout de l'utilisateur

    public function ajout(userInfo $user)
    {
        $q = $this->_db->prepare('INSERT INTO register(username,password,email) VALUES(:username,:password,:email)');

        $q->bindValue(':username', $user->username());
        $q->bindValue(':password', $user->password());
        $q->bindValue(':email', $user->email());

        $q->execute();

        // si tout s'est bien passé
        $donnees = $q->fetch(PDO::FETCH_ASSOC);


    }

    //suppression d'un  utilisateur
    public function suppression(userInfo $user)
    {
      $q = $this->_db->query('DELETE FROM register WHERE username='.$user->username());

      if($q)
      {
          return true;
      }
    }

    // reccuppéré l'id selon l'username ou email
    public function getID(userInfo $user,$methode)
    {
        // si la méthode demandée est de retrouver l'id selon le nom utilisateur
        if($methode == 'username')
        {
            $q = $this->_db->prepare('SELECT id FROM register WHERE username=:username');
            $q->bindValue(':username', $user->username());
            $q->execute();
            $donnees = $q->fetch(PDO::FETCH_ASSOC);
            return $donnees['id'];
        }
        // si il est demandé par email
        if($methode == 'email')
        {
            $q = $this->_db->prepare('SELECT id FROM register WHERE email=:email');
            $q->bindValue(':email', $user->email());
            $q->execute();
            $donnees = $q->fetch(PDO::FETCH_ASSOC);
            return $donnees['id'];
        }


    }

    public function passwordMatch(login $user,$password)
    {
        $q = $this->_db->prepare('SELECT password FROM register WHERE username=:username');
        $q->bindValue(':username', $user->username());
        $q->execute();
        $donnees = $q->fetch(PDO::FETCH_ASSOC);
        if($donnees['password'] == $password)
        {
            return true;
        }
        elseif($donnees['password'] != $password)
        {
            return false;
        }
    }

    //setter
    public function setDB(PDO $db)
    {
        $this->_db = $db;
    }
}

我的登录课几乎是空的,因为我被卡住了。

登录类

class login extends userInfo
{

    protected $_dbParam;



   public function usernameExistParam(Manager $db)
   {
       // well i'm stuck x)
   }



}

?>

我的login课程从userInfo(母亲)延伸,如何使用登录(儿童)课程调用usernameExists课程?因为(userInfo ...)参数阻止了我

谢谢!

0 个答案:

没有答案
相关问题