SlideShare une entreprise Scribd logo
Joomla! Platform
                                 Pourquoi l’API Joomla!




                                 Présenter par :   SAM Bilel
18/04/2012   Joomla! Day Alger                             1
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
Sommaire
 Introduction
 Définitions
 The Platform
 jFactory
 Q&R




18/04/2012      Joomla! Day Alger   3
Introduction


18/04/2012       Joomla! Day Alger   4
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
Définitions


18/04/2012      Joomla! Day Alger   6
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
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
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
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
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
The Platform


18/04/2012       Joomla! Day Alger   12
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
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
jFactory


18/04/2012     Joomla! Day Alger   15
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
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
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
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
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
getDBO(4) ?
 • Pour afficher le prefix des tables

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




18/04/2012                     Joomla! Day Alger            21
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
The Question ?

 • Pourquoi choisir Joomla! Platform ?



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



18/04/2012            Joomla! Day Alger        23
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
QR ?




18/04/2012   Joomla! Day Alger   25

Contenu connexe

Similaire à Joomla! Platform - Pourquoi l’API Joomla!

Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
Drupagora linagora-20111110
Drupagora linagora-20111110Drupagora linagora-20111110
Drupagora linagora-20111110
Michel-Marie Maudet
 
Utiliser Joomla 3 et Bootstrap 3 depuis une application externe
Utiliser Joomla 3 et Bootstrap 3 depuis une application externeUtiliser Joomla 3 et Bootstrap 3 depuis une application externe
Utiliser Joomla 3 et Bootstrap 3 depuis une application externe
Web21 France
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
Youness Boukouchi
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
med_univ78
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
Youness Boukouchi
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
PHPotes: Codeigniter
PHPotes: CodeigniterPHPotes: Codeigniter
PHPotes: Codeigniter
AnDaolVras
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
Boubker ABERWAG
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référence
LINAGORA
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
Alphorm
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
Hugo Hamon
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
qdelance
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
DNG Consulting
 
Annotations pour les Geeks
Annotations pour les GeeksAnnotations pour les Geeks
Annotations pour les Geeks
jviet
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
VISEO
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
Sabri Bouchlema
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
PriscilleGANKIA
 
Créer un template pour Joomla 2.5
Créer un template pour Joomla 2.5Créer un template pour Joomla 2.5
Créer un template pour Joomla 2.5
Com'3elles - www.com3elles.com
 

Similaire à Joomla! Platform - Pourquoi l’API Joomla! (20)

Play Framework
Play FrameworkPlay Framework
Play Framework
 
Drupagora linagora-20111110
Drupagora linagora-20111110Drupagora linagora-20111110
Drupagora linagora-20111110
 
Utiliser Joomla 3 et Bootstrap 3 depuis une application externe
Utiliser Joomla 3 et Bootstrap 3 depuis une application externeUtiliser Joomla 3 et Bootstrap 3 depuis une application externe
Utiliser Joomla 3 et Bootstrap 3 depuis une application externe
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
PHPotes: Codeigniter
PHPotes: CodeigniterPHPotes: Codeigniter
PHPotes: Codeigniter
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référence
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Annotations pour les Geeks
Annotations pour les GeeksAnnotations pour les Geeks
Annotations pour les Geeks
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
Créer un template pour Joomla 2.5
Créer un template pour Joomla 2.5Créer un template pour Joomla 2.5
Créer un template pour Joomla 2.5
 

Joomla! Platform - Pourquoi l’API Joomla!

  • 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
  • 3. Sommaire Introduction Définitions The Platform jFactory Q&R 18/04/2012 Joomla! Day Alger 3
  • 4. Introduction 18/04/2012 Joomla! Day Alger 4
  • 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
  • 6. Définitions 18/04/2012 Joomla! Day Alger 6
  • 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
  • 12. The Platform 18/04/2012 Joomla! Day Alger 12
  • 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
  • 15. jFactory 18/04/2012 Joomla! Day Alger 15
  • 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
  • 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 Joomla! Day Alger 24
  • 25. QR ? 18/04/2012 Joomla! Day Alger 25