Quoi envoyer aux classes "Sql" ? - PHP - Programmation
MarshPosté le 08-02-2017 à 13:30:58
Salut à tous,
J'aurais aimé avoir votre avis sur les bonnes pratiques en programmation orienté objet.
Actuellement j'ai des classes que l'on dira métiers qui manipule et affiche les données, pour chacune de ces classes métiers, j'ai un équivalent en classe Sql qui sera charger de faire les requetes et renvoyer des tableau bruts de résultats. Quand j'ai besoin d'insérer des données, je passe mon objet entier à une méthode de ma classe Sql.
Récemment en mettant à jours mon serveur php, je me suis retrouvé avec des warning ****Only variables should be passed by reference in****
car je faisais cela dans mes classe Sql :
Code :
public function insert($objet){
$query = "INSERT INTO maTable (Id,monChamp) VALUES (:id,:monChamp)";
Le Warning vient du fait qu'il ne serais pas recommandé de manipuler un objet à l'intérieur de la méthode BindParam de pdo. Et c'est bien dommage car je trouvais cela bien pratique. car ca eviter de déclarer de nouvelles variable le temps de l'insertion des données, mais également la facilité à l'écriture grace à un bon ide.
Donc si il n'est pas recommander de faire ca, sous quelle forme est t'il conseillé de faire passer les données aux méthodes Sql ?
Code :
public function insert($objet){
$id = $objet->getId();
$monChamp = $objet->getMonChamp();
$query = "INSERT INTO maTable (Id,monChamp) VALUES (:id,:monChamp)";
Petite question bonus sur la manière dont sont renvoyé les donnée, mieux vaut les renvoyer sous forme de tableau brut, ou bien utiliser la fonction PDO::FETCH_CLASS: qui créera automatiquement un objet hydraté de la classe renseigné ?
Marsh Posté le 08-02-2017 à 13:30:58
Salut à tous,
J'aurais aimé avoir votre avis sur les bonnes pratiques en programmation orienté objet.
Actuellement j'ai des classes que l'on dira métiers qui manipule et affiche les données, pour chacune de ces classes métiers, j'ai un équivalent en classe Sql qui sera charger de faire les requetes et renvoyer des tableau bruts de résultats. Quand j'ai besoin d'insérer des données, je passe mon objet entier à une méthode de ma classe Sql.
Récemment en mettant à jours mon serveur php, je me suis retrouvé avec des warning ****Only variables should be passed by reference in****
car je faisais cela dans mes classe Sql :
Le Warning vient du fait qu'il ne serais pas recommandé de manipuler un objet à l'intérieur de la méthode BindParam de pdo. Et c'est bien dommage car je trouvais cela bien pratique. car ca eviter de déclarer de nouvelles variable le temps de l'insertion des données, mais également la facilité à l'écriture grace à un bon ide.
Donc si il n'est pas recommander de faire ca, sous quelle forme est t'il conseillé de faire passer les données aux méthodes Sql ?
ou encore, sachant pour pour les grosse requete ca va par être très lisible je trouve
Petite question bonus sur la manière dont sont renvoyé les donnée, mieux vaut les renvoyer sous forme de tableau brut, ou bien utiliser la fonction PDO::FETCH_CLASS: qui créera automatiquement un objet hydraté de la classe renseigné ?
Merci de votre aide