Download - Joomla! Platform - Pourquoi l’API Joomla!

Transcript
Page 1: Joomla! Platform - Pourquoi l’API Joomla!

Présenter par : SAM Bilel

Joomla! Platform Pourquoi l’API Joomla!

18/04/2012 Joomla! Day Alger 1

Page 2: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 2

I’m?• Master IA • Membre fondateur de la JUG-algeria• Co-founder de

• imaginical inc • Voxel Solution

• Modérateur sur le forum JUG-algeria depuis Janvier 2012.

18/04/2012

Page 3: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 3

SommaireIntroductionDéfinitions The PlatformjFactoryQ & R

18/04/2012

Page 4: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 4

Introduction

18/04/2012

Page 5: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 5

Joomla! CMS

Joomla! 1.7 Avec la séparation du framework Joomla! ... du CMS Joomla!

• Joomla! CMS est désormais juste une application qui utilise la Joomla! Platform

Joomla! =• Joomla! CMS, pour le CMS Joomla! tel que les utilisateurs

l'utilisent depuis ses débuts,• Joomla! Platform, pour la partie Framework de Joomla! qui

devient désormais un framework autonome.

18/04/2012

Page 6: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 6

Définitions

18/04/2012

Page 7: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 7

Framework (1)

• Un framework est un kit de composants logiciels structurels, qui définissent les fondations ainsi que les grandes lignes de l’organisation de tout ou d’une partie d'un logiciel (architecture).

• Il se distingue d'une simple bibliothèque logicielle principalement par :

• Son caractère générique, faiblement spécialisé, contrairement à certaines bibliothèques.

• Peut à ce titre être constitué de plusieurs bibliothèques chacune spécialisée dans un domaine.

• Peut néanmoins être spécialisé, sur un langage particulier, une plateforme spécifique, un domaine particulier (Reporting, mapping, etc).

18/04/2012

Page 8: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 8

Framework (2)

• Il impose par sa construction une certaine architecture logicielle voire conduisant le développeur à respecter certains patterns; Les bibliothèques le constituant sont alors organisées selon le même paradigme

• Les frameworks sont donc conçus et utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des middleware et des composants logiciels.

18/04/2012

Page 9: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 9

Api (1)

• Application Programming Interface • Une interface de programmation fournie par

un programme informatique. • Elle permet l'interaction des programmes les

uns avec les autres, de manière analogue à une interface homme-machine.

18/04/2012

Page 10: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 10

Api (2)

• Du point de vue technique une API est un ensemble de fonctions, procédures ou classes mises à disposition par une bibliothèque logicielle, un système d'exploitation ou un service.

• La connaissance des API est indispensable à l'interopérabilité entre les composants logiciels.

18/04/2012

Page 11: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 11

Api || FrameworkUn framework peut inclure des programmes de soutien, des bibliothèques de code , un langage de script du logiciel, ou d'autres pour aider à développer et coller ensemble les différents composants d'un projet de logiciel.

Diverses parties du cadre peut être exposée à travers une interface de programmation d'application (API).

18/04/2012

Page 12: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 12

The Platform

18/04/2012

Page 13: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 13

Joomla! le framework ?

• la dernière version de Joomla! Platform est sortie le 4 janvier 2012.

• Un élément important de l'architecture Joomla. Il est basé sur les designs patterns (Modèle de concept OO) qui rendent le noyau Joomla très maintenable et facilement extensible.

• 1/3 des développeurs tiers bénéfices de la richesse et des fonctionnalités facilement accessibles de ce Framework.

18/04/2012

Page 14: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 14

Joomla! le framework ?Le projet dans sa version 11.4 est constitué de :

• Classes : 270 (231 dans platform 11.3)• Méthodes : 2000 (1946 dans platform 11.3)• Lignes de code : 25970 (24717 dans platform 11.3)• Commentaires : 62155 (62154 dans platform 11.3)• Lignes vides : 11877 (11800 dans platform 11.3)

• Joomla! Platform 11.4 Stable (4 Janvier 2012)Le dépot • git://github.com/joomla/joomla-platform.git

18/04/2012

Page 15: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 15

jFactory

18/04/2012

Page 16: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 16

La classe jFactory (1)• Une dizaine de méthodes sont associées à à la classe Jfactory

• getUser() : Retourne les informations d’un utilisateur connecté• getDBO() : Permet l’accès et la récupération de la base de donnée • getEditor() : Permet d’accéder à l’éditeur sélectionné de joomla (par exemple TinyMCE)• getConfig() : Permet d’accéder aux différentes configurations du site • getURI() : Retourne des information concernant l’url : actuelle, de base…• getLanguage() : Retourne le langage actuel • getDate() : Retourne la date et l’heure actuelle • getDocument() :Manipule les propriétés du document : Title, Metadata, Description…• getApplication() : Renvoie une information sur l’objet • getTemplate() : Récupère l’objet template • getSession() : Permet de créer une session • getACL() : Gère les droits d’accès aux objets • getMailer() , getCache() , getXMLParser() : …

18/04/2012

Page 17: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 17

La classe jFactory (2)

• getUser() : Retourne les informations d’un utilisateur connecté.

• getDBO() : Permet l’accès et la récupération des données à partie de la BD.

18/04/2012

Page 18: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 18

getDBO(1)?Se connecter à la base de données• $database = &JFactory::getDBO();

On insère dans la table users et dans le champ username, le pseudo Joomla. • $database->setQuery("INSERT INTO #__users

(`username`) VALUES ('Joomla')");

Exécution de la requête :• $database->query();

18/04/2012

Page 19: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 19

getDBO(2)?Pour sélectionner le pseudo où le id = 1• $query = "SELECT username FROM #__user

WHERE id=1";

Exécution de la requête :• $database->setQuery($query);

Ce qui suit écrira Joomla si l'utilisateur avec l'id 1 dans ma base s'appelle Joomla • echo $database->LoadResult();

<!– pour une requête qui renvoie un résultat sur une ligne -->18/04/2012

Page 20: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 20

getDBO(3)?Pour une requête qui renvoie plusieurs résultats on utilise loadObjectList :

• $query = "SELECT * FROM #__categories"; • $database->setQuery($query);

On charge les résultats de la requête dans l'objet $rows

• $rows = $database->loadObjectList();

foreach ($rows as $row) { echo $row->title ." : ". $row->description."<br />"; }

<!– On affiche le titre et la description de chaque tuple -->18/04/2012

Page 21: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 21

getDBO(4) ?

• Pour afficher le prefix des tables

• $db =& JFactory::getDBO(); • echo "Database prefix is : " . $db->getPrefix();

18/04/2012

Page 22: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 22

getUser() ?• $UserInfo =& JFactory::getUser();

Pour affichera l'id de l'utilisateur • $UserInfo->id; Le nom de l'utilisateur • $UserInfo->name;

• username, email, password , usertype, registerDate , lastvisitDate , block , guest, gid, …

18/04/2012

Page 23: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 23

The Question ?

• Pourquoi choisir Joomla! Platform ?

• Peut-on utiliser l’API Joomla! en externe de Joomla! ?

18/04/2012

Page 24: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 24

Liens utiles ?• http://api.joomla.org• http://docs.joomla.org• http://code-joomla.blogspot.com/2011/05/la-classe-

jfactory.html• http://blog.netassopro.com/compte-rendu-du-joomladay-

2010• http://developer.joomla.org/news/380-version-11-4-of-the-

joomla-platform-released.html

18/04/2012

Page 25: Joomla! Platform - Pourquoi l’API Joomla!

Joomla! Day Alger 25

QR ?

18/04/2012