J platform

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

description

Joomla! Platform 11.4Joomla! Day Alger - 18 Avril 2012

Transcript of J platform

Page 1: J platform

Présenter par : SAM Bilel

Joomla! Platform Pourquoi l’API Joomla!

18/04/2012 Joomla! Day Alger 1

Page 2: J platform

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

Page 3: J platform

Sommaire Introduction

Définitions

The Platform

jFactory

Q & R

18/04/2012 Joomla! Day Alger 3

Page 4: J platform

Introduction

18/04/2012 Joomla! Day Alger 4

Page 5: J platform

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

Page 6: J platform

Définitions

18/04/2012 Joomla! Day Alger 6

Page 7: J platform

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

Page 8: J platform

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

Page 9: J platform

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

Page 10: J platform

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

Page 11: J platform

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

Page 12: J platform

The Platform

18/04/2012 Joomla! Day Alger 12

Page 13: J platform

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

Page 14: J platform

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

Page 15: J platform

jFactory

18/04/2012 Joomla! Day Alger 15

Page 16: J platform

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

Page 17: J platform

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

Page 18: J platform

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

Page 19: J platform

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

Page 20: J platform

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

Page 21: J platform

getDBO(4) ?

• Pour afficher le prefix des tables

• $db =& JFactory::getDBO();

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

18/04/2012 Joomla! Day Alger 21

Page 22: J platform

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

Page 23: J platform

The Question ?

• Pourquoi choisir Joomla! Platform ?

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

18/04/2012 Joomla! Day Alger 23

Page 24: J platform

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 Joomla! Day Alger 24

Page 25: J platform

QR ?

18/04/2012 Joomla! Day Alger 25