58
© All rights reserved. Zend Technologies, Inc. Quoi de neuf dans ZF 1.10 ? Mickaël Perraud Contributeur Zend Framework Responsable documentation française

Quoi de neuf dans Zend Framework 1.10 ?

Embed Size (px)

DESCRIPTION

Revue des nouveautés de Zend Framework 1.10

Citation preview

Page 1: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Quoi de neuf dans ZF 1.10 ?Mickaël PerraudContributeur Zend FrameworkResponsable documentation française

Page 2: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

En bref Nombreuses améliorations Nouveaux composants Nouveaux services Mise à jour de la documentation

Page 3: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

En bref Nombreuses améliorations Nouveaux composants Nouveaux services Mise à jour de la documentation

Page 4: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.4

Améliorations

Building incrementally

Page 5: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Zend_Filter_Boolean

5 Insert->Header & Footer

Page 6: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Zend_Filter_Null

6 Insert->Header & Footer

Page 7: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Zend_Filter_Compress / Decompress

7 Insert->Header & Footer

Page 8: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Zend_Validate_Callback

8 Insert->Header & Footer

Page 9: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 10: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 11: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Zend_Log::factory() & Zend Monitor Writer Adapter

11 Insert->Header & Footer

Page 12: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Zend_Log::factory() & Zend Monitor Writer Adapter

12 Insert->Header & Footer

Page 13: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 14: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

•Nouvelles ressources pour Zend_ApplicationCachemanager

Dojo

Jquery

Layout

Log

Mail

Multidb

14 Insert->Header & Footer

Page 15: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 16: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

Page 17: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

Page 18: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Améliorations

Page 19: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.19

Nouveaux composants

Extending an already extensible and extensive framework

Page 20: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 21: Quoi de neuf dans Zend Framework 1.10 ?

© 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');

Page 22: Quoi de neuf dans Zend Framework 1.10 ?

© 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}

Page 23: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 24: Quoi de neuf dans Zend Framework 1.10 ?

© 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]

Page 25: Quoi de neuf dans Zend Framework 1.10 ?

© 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' );}

Page 26: Quoi de neuf dans Zend Framework 1.10 ?

© 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');

Page 27: Quoi de neuf dans Zend Framework 1.10 ?

© 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.

Page 28: Quoi de neuf dans Zend Framework 1.10 ?

© 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'));

Page 29: Quoi de neuf dans Zend Framework 1.10 ?

© 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');

Page 30: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 31: Quoi de neuf dans Zend Framework 1.10 ?

© 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();

Page 32: Quoi de neuf dans Zend Framework 1.10 ?

© 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();

Page 33: Quoi de neuf dans Zend Framework 1.10 ?

© 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 !}

Page 34: Quoi de neuf dans Zend Framework 1.10 ?

© 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);

Page 35: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Zend_Oauth Agit comme un consommateur Oauth

Page 36: Quoi de neuf dans Zend Framework 1.10 ?

© 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();

Page 37: Quoi de neuf dans Zend Framework 1.10 ?

© 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();// ...

Page 38: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 39: Quoi de neuf dans Zend Framework 1.10 ?

© 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);

Page 40: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.40

Nouveaux services

Extending your reach into the cloud

Page 41: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

New Service - LiveDocx

•http://www.livedocx.com/

•Mieux décrit par une image :

41 Insert->Header & Footer

Page 42: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Nouveau service - LiveDocx

42 Insert->Header & Footer

Page 43: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Nouveau service - LiveDocx

43 Insert->Header & Footer

Page 44: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 45: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 46: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 47: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Nouveau service - DeveloperGarden

•Mettre en place une conférence :

47 Insert->Header & Footer

Page 48: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 49: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Nouveau service– WindowsAzure

49 Insert->Header & Footer

Page 50: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.50

Mises à jour de la documentation

Helping you educate yourself

Page 51: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 52: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 53: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 54: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.54

Page 55: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Notes de migration Nouvelle annexe avec une centralisation

des “Notes de migration” Notes de migration par version mineure

Page 56: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.

Commentaires Commentaires dans le manuel, ala

php.net, ont été activés !

Page 57: Quoi de neuf dans Zend Framework 1.10 ?

© 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

Page 58: Quoi de neuf dans Zend Framework 1.10 ?

© All rights reserved. Zend Technologies, Inc.58

Merci ! Information et ressources :

http://framework.zend.com/