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

Zend Framework PHP Discussion :

[Partage] Supprimer les déclarations require_once


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut [Partage] Supprimer les déclarations require_once
    Bonjour,

    Je poste un petit script PHP pour supprimer les declarations "require_once" dans le Zend Framework et ainsi utiliser l'Autoloader. C'est une des recommandations pour ameliorer les performances.

    http://framework.zend.com/manual/fr/...iprequires.sed

    Comme indiqué dans cette documentation, il y a déjà une solution sous Unix. Je ne m'y attarde pas. Je vous propose une autre solution avec un script PHP qui fonctionnera donc aussi sur une autre plateforme; Windows par exemple.

    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
     
      function stripRequires($file) {
        $exception = array('/Loader/Autoloader.php','/Application.php');
        $content = file_get_contents($file);
        if( substr($file, -4) == '.php'
            && substr($file, -strlen($exception[0])) != $exception[0] 
            && substr($file, -strlen($exception[1])) != $exception[1] 
          ) {
          $content = preg_replace('#^\s*require_once.*;$#iUm', '', $content);
          return $content;
        }
        return $content;
      }
     
      function removeRequireOnce($dir, $target) {
        if(!is_dir($target))
          mkdir($target);
     
        $myDirectory = opendir($dir);
        while($f = readdir($myDirectory)) {
          if($f != '.' && $f != '..'){
            if(is_dir($dir.$f)){
              removeRequireOnce($dir.$f.'/',$target.$f.'/');
            }else{
              $content = stripRequires($dir.$f);
              if($content !== FALSE)
                file_put_contents($target.$f, $content);
            }
          }
        }
        closedir($myDirectory);
      }
     
    ?>
    Utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    removeRequireOnce('../../z/Frameworks/Zend-1.10.8/', '../../z/Frameworks/Zend/');
    Le script utilise un répertoire (téléchargé d'internet par exemple) et crée un nouveau dossier avec la suppression des "require_once".

    Le script n'est sans doute pas parfait. Si vous avez des améliorations a suggérer, je suis a l'écoute.

    En espérant avoir aidé,

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Merci pour ta contrib, je savais même pas que require_once ça faisait ramer une appli si on en abusait!
    Sinon il y a sed pour windows (pas testé)

    Dans la version 2 de ZF ils vont les carrément les supprimer de base c cool!

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Par défaut
    C'est exact.
    Par contre, il va falloir encore patienter un peu pour avoir une version 2 complète.

    Cédric

Discussions similaires

  1. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  2. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  3. Réponses: 4
    Dernier message: 10/08/2004, 11h59
  4. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 11h11
  5. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 02h58

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