Votre avis sur la manière de procéder [CMF] - PHP - Programmation
MarshPosté le 27-05-2004 à 21:56:50
Bon, je suis en train de réaliser un CMF en php en me basant sur des concepts tirés de zope (pour ce qui ne connaissent pas, allez voir là: www.zope.org ).
Le problème, c'est qu'en php on est vachement plus limité de par le fait qu'il y a un pré-traitement plus important de la part d'apache. J'ai donc plusieurs choix à faire et j'aimerais des avis éclairés sur la question.
PREREQUIS: - le projet est écrit en php 5 et utilise un maximum les classes, avec tout ce que cela implique comme notions d'héritage, gestion d'exception, etc... (pour autant que php ne le gère) - la DB est en PostgreSQL car c'est un ORDBMS, ce qui s'avère particulièrement intéressant dans ce cadre. - Le but n'est pas de faire une bête de course, mais un code aussi propre et élégant que possible.
PROBLEMES NON RESOLUS:
- l'héritage dans l'arborescence: Zope dispose d'un héritage automatique dans son arborescence. Ce qui signifie que si un objet "A" existe en /, et qu'on appelle un object "A" dans /toto, s'il n'existe pas d'objet "A" dans /toto, c'est celui dans / qui est montré, l'url restant inchangée. C'est notamment très pratique pour la réalisation de template. Propositions: Pour le moment, j'ai envisagé deux solutions. La première consite à attraper toutes les erreurs par un 404.php qui regarderait dans la DB quel est l'objet dans le plus proche dans la hierarchie qui correspond à ce que l'on demande. La seconde c'est d'utiliser des symlink et de se créer ainsi une vue physique de l'arobrescence.
- la gestion de here/container: Pour ses template, Zope dipose de deux meta objets intéressant, "here" et "container". "here" est le répertoire où l'objet est appelé. Cela signifie que tous les chemin partant de lui sont relatifs à ce repertoire d'appel. "container", lui a le fonctionnement inverse, c'est le repertoire physique où se trouve l'objet qui est appellé. Pour reprendre l'exemple d'en haut, si "A" est appellé depuis /toto, container vaut / Propositions: pour le moment, je sèche là dessus.
Marsh Posté le 27-05-2004 à 21:56:50
Bon, je suis en train de réaliser un CMF en php en me basant sur des concepts tirés de zope (pour ce qui ne connaissent pas, allez voir là: www.zope.org ).
Le problème, c'est qu'en php on est vachement plus limité de par le fait qu'il y a un pré-traitement plus important de la part d'apache. J'ai donc plusieurs choix à faire et j'aimerais des avis éclairés sur la question.
PREREQUIS:
- le projet est écrit en php 5 et utilise un maximum les classes, avec tout ce que cela implique comme notions d'héritage, gestion d'exception, etc... (pour autant que php ne le gère)
- la DB est en PostgreSQL car c'est un ORDBMS, ce qui s'avère particulièrement intéressant dans ce cadre.
- Le but n'est pas de faire une bête de course, mais un code aussi propre et élégant que possible.
PROBLEMES NON RESOLUS:
- l'héritage dans l'arborescence:
Zope dispose d'un héritage automatique dans son arborescence. Ce qui signifie que si un objet "A" existe en /, et qu'on appelle un object "A" dans /toto, s'il n'existe pas d'objet "A" dans /toto, c'est celui dans / qui est montré, l'url restant inchangée. C'est notamment très pratique pour la réalisation de template.
Propositions: Pour le moment, j'ai envisagé deux solutions. La première consite à attraper toutes les erreurs par un 404.php qui regarderait dans la DB quel est l'objet dans le plus proche dans la hierarchie qui correspond à ce que l'on demande. La seconde c'est d'utiliser des symlink et de se créer ainsi une vue physique de l'arobrescence.
- la gestion de here/container:
Pour ses template, Zope dipose de deux meta objets intéressant, "here" et "container". "here" est le répertoire où l'objet est appelé. Cela signifie que tous les chemin partant de lui sont relatifs à ce repertoire d'appel. "container", lui a le fonctionnement inverse, c'est le repertoire physique où se trouve l'objet qui est appellé. Pour reprendre l'exemple d'en haut, si "A" est appellé depuis /toto, container vaut /
Propositions: pour le moment, je sèche là dessus.
Voila, vos commentaires sont les bienvenus.