Sujet : Auto-chargement des modèles similaires aux paquetages

Bonjour smile .

Je développe mon site perso, qui sera principalement constitué d'un weblog. Pour simplifier au maximum le développement, j'ai créé différents modèles :

  • Weblog : Charge les données de la BDD, puis gère l'affichage de la pagination.

  • Weblog_Article : Charge un article précis depuis les données de Weblog, affiche l'article, et permet de créer un nouvel article.

  • Weblog_Comment : Identique à Weblog_Article, mais pour les commentaires.

En gros, c'est un peu comme une couche ORM améliorée, mais je ne sais pas m'en servir pour le moment, donc j'attends la documentation tongue .

Le tout est organisé selon le même type d'arborescence que les paquetages. Soit :
AccueilModel/
|_ Weblog/
…|_ Article.php
…|_ Comment.php
…|_ Weblog.php

Seulement, ça ne fonctionne pas. Et effectivement, en regardant la documentation API, la méthode autoloadModel ne fait pas la conversion comme les paquetages big_smile .

Je proposerais donc que le chargement automatique des modèles se fasse soit comme actuellement, soit selon le système des paquetages en fonction des fichiers trouvés, ou selon une entrée de configuration modifiable par le développeur. Ou carrément en faire le système par défaut tongue .
À moins que cela soit déjà en projet dans la prochaine version big_smile !

PS : Pour ma part, j'ai trouvé une autre solution : un dossier Model dans le dossier Framework. Il me suffit alors d'utiliser la fonction import() (par exemple import( 'Model.Weblog.~' ) ) smile .

Dernière fois dit par Torajio BANGANI (09 Aug. 2009 11:25)

2

Re : Auto-chargement des modèles similaires aux paquetages

Hey smile,

Ta solution en post-scriptum n'est pas bête et ta réflexion est tout à fait justifier.

Maintenant, je pose une question : est-ce que les modèles sont liés aux contrôleurs ? Car ce que j'ai en tête c'est de faire un auto-chargement pour les modèles liés à des contrôleurs et un auto-chargement pour des modèles partagés. Est-ce que ça te conviendrait ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Re : Auto-chargement des modèles similaires aux paquetages

Dans ce cas-ci, mes modèles sont liés au contrôleurs. Ils auront des jumeaux sur d'autres pages, mais ils ne seront pas parfaitement identique (en particulier pour les requêtes qui seront différentes).

Différencier les modèles liés et partagés me semble être une bonne solution.
Cependant, je pense que pour une meilleure souplesse (et pour éviter de s'embrouiller avec deux systèmes), ce pourrait être intéressant de placer les modèles partagés dans un dossier spécifiques du dossier des modèles. Étant donné que les répertoires des modèles liés sont de la forme (:Controller)Model/, il n'y aurait alors pas de conflits entre un répertoire Shared/, et un éventuel contrôleur SharedController.php smile .

Par contre, l'utilité de la solution que je viens de proposer est limité : c'est très pratique pour des librairies persos, mais à ce moment-là, on a autant les placer directement dans le dossier Framework/...

Enfin, c'est toi le chef, la solution que tu as proposé semble un bon compromis entre avoir quelque chose de puissant et quelque chose d'utile lol !

4

Re : Auto-chargement des modèles similaires aux paquetages

Je prends note de tout ça smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »