25
Présenter par : SAM Bilel Joomla! Platform Pourquoi l’API Joomla! 18/04/2012 Joomla! Day Alger 1

Joomla! Platform - Pourquoi l’API Joomla!

Embed Size (px)

DESCRIPTION

Joomla! Platform Pourquoi l’API Joomla! C'est une présentation que j'ai fait lors de la 2eme édition de la semaine de web à Alger [événement Algeria 2.0] exactement lors de Joomla! Day Alger le 18 Avril 2012. J'ai essayé de présenter l'api d'une manière simple et efficace afin d'initier les règles de bases d'utilisation de cette api pour le public présent.

Citation preview

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