Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
J platform
1. Joomla! Platform
Pourquoi l’API Joomla!
Présenter par : SAM Bilel
18/04/2012 Joomla! Day Alger 1
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 Joomla! Day Alger 2
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 Joomla! Day Alger 5
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 Joomla! Day Alger 7
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 Joomla! Day Alger 8
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 Joomla! Day Alger 9
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 Joomla! Day Alger 10
11. Api || Framework
Un 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 Joomla! Day Alger 11
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 Joomla! Day Alger 13
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 Joomla! Day Alger 14
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 Joomla! Day Alger 16
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 Joomla! Day Alger 17
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 Joomla! Day Alger 18
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 Joomla! Day Alger 19
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 Joomla! Day Alger 20
21. getDBO(4) ?
• Pour afficher le prefix des tables
• $db =& JFactory::getDBO();
• echo "Database prefix is : " . $db->getPrefix();
18/04/2012 Joomla! Day Alger 21
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 Joomla! Day Alger 22
23. The Question ?
• Pourquoi choisir Joomla! Platform ?
• Peut-on utiliser l’API Joomla! en externe
de Joomla! ?
18/04/2012 Joomla! Day Alger 23