De nombreuses applications stockent des informations sur les objets dans une base de données. Le problème est : comment représenter ces données dans le code PHP ? Les frameworks de mappage objet-relationnel (ORM) peuvent aider, mais ils peuvent être complexes et ne sont pas toujours nécessaires.
Cette réponse présente une solution simple pour créer dynamiquement des objets PHP basés sur des chaînes stockées dans une base de données MySQL.
Le problème :
Étant donné une table MySQL avec ce qui suit schéma :
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
où id est l'identifiant unique, type est le type d'objet (par exemple, foo, bar) et propertyVal est une valeur de propriété.
La tâche consiste à créer PHP objets des types dynamiques définis dans la colonne type et remplissez-les avec les données de la ligne correspondante dans le tableau.
Le Solution :
En PHP, vous pouvez créer dynamiquement un objet d'un type donné en utilisant la syntaxe suivante :
$type = 'myClass'; $instance = new $type;
En supposant que la requête renvoie un tableau associatif, vous pouvez attribuer des propriétés à l'objet en utilisant un similaire syntaxe :
foreach ($row as $property => $value) { $instance->$property = $value; }
Implémentation :
Exemple :
$row = $result->fetch_assoc(); $type = $row['type']; unset($row['type']); $instance = new $type; foreach ($row as $property => $value) { $instance->$property = $value; }
Cette approche permet de créez des objets dynamiques à partir d'une base de données sans avoir besoin de frameworks ORM complexes. C'est une solution simple et efficace pour de nombreux scénarios dans lesquels vous devez représenter les données d'une base de données sous forme d'objets dynamiques dans votre code PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!