Besoin précisions sur modèle MVC de Joomla et la définition des objets

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Besoin précisions sur modèle MVC de Joomla et la définition des objets

    Bonjour,
    Je m'essaye à développer un composant permettant de consulter des données stockées en base.
    J'ai donc suivi le tuto "officiel" que l'on trouve ici
    Je débute en programmation, mais d'après ce que je sais du modèle MVC, les différentes couches permettent de dispatcher les responsabilités. J'avoue être surpris (en fait complètement dérouté) quand je trouve de l'accès aux données dans le modèle comme là par ex :
    Code:
    class HelloWorldModelHelloWorlds extends JModelList
    {
    	/**
    	 * Method to build an SQL query to load the list data.
    	 *
    	 * @return      string  An SQL query
    	 */
    	protected function getListQuery()
    	{
    		// Initialize variables.
    		$db    = JFactory::getDbo();
    		$query = $db->getQuery(true);
     
    		// Create the base select statement.
    		$query->select('*')
                    ->from($db->quoteName('#__helloworld'));
     
    		return $query;
    	}
    }
    De ce que j'ai compris en lisant la doc, c'est le principe du "Active record pattern"
    => Un objet = une table et "en gros" les attributs de l'objets sont équivalents aux champs de la table associée.
    Quid des objets complexes ? = hydratés par pls tables ?
    J'arrive à me débrouiller pour récupérer des listes d'objets simples (de type JModelList comme l'exemple ci-dessus) avec cette méthode "getListQuery()".
    Mais je n'arrive pas à me dépatouiller avec les objet de tye JModelAdmin par ex.
    Comment récupérer un objet dont une des propriétés est stockée dans une table et une autre dans une autre table ?
    => Passer par des objets intermédiaires ? OK ! Mais là encore, comment déclarer ça ?!?
    visiblement pas avec getTable :/
    Ca donnerait quoi avec une voiture ?
    Code:
    class Voiture {
    
        private $roues;
        private $volant;
        //HELP ME ici????
    }
    
    class Roue {
    
        public function getTable($type = 'Roue', $prefix = 'RoueTable', $config = array()) {
            return JTable::getInstance($type, $prefix, $config);
        }
    
    }
    
    class Volant {
    
        public function getTable($type = 'Volant', $prefix = 'VolantTable', $config = array()) {
            return JTable::getInstance($type, $prefix, $config);
        }
    
    }
    Merci de votre aide !

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X