Introduction au Zend Framework

 Apprendre Zend Framework

appendix

 Guide de référence Zend Framework


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 61.2% Update 2010-11-28 - Revision 23149 - Version ZF 1.11.x

    Chapitre 74. Zend_Uri

    74.1. Zend_Uri

    74.1.1. Aperçu

    Zend_Uri est un composant destiné à aider à la manipulation et à la validation des Uniform Resource Identifiers (URIs). Zend_Uri existe dans le but d'aider les autres composants de Zend Framework tels que Zend_Http_Client mais peut aussi être utilisé comme composant individuel.

    Les URIs commence toujours avec la définition de leur schéma, suivie d'un double-points. La construction des différents schémas variant beaucoup, une fabrique est à votre disposition. Zend_Uri possède une fabrique qui retourne des instances sous-classes d'elle même. Chaque sous classe possède le nom du schéma dans son nom, comme Zend_Uri_<scheme>, où <scheme> est le nom du schéma utilisé, tout en minuscule, sauf la première lettre. Une exception à cette règle est HTTPS, qui est aussi géré par Zend_Uri_Http.

    74.1.2. Créer un nouvel URI

    Zend_Uri fabriquera un URI vierge, si seul son schéma est passé à Zend_Uri::factory().

    Exemple 74.1. Créer un URI avec Zend_Uri::factory()

    // Création d'un URI vierge
    $uri Zend_Uri::factory('http');

    // $uri instanceof Zend_Uri_Http

    Pour créer un URI à partir de rien, passez simplement le schéma à Zend_Uri::factory() [31]. Si un schéma non supporté lui est passé ou aucune classe n'est spécifié, une Zend_Uri_Exception sera levée.

    Si un schéma ou URI fourni est supporté, Zend_Uri::factory() retournera une sous-classe d'elle-même spécialisée pour le schéma à créer.

    74.1.2.1. Creating a New Custom-Class URI

    Starting from Zend Framework 1.10.5, you can specify a custom class to be used when creating the Zend_Uri instance, as a second parameter to the Zend_Uri::factory() method. This enables you to subclass Zend_Uri and create your own custom URI classes, and instantiate new URI objects based on your own custom classes.

    The 2nd parameter passed to Zend_Uri::factory() must be a string with the name of a class extending Zend_Uri. The class must either be alredy-loaded, or loadable using Zend_Loader::loadClass() - that is, it must follow the Zend Framework class and file naming conventions, and must be in your include_path.

    Exemple 74.2. Creating a URI using a custom class

    // Create a new 'ftp' URI based on a custom class
    $ftpUri Zend_Uri::factory(
        
    'ftp://user@ftp.example.com/path/file',
        
    'MyLibrary_Uri_Ftp'
    );

    // $ftpUri is an instance of MyLibrary_Uri_Ftp, which is a subclass of Zend_Uri

    74.1.3. Manipuler un URI existant

    Pour manipuler un URI existant, passez le entièrement à Zend_Uri::factory().

    Exemple 74.3. Manipuler un URI existant avec Zend_Uri::factory()

    // Passez l'URI complet à la fabrique
    $uri Zend_Uri::factory('http://www.zend.com');

    // $uri instanceof Zend_Uri_Http

    L'URI sera alors analysé et validé. S'il s'avère être invalide, une Zend_Uri_Exception sera envoyée immédiatement. Sinon, Zend_Uri::factory() retournera une sous classe d'elle-même qui spécialisera le schéma manipulé.

    74.1.4. Validation d'URI

    La méthode Zend_Uri::check() peut être utilisée pour valider un URI.

    Exemple 74.4. Validation d'URI avec Zend_Uri::check()

    // Valide si l'URI passé est bien formé
    $valid Zend_Uri::check('http://uri.en.question');

    // $valid est TRUE ou FALSE

    Zend_Uri::check() retourne un simple booléen, ce qui est plus pratique que de passer par Zend_Uri::factory() et de capturer les exceptions.

    74.1.4.1. Autoriser les caractères "imprudents" dans les URIs

    Par défaut, Zend_Uri n'acceptera pas les caractères suivants, définis par la RFC comme "imprudents" et invalide : "{", "}", "|", "\", "^", "`". Cependant, de nombreuses implémentations acceptent ces caractères comme valides.

    Zend_Uri peut être paramètré pour accepter ces caractères "imprudents" en réglant l'option "allow_unwise" à TRUE en utilisant la méthode Zend_Uri::setConfig() :

    Exemple 74.5. Autoriser les caractères spéciaux dans les URIs

    // Normalement, ceci devrait retourner false :
    $valid Zend_Uri::check('http://example.com/?q=this|that'); // Contient le symbole '|'

    // Cependant, vous pouvez autorise les caractères "imprudents"
    Zend_Uri::setConfig(array('allow_unwise' => true));
    $valid Zend_Uri::check('http://example.com/?q=this|that'); // Retournera 'true'

    // Initialiser 'allow_unwise' à sa valeur par défaut FALSE
    Zend_Uri::setConfig(array('allow_unwise' => false));

    [Note] Note

    Zend_Uri::setConfig() paramètre les options de configuration de manière globale. Il est recommandé de réinitialiser l'option allow_unwise à FALSE comme dans l'exemple ci-dessus, à moins d'être certain de vouloir utiliser les caractères "imprudents" de manière globale.

    74.1.5. Méthodes communes

    Toute instance sous-classe de Zend_Uri (par exemple Zend_Uri_Http) possède plusieurs méthodes utiles :

    74.1.5.1. Retrouver le schéma d'un URI

    Le schéma d'un URI est la partie précédent les double-points (:). Par exemple, le schéma de http://www.zend.com est http.

    Exemple 74.6. Récupérer le schéma d'un objet Zend_Uri_*

    $uri Zend_Uri::factory('http://www.zend.com');

    $scheme $uri->getScheme();  // "http"

    La méthode getScheme() retourne une chaîne de caractères.

    74.1.5.2. Récupérer l'URI entier

    Exemple 74.7. Récupérer l'URI entier depuis un objet Zend_Uri_*

    $uri Zend_Uri::factory('http://www.zend.com');

    echo 
    $uri->getUri();  // "http://www.zend.com"

    La méthode getUri() retourne une chaîne de caractères représentant l'URI entier.

    74.1.5.3. Valider l'URI

    Zend_Uri::factory() validera de toute façon systématiquement l'URI qui lui est passé en paramètre. Par contre, l'URI peut devenir invalide après, s'il est modifié.

    Exemple 74.8. Valider un objet Zend_Uri_*

    $uri Zend_Uri::factory('http://www.zend.com');

    $isValid $uri->valid();  // TRUE

    La méthode valid() propose une façon de vérifier si l'URI est toujours valide.



    [31] Actuellement, Zend_Uri ne supporte que les schémas intégrés HTTP et HTTPS

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...