IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

confirmation sur l'utilité du mot clef "use"


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Points : 70
    Points
    70
    Par défaut confirmation sur l'utilité du mot clef "use"
    bonjour,

    je me demande depuis un moment : quel est vraiment l'utilité du mot clef "user" est-ce que celui-ci remplace "require" ? sinon comme je me doute qu'il doit y avoir un lien avec composer, pouvez-vous m'expliquer comment faire des autoloads ?

    Merci

  2. #2
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Bonjour,

    En soit, use est une construction du language pour permettre d'utiliser le nom court d'une classe dans ton script au lieu du "fully qualified class name".

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    namespace Garage\Vehicule;
     
    class Camion
    {
        ....
    }
    Et dans un autre code (donc probablement un autre namespace), tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    use Garage\Vehicule\Camion;
     
    $camion = new Camion();
    Pour charger les classes tu as toujours besoin de faire un include ou un require, ou d'utiliser composer en PSR4 pour charger les classes.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Points : 70
    Points
    70
    Par défaut
    rebonjour et merci pour ces codes je crois avoir compris pour les use : en fait c'est juste un moyen de ne pas à chaque fois ré-écrire le namespace, c'est ça ?

    maintenant pour les autoloads, y a t il une commande à executer via composer pour les mettre en place ou doit_on les écrire directement dans le fichier json ?

  4. #4
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Oui c'est ça en effet.

    Pour composer, tu as composer dump-autoload (avec ou sans -o, --optimize), qui peut s'abreger composer du -o. Par contre tu dois mettre le namespace de base de ton application dans le json par toi-même. Tu peux regarder des projets sur Github pour voir comment ça se passe. Par exemple sur Symfony Standard Distribution, le dossier src est mappé avec le root namespace, donc n'importe quelle classe sera cherchée là. Le Zend Skeleton Application prends une approche un peu différente, en autoloadant "manuellement" le module, ce qui est légèrement mieux en terme de perfs (dev uniquement) et moins bien en terme de lignes à ajouter. En prod aucun problème de toutes façons car ça utilises les fichiers de "map" associants toutes les classes à leurs fichiers, et généralement on configure aussi un opcache pour éviter de lire les fichiers et simplement garder les structures en mémoire.

    J'espère être clair, hésite pas en cas de questions.

Discussions similaires

  1. filtrage sur mot clef
    Par pascalbout1 dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2007, 16h45
  2. Réponses: 1
    Dernier message: 11/03/2006, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo