J'ai deux classes dans une application PHP, B extension A par exemple. classe A a une fonction qui renvoie une partie de ses autres propriétés sous la forme d'un tableau de requêtes d'insertion SQL par exemplePHP extension des propriétés de classe
Class A {
$property_a;
$property_b;
$property_c;
$property_d;
function queries() {
$queries = array();
$queries[] = "INSERT INTO xxx VALUES " . $this->property_a . ", " . $this->property_b";
$queries[] = "INSERT INTO yyy VALUES " . $this->property_b . ", " . $this->property_d";
}
}
Je voudrais la classe B d'avoir une fonction similaire (identique) qui fait la même chose pour les propriétés de la classe B, tout en conservant les valeurs de la classe A. l'idée étant que chaque requête sera transmise par une dernière fonction en même temps à savoir:
$mysqli->query("START TRANSACTION");
foreach($queries as $query) {
if(!$mysqli($query)) {
$mysqli->rollback();
}
}
si tous OK mysqli- $> commettras() ;
Quel serait le moyen le plus simple d'y parvenir? Des conseils et des idées appreicated. Merci!
+1 Doctrine rocks! –
Merci, Encore une question. Est-il possible d'étendre ce processus encore plus loin? par exemple pour avoir une classe C qui peut accéder à sa fonction parente ainsi que la fonction parente de son parent? Espérons que cela a du sens lol – Dan
c :: queries() appelle son implémentation parente (B :: queries()) qui appelle ses parents implémentation (A :: queries()). A :: queries() retourne un tableau, B :: queries() ajoute ses éléments et retourne le tableau, C :: queries() ajoute ses éléments et retourne le tableau. Cela peut durer éternellement si vous aimez ;-) – VolkerK