Я всегда делал процедурный php, но я хочу изменить свой способ работы (никогда не поздно изменить вредные привычки)
У меня есть 3 файла: pdo.php
<?php
try
{
$engine = 'mysql';
$host ='localhost';
$port = '';
$database = 'local';
$user = 'root';
$password = '';
$dns = $engine.':port='.$port.';dbname='.$database.";host=".$host;
$bdd = new PDO($dns, $user, $password);
}
catch (Exeption $erreur)
{
die ('Erreur : '.$erreur->getMessage());
}
?>
Пользователь.php
<?php
include 'pdo.php';
class User {
private $bdd;
private $id;
private $firstname;
private $lastname;
private $email;
public function getId(){
return $this->id;
}
public function setId($id){
$this->id = $id;
}
//ALL GETTER AND SETTER
public function getUserIdByEmail($email) {
$request = $this->bdd->prepare("select id from users where email = :email");
$request->execute(array(
':email' => $email,
));
return $request->fetchColumn();
}
}
И index.php
<?php session_start ();
include 'pdo.php';
require 'User.php';
?>
<?php if (isset($_SESSION["email"]) && isset($_SESSION["password"])) {
$userEmail = $_SESSION["email"];
$userId = new User();
$id = $userId->getUserIdByEmail($userEmail);
echo $id;
//Rest of code
Я не понимаю, как я могу получить доступ к моему объекту в pdo.php. У меня есть разные возможности (например, включить pdo.php в класс User), но это не работает.
Можете ли вы объяснить, как я могу сделать? Спасибо
$bdd
в конструктор вашего пользовательского класса, чтобы установить свойство класса$bdd
. Ищите внедрение зависимостей для получения дополнительной информации. - person jeroen   schedule 15.02.2017