par
devlop78 » 02 mai 2011, 23:32
Ce dernier cas est plutot banale pour un framework de type Zend, du moins de la faible expérience que j'en ai. Par contre, à aucun moment le modèle n'a le dernier mot sur les données, et c'est pourtant lui le responsable. Effectivement, l'utilisation d'ORM, j'ai l'impression, induit une modification des données via l'ORM au sein même des controlleurs.
L'idée de départ était d'avoir un modèle Table_X. Celui-ci possède un ensemble de champs, et lié à chacun une liste de validateurs, filtres, etc. Mais c'est un peu RubixCube, si le controleur vient chercher les éléments, il peut très bien les modifier, et appeler une méthode du modèle pour modification des éléments, ce qui revient à prendre des risques de validation. Je reviendrais là dessus, mais finalement, une bonne organisation est peut-être mieux qu'une architecture trop rigide. L'idée étendue est que le validateur ne soit plus dans le formulaire controleur mais soit rajouté une fois le formulaire transmis au modèle. Mais les avantages que proposaient l'autre idée sont échangées avec d'autres. On peut aussi avoir des validateurs, et une fois au modèle, les redéfinir et faire une double verifications. Bref, j'ai tournée ça tout le temps, je n'ai eu aucune solution miracle si ce n'est celle de créer mon framework à partir d'une de ces idée. Blague ...
Finalement, mon soucis finale et cela a toujours été mon soucis est l'aspect global de "cohérence", et c'est ce qui m'avait tourné vers PostgreSQL même si j'avais renoncé. En fait, on peut subsituer le travail de l'un et de l'autre (modèle - sgbd). Soit les validations finales se font coté php, soit coté sgbd. Si ce n'est que le sgbdr, ... c'est vraiment son job. Et là, tout a repris un sens plus commode. Bien sûr ... organisation. Donc mon premier job va être de modéliser l'ensemble des tables, et de créer des règles pour chaque (ex: utilisateur doit respecter /^[a-z0-9_-@\.]$/i ). Puis de créer un repertoire sous models/ pour chaque table, donc lequel j'ai le "mapper", et les formulaires liés. Ca évite de se disperser.
C'est en gros le gros soucis de PHP. Les tutos de Google sont vieux, les méthodes vieilles ;p Et il est plus facile de trouver un tuto sur comment faire un code sale qu'un bon MVC. Sur d'autres langages, le soucis est un peu plus différent puisque dès le départ ils ont dit : pas de néophytes, pas de procédurale, voire pour certains (je ne vise personne ^^) : que du framework.
Cette dernière phrase est un peu troll : sans commentaire.
Ce dernier cas est plutot banale pour un framework de type Zend, du moins de la faible expérience que j'en ai. Par contre, à aucun moment le modèle n'a le dernier mot sur les données, et c'est pourtant lui le responsable. Effectivement, l'utilisation d'ORM, j'ai l'impression, induit une modification des données via l'ORM au sein même des controlleurs.
L'idée de départ était d'avoir un modèle Table_X. Celui-ci possède un ensemble de champs, et lié à chacun une liste de validateurs, filtres, etc. Mais c'est un peu RubixCube, si le controleur vient chercher les éléments, il peut très bien les modifier, et appeler une méthode du modèle pour modification des éléments, ce qui revient à prendre des risques de validation. Je reviendrais là dessus, mais finalement, une bonne organisation est peut-être mieux qu'une architecture trop rigide. L'idée étendue est que le validateur ne soit plus dans le formulaire controleur mais soit rajouté une fois le formulaire transmis au modèle. Mais les avantages que proposaient l'autre idée sont échangées avec d'autres. On peut aussi avoir des validateurs, et une fois au modèle, les redéfinir et faire une double verifications. Bref, j'ai tournée ça tout le temps, je n'ai eu aucune solution miracle si ce n'est celle de créer mon framework à partir d'une de ces idée. Blague ...
Finalement, mon soucis finale et cela a toujours été mon soucis est l'aspect global de "cohérence", et c'est ce qui m'avait tourné vers PostgreSQL même si j'avais renoncé. En fait, on peut subsituer le travail de l'un et de l'autre (modèle - sgbd). Soit les validations finales se font coté php, soit coté sgbd. Si ce n'est que le sgbdr, ... c'est vraiment son job. Et là, tout a repris un sens plus commode. Bien sûr ... organisation. Donc mon premier job va être de modéliser l'ensemble des tables, et de créer des règles pour chaque (ex: utilisateur doit respecter /^[a-z0-9_-@\.]$/i ). Puis de créer un repertoire sous models/ pour chaque table, donc lequel j'ai le "mapper", et les formulaires liés. Ca évite de se disperser.
C'est en gros le gros soucis de PHP. Les tutos de Google sont vieux, les méthodes vieilles ;p Et il est plus facile de trouver un tuto sur comment faire un code sale qu'un bon MVC. Sur d'autres langages, le soucis est un peu plus différent puisque dès le départ ils ont dit : pas de néophytes, pas de procédurale, voire pour certains (je ne vise personne ^^) : que du framework.
Cette dernière phrase est un peu troll : sans commentaire.