SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Quoi de neuf dans ZF 1.10 ? Mickaël Perraud Contributeur Zend Framework Responsable documentation française
En bref ,[object Object],[object Object],[object Object],[object Object]
En bref ,[object Object],[object Object],[object Object],[object Object]
Améliorations Building incrementally
Améliorations ,[object Object],Insert->Header & Footer
Améliorations ,[object Object],Insert->Header & Footer
Améliorations ,[object Object],Insert->Header & Footer
Améliorations ,[object Object],Insert->Header & Footer
Améliorations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Améliorations ,[object Object],[object Object],[object Object],Insert->Header & Footer
Améliorations ,[object Object],Insert->Header & Footer
Améliorations ,[object Object],Insert->Header & Footer
Améliorations ,[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Améliorations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Améliorations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Améliorations
Améliorations
Améliorations
Nouveaux composants Extending an already extensible and extensive framework
Zend_Barcode ,[object Object],[object Object]
$renderer  = Zend_Barcode::factory( 'code39' ,   // type de code-barres 'image' ,   // image ou PDF array (   // options du code-barres 'text'   =>   'ZENDFRAMEWORK' , ), array (   // options du rendu 'imageType'   =>   'png' , ) ); $image   =   $renderer ->draw(); imagepng ( $image ,   __DIR__ .   '/barcode.png' );
$validator  = new    Zend_Validate_Barcode( 'CODE39' ); if   ( $validator ->isValid( $input )) { // Texte de code-barres valide }   else   { //  Texte de code-barres invalide }
Zend_Cache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RewriteCond %{DOCUMENT_ROOT}/cached/%   {REQUEST_URI}.html -f RewriteRule .* cached/%{REQUEST_URI}.%1 [L]
$options  =  array ( 'public_dir'   =>     APPLICATION_PATH .   '/../public/cache' , ); // Où $manager est une instance de Zend_Cache_Manager $manager ->setTemplateOptions( 'page' ,   $options ); $cache   =   $manager ->getCache( 'page' ); // Dans une action de contrôleur : public   function   preDispatch() { $this ->_helper->cache( // mettre en cache ces actions : array ( 'foo' ,   'bar' ,   'baz' ), // utilise cette balise : array ( $this ->_request->getControllerName()), // avec cette extension : 'html' ); }
$manager  = new Zend_Cache_Manager; $dbCache   =   array ( 'frontend'   =>   array ( 'name'   =>   'Core' , 'options'   =>   array ( 'lifetime'   =>   3600, 'automatic_serialization'   =>   true, ) ), 'backend'   =>   array ( 'name'   =>   'Core' , 'options'   =>   array ( 'cache_dir'   =>     APPLICATION_PATH .   '/../data/cache/db' , ), ), ); $manager ->setCacheTemplate( 'db' ,   $dbCache ); $cache   =   $manager ->getCache( 'db' );
Zend_Feed_Writer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
$feed  = new Zend_Feed_Writer_Feed; $feed ->setTitle( 'ZF Webinars' ) ->setLink(   'http://framework.zend.com/webinars/atom' ,     'atom' ) ->addAuthor( array ( 'name'   =>   'ZF DevTeam' , 'email'   =>   'fw-general@lists.zend.com' , 'uri'   =>   'http://framework.zend.com/' , )) ->setDateModified( strtotime (   '2010-03-17 12:00:00' ));
$entry  =  $feed ->createEntry(); $entry ->setLink(   'http://framework.zend.com/webinars/2010-03-17' ) ->addAuthor( array ( 'name'   =>   'Ralph Schindler' , 'email'   =>   'ralph.schindler@zend.com' , 'uri'   =>   'http://framework.zend.com/' , )) ->setDateModified( strtotime (   '2010-03-17 12:00:00' )) ->setDateCreated( strtotime (   '2010-03-15 08:39:00' )); $output   =   $feed ->export( 'atom' );
Zend_Feed_Pubsubhubbub ,[object Object],[object Object],[object Object],[object Object]
$publisher  = new Zend_Feed_Pubsubhubbub_Publisher; $publisher ->addHubUrls( array ( 'http://pubsubhubbub.appspot.com/' , 'http://wordpress.org/extend/plugins/pushpress/' , )) ->addUpdatedTopicUrls( array ( 'http://framework.zend.com/webinars/atom' , )); // Notifier $publisher ->notifyAll();
$storage  = new Zend_Feed_Pubsubhubbub_Model_Subscription; $subscriber   =   new Zend_Feed_Pubsubhubbub_Subscriber; $subscriber ->setStorage( $storage ) ->addHubUrl(   'http://pubsubhubbub.appspot.com/' ) ->setTopicUrl(   'http://framework.zend.com/webinars/atom' ) ->setCallbackUrl(   'http://www.mydomain.com/hubbub/callback' ) ->subscribeAll();
$callback  = new   Zend_Feed_Pubsubhubbub_Subscriber_Callback; $callback ->setStorage( $storage ); $callback ->handle(); $callback ->sendResponse(); if   ( $callback ->hasFeedUpdate()) { $feedString   =   $callback ->getFedUpdate(); // démarrage du processus ! }
Zend_Markup ,[object Object],[object Object],[object Object],[object Object],$bbcode  = Zend_Markup::factory( 'Bbcode' ); echo   $bbcode ->render( $someBbCodeMarkup ); $textile   =   Zend_Markup::factory( 'Textile' ); echo   $textile ->render( $someTextileMarkup );
Zend_Oauth ,[object Object]
$config  =  array ( 'callbackUrl'   =>   'http://example.com/callback' , 'siteUrl'   =>   'http://twitter.com/oauth' , 'consumerKey'   =>   'gg3DsFTW9OU9eWPnbuPzQ' , 'consumerSecret'   =>   'tFB0fyWLSMf74lkEu9FTyoHXcazOWpbrAjTCCK48A' ); $consumer   =   new   Zend_Oauth_Consumer( $config ); // Récupération du jeton de la requête : $token   =   $consumer ->getRequestToken(); // Se souvenir du jeton : $session   =   new   Zend_Session_Namespace( 'oauth' ); $session ->token   =   serialize ( $token ); // Rediriger vers le fournisseur Oauth : $consumer ->redirect();
// A l’intérieur d’une action de contrôleur en // considérant le consommateur et la session // paramètrée comme ci-dessus $request   =   $this ->getRequest(); if   (! $request ->isGet() || !isset( $session ->token) ) { // Gestion des erreurs ! } $token   =   $consumer ->getAccessToken( $request ->getQuery(), unserialize ( $session ->token) ); // Utilisation du jeton ! $client   =   $token ->getHttpClient(); // ...
Zend_Serializer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
$serializer  = Zend_Serializer::factory( 'Json' ); $serialized   =   $serializer -> serialize ( $data ); $unserialized   =   $serializer -> unserialize ( $serialized );
Nouveaux services Extending your reach into the cloud
New Service - LiveDocx ,[object Object],[object Object],Insert->Header & Footer
Nouveau service - LiveDocx Insert->Header & Footer
Nouveau service - LiveDocx Insert->Header & Footer
Nouveau service - LiveDocx ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Nouveau service - DeveloperGarden ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Nouveau service - DeveloperGarden ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Nouveau service - DeveloperGarden ,[object Object],Insert->Header & Footer
Nouveau service - WindowsAzure ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Insert->Header & Footer
Nouveau service– WindowsAzure Insert->Header & Footer
Mises à jour de la documentation Helping you educate yourself
Documentation versionnée ,[object Object],[object Object]
Nouveau moteur de rendu ,[object Object],[object Object],[object Object]
Tutoriaux ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Notes de migration ,[object Object],[object Object]
Commentaires ,[object Object]
Liens ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Merci ! ,[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Kristen Le Liboux
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear phpDamien Seguy
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
 
Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsAlexandre Salomé
 
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPressAtelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPressIZZA Samir
 
PHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaPHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaMahdi Ben Alaya
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHPJean-Marie Renouard
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JSAntoine Rey
 
jQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesjQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesRémi Prévost
 

Was ist angesagt? (20)

Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 
Cours php
Cours phpCours php
Cours php
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
Ns python-flask
Ns python-flaskNs python-flask
Ns python-flask
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explications
 
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPressAtelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
 
Chap2
Chap2Chap2
Chap2
 
PHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaPHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben Alaya
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Ns python web 1
Ns python web 1Ns python web 1
Ns python web 1
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 
jQuery — fonctionnalités avancées
jQuery — fonctionnalités avancéesjQuery — fonctionnalités avancées
jQuery — fonctionnalités avancées
 

Andere mochten auch

Découvrez le noyau d'internationalisation du Zend Framework
Découvrez le noyau d'internationalisation du Zend FrameworkDécouvrez le noyau d'internationalisation du Zend Framework
Découvrez le noyau d'internationalisation du Zend FrameworkMickael Perraud
 
Introduction à Zend Framework 2
Introduction à Zend Framework 2Introduction à Zend Framework 2
Introduction à Zend Framework 2Mickael Perraud
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Mickael Perraud
 
Développement sécurisé d'applications avec Zend Framework
Développement sécurisé d'applications avec Zend FrameworkDéveloppement sécurisé d'applications avec Zend Framework
Développement sécurisé d'applications avec Zend FrameworkMickael Perraud
 
Tester les applications Zend Framework
Tester les applications Zend FrameworkTester les applications Zend Framework
Tester les applications Zend FrameworkMickael Perraud
 

Andere mochten auch (6)

Découvrez le noyau d'internationalisation du Zend Framework
Découvrez le noyau d'internationalisation du Zend FrameworkDécouvrez le noyau d'internationalisation du Zend Framework
Découvrez le noyau d'internationalisation du Zend Framework
 
Introduction à Zend Framework 2
Introduction à Zend Framework 2Introduction à Zend Framework 2
Introduction à Zend Framework 2
 
Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)Présentation de DBAL en PHP (Nantes)
Présentation de DBAL en PHP (Nantes)
 
Développement sécurisé d'applications avec Zend Framework
Développement sécurisé d'applications avec Zend FrameworkDéveloppement sécurisé d'applications avec Zend Framework
Développement sécurisé d'applications avec Zend Framework
 
Tester les applications Zend Framework
Tester les applications Zend FrameworkTester les applications Zend Framework
Tester les applications Zend Framework
 
Zf2 ce-qui-va-changer
Zf2 ce-qui-va-changerZf2 ce-qui-va-changer
Zf2 ce-qui-va-changer
 

Ähnlich wie Quoi de neuf dans Zend Framework 1.10 ?

Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Ghilas BELHADJ
 
Création de themes WordPress
Création de themes WordPressCréation de themes WordPress
Création de themes WordPressChi Nacim
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
Jump Camp - HTML5
Jump Camp - HTML5Jump Camp - HTML5
Jump Camp - HTML5chaudavid
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à SinatraRémi Prévost
 
démonstration code source site web ecole.docx
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docxVincentBweka
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en gokader15
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en goAbdoul Kader Sarambe
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP NextSQLI
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615JUG Toulouse
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Alexis Sukrieh
 

Ähnlich wie Quoi de neuf dans Zend Framework 1.10 ? (20)

Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
Création de Thème WordPress - Ghilas BELHADJ - Semaine du Web 2013
 
Création de themes WordPress
Création de themes WordPressCréation de themes WordPress
Création de themes WordPress
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
Jump Camp - HTML5
Jump Camp - HTML5Jump Camp - HTML5
Jump Camp - HTML5
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à Sinatra
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
démonstration code source site web ecole.docx
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docx
 
Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
iTunes Stats
iTunes StatsiTunes Stats
iTunes Stats
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
 
Apprenez le jQuery
Apprenez le jQueryApprenez le jQuery
Apprenez le jQuery
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615
 
Cours Php
Cours PhpCours Php
Cours Php
 
Cours Php
Cours PhpCours Php
Cours Php
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
 

Quoi de neuf dans Zend Framework 1.10 ?

  • 1. Quoi de neuf dans ZF 1.10 ? Mickaël Perraud Contributeur Zend Framework Responsable documentation française
  • 2.
  • 3.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 19. Nouveaux composants Extending an already extensible and extensive framework
  • 20.
  • 21. $renderer = Zend_Barcode::factory( 'code39' , // type de code-barres 'image' , // image ou PDF array ( // options du code-barres 'text' => 'ZENDFRAMEWORK' , ), array ( // options du rendu 'imageType' => 'png' , ) ); $image = $renderer ->draw(); imagepng ( $image , __DIR__ . '/barcode.png' );
  • 22. $validator = new Zend_Validate_Barcode( 'CODE39' ); if ( $validator ->isValid( $input )) { // Texte de code-barres valide } else { // Texte de code-barres invalide }
  • 23.
  • 24. RewriteCond %{DOCUMENT_ROOT}/cached/% {REQUEST_URI}.html -f RewriteRule .* cached/%{REQUEST_URI}.%1 [L]
  • 25. $options = array ( 'public_dir' => APPLICATION_PATH . '/../public/cache' , ); // Où $manager est une instance de Zend_Cache_Manager $manager ->setTemplateOptions( 'page' , $options ); $cache = $manager ->getCache( 'page' ); // Dans une action de contrôleur : public function preDispatch() { $this ->_helper->cache( // mettre en cache ces actions : array ( 'foo' , 'bar' , 'baz' ), // utilise cette balise : array ( $this ->_request->getControllerName()), // avec cette extension : 'html' ); }
  • 26. $manager = new Zend_Cache_Manager; $dbCache = array ( 'frontend' => array ( 'name' => 'Core' , 'options' => array ( 'lifetime' => 3600, 'automatic_serialization' => true, ) ), 'backend' => array ( 'name' => 'Core' , 'options' => array ( 'cache_dir' => APPLICATION_PATH . '/../data/cache/db' , ), ), ); $manager ->setCacheTemplate( 'db' , $dbCache ); $cache = $manager ->getCache( 'db' );
  • 27.
  • 28. $feed = new Zend_Feed_Writer_Feed; $feed ->setTitle( 'ZF Webinars' ) ->setLink( 'http://framework.zend.com/webinars/atom' , 'atom' ) ->addAuthor( array ( 'name' => 'ZF DevTeam' , 'email' => 'fw-general@lists.zend.com' , 'uri' => 'http://framework.zend.com/' , )) ->setDateModified( strtotime ( '2010-03-17 12:00:00' ));
  • 29. $entry = $feed ->createEntry(); $entry ->setLink( 'http://framework.zend.com/webinars/2010-03-17' ) ->addAuthor( array ( 'name' => 'Ralph Schindler' , 'email' => 'ralph.schindler@zend.com' , 'uri' => 'http://framework.zend.com/' , )) ->setDateModified( strtotime ( '2010-03-17 12:00:00' )) ->setDateCreated( strtotime ( '2010-03-15 08:39:00' )); $output = $feed ->export( 'atom' );
  • 30.
  • 31. $publisher = new Zend_Feed_Pubsubhubbub_Publisher; $publisher ->addHubUrls( array ( 'http://pubsubhubbub.appspot.com/' , 'http://wordpress.org/extend/plugins/pushpress/' , )) ->addUpdatedTopicUrls( array ( 'http://framework.zend.com/webinars/atom' , )); // Notifier $publisher ->notifyAll();
  • 32. $storage = new Zend_Feed_Pubsubhubbub_Model_Subscription; $subscriber = new Zend_Feed_Pubsubhubbub_Subscriber; $subscriber ->setStorage( $storage ) ->addHubUrl( 'http://pubsubhubbub.appspot.com/' ) ->setTopicUrl( 'http://framework.zend.com/webinars/atom' ) ->setCallbackUrl( 'http://www.mydomain.com/hubbub/callback' ) ->subscribeAll();
  • 33. $callback = new Zend_Feed_Pubsubhubbub_Subscriber_Callback; $callback ->setStorage( $storage ); $callback ->handle(); $callback ->sendResponse(); if ( $callback ->hasFeedUpdate()) { $feedString = $callback ->getFedUpdate(); // démarrage du processus ! }
  • 34.
  • 35.
  • 36. $config = array ( 'callbackUrl' => 'http://example.com/callback' , 'siteUrl' => 'http://twitter.com/oauth' , 'consumerKey' => 'gg3DsFTW9OU9eWPnbuPzQ' , 'consumerSecret' => 'tFB0fyWLSMf74lkEu9FTyoHXcazOWpbrAjTCCK48A' ); $consumer = new Zend_Oauth_Consumer( $config ); // Récupération du jeton de la requête : $token = $consumer ->getRequestToken(); // Se souvenir du jeton : $session = new Zend_Session_Namespace( 'oauth' ); $session ->token = serialize ( $token ); // Rediriger vers le fournisseur Oauth : $consumer ->redirect();
  • 37. // A l’intérieur d’une action de contrôleur en // considérant le consommateur et la session // paramètrée comme ci-dessus $request = $this ->getRequest(); if (! $request ->isGet() || !isset( $session ->token) ) { // Gestion des erreurs ! } $token = $consumer ->getAccessToken( $request ->getQuery(), unserialize ( $session ->token) ); // Utilisation du jeton ! $client = $token ->getHttpClient(); // ...
  • 38.
  • 39. $serializer = Zend_Serializer::factory( 'Json' ); $serialized = $serializer -> serialize ( $data ); $unserialized = $serializer -> unserialize ( $serialized );
  • 40. Nouveaux services Extending your reach into the cloud
  • 41.
  • 42. Nouveau service - LiveDocx Insert->Header & Footer
  • 43. Nouveau service - LiveDocx Insert->Header & Footer
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Nouveau service– WindowsAzure Insert->Header & Footer
  • 50. Mises à jour de la documentation Helping you educate yourself
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.