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