Quoi de neuf dans Zend Framework 1.10 ?

2,710 views

Published on

Revue des nouveautés de Zend Framework 1.10

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,710
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
57
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Quoi de neuf dans Zend Framework 1.10 ?

  1. 1. Quoi de neuf dans ZF 1.10 ? Mickaël Perraud Contributeur Zend Framework Responsable documentation française
  2. 2. En bref <ul><li>Nombreuses améliorations </li></ul><ul><li>Nouveaux composants </li></ul><ul><li>Nouveaux services </li></ul><ul><li>Mise à jour de la documentation </li></ul>
  3. 3. En bref <ul><li>Nombreuses améliorations </li></ul><ul><li>Nouveaux composants </li></ul><ul><li>Nouveaux services </li></ul><ul><li>Mise à jour de la documentation </li></ul>
  4. 4. Améliorations Building incrementally
  5. 5. Améliorations <ul><li>Zend_Filter_Boolean </li></ul>Insert->Header & Footer
  6. 6. Améliorations <ul><li>Zend_Filter_Null </li></ul>Insert->Header & Footer
  7. 7. Améliorations <ul><li>Zend_Filter_Compress / Decompress </li></ul>Insert->Header & Footer
  8. 8. Améliorations <ul><li>Zend_Validate_Callback </li></ul>Insert->Header & Footer
  9. 9. Améliorations <ul><li>Zend_Validate_CreditCard </li></ul><ul><ul><li>Instituts de cartes de crédit supportés : </li></ul></ul><ul><ul><ul><li>American Express, China UnionPay </li></ul></ul></ul><ul><ul><ul><li>Diners Club Card Blanche, Diners Club International, Diners Club US & Canada </li></ul></ul></ul><ul><ul><ul><li>Discover Card, JCB, Laser, Maestro </li></ul></ul></ul><ul><ul><ul><li>MasterCard, Solo </li></ul></ul></ul><ul><ul><ul><li>Visa, Visa Electron </li></ul></ul></ul>Insert->Header & Footer
  10. 10. Améliorations <ul><li>Zend_Validate_PostCode </li></ul><ul><ul><li>Vous permet de déterminer si une valeur donnée est un code postal valide </li></ul></ul><ul><ul><li>Tient compte de la régionalisation </li></ul></ul>Insert->Header & Footer
  11. 11. Améliorations <ul><li>Zend_Log::factory() & Zend Monitor Writer Adapter </li></ul>Insert->Header & Footer
  12. 12. Améliorations <ul><li>Zend_Log::factory() & Zend Monitor Writer Adapter </li></ul>Insert->Header & Footer
  13. 13. Améliorations <ul><li>Améliorations de la performance de Zend_Pdf </li></ul><ul><li>Support de l’exception précédente avec Zend_Exception </li></ul><ul><li>Adaptation de Zend_Loader::loadClass() afin de respecter les recommendations de la PSR-0 ( http://groups.google.com/group/php-standards/web/psr-0-final-proposal ) </li></ul><ul><li>Mise à jour vers Dojo 1.4 </li></ul>Insert->Header & Footer
  14. 14. Améliorations <ul><li>Nouvelles ressources pour Zend_Application </li></ul><ul><ul><li>Cache m anager </li></ul></ul><ul><ul><li>Dojo </li></ul></ul><ul><ul><li>J q uery </li></ul></ul><ul><ul><li>Layout </li></ul></ul><ul><ul><li>Log </li></ul></ul><ul><ul><li>Mail </li></ul></ul><ul><ul><li>Multidb </li></ul></ul>Insert->Header & Footer
  15. 15. Améliorations <ul><li>Fournisseurs Zend_Tool </li></ul><ul><ul><li>Plus de scanner d’IncludePath– le chargement est explicite </li></ul></ul><ul><ul><li>Dossier Home & Configuration </li></ul></ul><ul><ul><li>Fournisseur DbAdapter </li></ul></ul><ul><ul><li>Fournisseur Layout </li></ul></ul><ul><ul><li>Echaffaudage basique (scaffolding) </li></ul></ul><ul><ul><ul><li>Fournisseur de Model </li></ul></ul></ul><ul><ul><ul><li>Fournisseur de Form </li></ul></ul></ul><ul><ul><li>Les projets à partir de la 1.10+ sont générés avec le préfixe Application_ dans le code et le bootstrap </li></ul></ul>Insert->Header & Footer
  16. 16. Améliorations
  17. 17. Améliorations
  18. 18. Améliorations
  19. 19. Nouveaux composants Extending an already extensible and extensive framework
  20. 20. Zend_Barcode <ul><li>Créer des code-barres et les rendre en PDF ou en images </li></ul><ul><li>Valider des valeurs de code-barres </li></ul>
  21. 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. 22. $validator = new Zend_Validate_Barcode( 'CODE39' ); if ( $validator ->isValid( $input )) { // Texte de code-barres valide } else { // Texte de code-barres invalide }
  23. 23. Zend_Cache <ul><li>Nouveau backend : Zend_Cache_Backend_Static </li></ul><ul><ul><li>Mettre en cache dans des fichiers nommés dans votre document root </li></ul></ul><ul><ul><li>Eliminez toute trace de PHP du contenu caché ! </li></ul></ul><ul><li>Nouveau gestionnaire : Zend_Cache_Manager </li></ul><ul><ul><li>Utilisez la configuration pour créer des objets de cache </li></ul></ul><ul><ul><li>Joue le rôle de fabrique et de stockage pour de multiples objets de cache </li></ul></ul><ul><ul><li>Facilite l’utilisation de stratégies de cache à niveaux multiples dans vos applications ZF </li></ul></ul>
  24. 24. RewriteCond %{DOCUMENT_ROOT}/cached/% {REQUEST_URI}.html -f RewriteRule .* cached/%{REQUEST_URI}.%1 [L]
  25. 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. 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. 27. Zend_Feed_Writer <ul><li>Complément de Zend_Feed_Reader, introduit dans ZF 1.9.0 </li></ul><ul><li>Fournit tout le nécessaire à la génération d’un grand nombre de flux, incluant ces extensions </li></ul><ul><ul><li>RSS </li></ul></ul><ul><ul><li>RSS2 </li></ul></ul><ul><ul><li>Atom </li></ul></ul><ul><ul><li>DublinCore </li></ul></ul><ul><ul><li>etc. </li></ul></ul>
  28. 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. 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. 30. Zend_Feed_Pubsubhubbub <ul><li>Agit soit comme un souscripteur PuSH ou un publicateur </li></ul><ul><ul><li>La fonctionnalité de souscription permet de spécifier un URL de callback pour les gros PuSH </li></ul></ul><ul><ul><ul><li>Utilise un stockage en base de données par défaut pour stocker les nouvelles qui ont déjà été reçu </li></ul></ul></ul><ul><ul><li>La fonctionnalité de publication vous permet d’informer un hub qu’un nouveau contenu est disponible </li></ul></ul>
  31. 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. 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. 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. 34. Zend_Markup <ul><li>Fonctionnalités d’analyse et de gestion du rendu </li></ul><ul><li>Supporte : </li></ul><ul><ul><li>BBCode </li></ul></ul><ul><ul><li>Textile </li></ul></ul>$bbcode = Zend_Markup::factory( 'Bbcode' ); echo $bbcode ->render( $someBbCodeMarkup ); $textile = Zend_Markup::factory( 'Textile' ); echo $textile ->render( $someTextileMarkup );
  35. 35. Zend_Oauth <ul><li>Agit comme un consommateur Oauth </li></ul>
  36. 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. 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. 38. Zend_Serializer <ul><li>Sérialise du PHP dans différents formats et reconvertit aussi vers du PHP </li></ul><ul><li>Les formats supportés incluent : </li></ul><ul><ul><li>Igbinary </li></ul></ul><ul><ul><li>WDDX </li></ul></ul><ul><ul><li>JSON </li></ul></ul><ul><ul><li>Active Message Format (AMF) 0 and 3 </li></ul></ul><ul><ul><li>Python Pickle </li></ul></ul><ul><ul><li>Code PHP ou de la sérialisation </li></ul></ul>
  39. 39. $serializer = Zend_Serializer::factory( 'Json' ); $serialized = $serializer -> serialize ( $data ); $unserialized = $serializer -> unserialize ( $serialized );
  40. 40. Nouveaux services Extending your reach into the cloud
  41. 41. New Service - LiveDocx <ul><li>http://www.livedocx.com/ </li></ul><ul><li>Mieux décrit par une image : </li></ul>Insert->Header & Footer
  42. 42. Nouveau service - LiveDocx Insert->Header & Footer
  43. 43. Nouveau service - LiveDocx Insert->Header & Footer
  44. 44. Nouveau service - LiveDocx <ul><li>Autres fonctionnalités de l’API : </li></ul><ul><ul><li>Modèles distants ou locaux </li></ul></ul><ul><ul><li>Possibilité de récupérer des informations à partir des modèles </li></ul></ul><ul><ul><li>Formats des modèles en entrée : </li></ul></ul><ul><ul><ul><li>Docx, Doc, RTF, TXD </li></ul></ul></ul><ul><ul><li>Formats des modèles en sortie : </li></ul></ul><ul><ul><ul><li>Docx, Doc, Html, RTF, PDF, TXD, TXT </li></ul></ul></ul><ul><ul><li>Formats des images en sortie : </li></ul></ul><ul><ul><ul><li>BMP, PNG, GIF, TIFF, WMF, JPG </li></ul></ul></ul>Insert->Header & Footer
  45. 45. Nouveau service - DeveloperGarden <ul><li>Developer Garden est le nom de la communauté des développeurs de la Deutsche Telekom’s. </li></ul><ul><li>Fonctionnalités de l’API : </li></ul><ul><ul><li>BaseUserService </li></ul></ul><ul><ul><ul><li>Classe pour gérer l’API sur les détails des comptes utilisateurs et les quotas. </li></ul></ul></ul><ul><ul><li>IPLocation </li></ul></ul><ul><ul><ul><li>Localise l’IP fournie et retourne des coordonnées géographiques. Fonctionne seulement avec des IP allouées dans le réseau Deutsche Telekom. </li></ul></ul></ul><ul><ul><li>LocalSearch </li></ul></ul><ul><ul><ul><li>Vous permet de rechercher avec les options à côté ou autour d’une coordonnée géographique ou d’une ville </li></ul></ul></ul>Insert->Header & Footer
  46. 46. Nouveau service - DeveloperGarden <ul><li>Fonctionnalités (suite) </li></ul><ul><ul><li>SendSMS </li></ul></ul><ul><ul><ul><li>Envoi d’un SMS ou d’un SMS Flash vers un numéro donné </li></ul></ul></ul><ul><ul><li>SMSValidation </li></ul></ul><ul><ul><ul><li>Vous pouvez valider un numéro à utiliser avec SendSMS </li></ul></ul></ul><ul><ul><li>VoiceCall </li></ul></ul><ul><ul><ul><li>Initie une conférence entre 2 participants </li></ul></ul></ul><ul><ul><li>ConferenceCall </li></ul></ul><ul><ul><ul><li>Vous pouvez configurer une conférence complète avec les participants soit pour une conférence immédiate, soit pour une conférence à prévoir </li></ul></ul></ul>Insert->Header & Footer
  47. 47. Nouveau service - DeveloperGarden <ul><li>Mettre en place une conférence : </li></ul>Insert->Header & Footer
  48. 48. Nouveau service - WindowsAzure <ul><li>Windows Azure est le nom de la plateforme Software + Services de Microsoft </li></ul><ul><li>Fonctionnalités : </li></ul><ul><ul><li>Interface vers l’API de stockage : </li></ul></ul><ul><ul><ul><li>Blobs </li></ul></ul></ul><ul><ul><ul><li>Tables </li></ul></ul></ul><ul><ul><ul><ul><li>Batch processing </li></ul></ul></ul></ul><ul><ul><ul><li>Queues </li></ul></ul></ul>Insert->Header & Footer
  49. 49. Nouveau service– WindowsAzure Insert->Header & Footer
  50. 50. Mises à jour de la documentation Helping you educate yourself
  51. 51. Documentation versionnée <ul><li>Versionnée par révision mineure (1.10, 1.9, 1.8, etc.) </li></ul><ul><li>Recherche par version </li></ul>
  52. 52. Nouveau moteur de rendu <ul><li>PhD (système de documentation de PHP) est maintenant utilisé pour effectuer le rendu de la documentation en ligne ainsi que celle téléchargeable </li></ul><ul><li>Accélère la durée du rendu et fournit plus de flexibilité dans le rendu </li></ul><ul><li>Meilleure navigation </li></ul>
  53. 53. Tutoriaux <ul><li>Nouvelle section du manuel : “Apprendre Zend Framework” </li></ul><ul><li>Contient le Quickstart ainsi que 8 tutoriaux additionnels </li></ul><ul><li>Partie du référentiel ZF, ce qui implique : </li></ul><ul><ul><li>Versionné </li></ul></ul><ul><ul><li>Disponible à la traduction </li></ul></ul><ul><ul><li>De nouveaux contenus peuvent être ajoutés </li></ul></ul>
  54. 54.
  55. 55. Notes de migration <ul><li>Nouvelle annexe avec une centralisation des “Notes de migration” </li></ul><ul><li>Notes de migration par version mineure </li></ul>
  56. 56. Commentaires <ul><li>Commentaires dans le manuel, ala php.net, ont été activés ! </li></ul>
  57. 57. Liens <ul><li>Me contacter : </li></ul><ul><ul><li>http://twitter.com/mikaelkael </li></ul></ul><ul><ul><li>http://mikaelkael.fr </li></ul></ul><ul><li>Tutoriel ZF 1.10 (présenté le 18 mai à TEKX) : </li></ul><ul><ul><li>http://joind.in/1562 </li></ul></ul><ul><li>Bug Hunt (20 & 21 mai) : </li></ul><ul><ul><li>http://devzone.zend.com/article/12150-Announcing-Mays-ZF-Bug-Hunting-Days </li></ul></ul><ul><li>Prochain webinar (16 juin) : les décorateurs de Zend_Form </li></ul><ul><ul><li>http://www.zend.com/fr/company/news/event/webinar-tirer-parti-des-d-corateurs-zend-form </li></ul></ul>
  58. 58. Merci ! <ul><li>Information et ressources : http://framework.zend.com/ </li></ul>

×