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

Symfony PHP Discussion :

Commande pour Supprimer des dossiers [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut Commande pour Supprimer des dossiers
    Bonjour,
    J'ai testé ce code dans un controlleur et ça fonctionne convenablement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
           $dir=  $_SERVER['DOCUMENT_ROOT'] . 'SystemeBM/web/uploads/CGA_PRODUCTION/';
                $files = glob( $dir . '*', GLOB_MARK );
                     foreach( $files as $file ){
                    if( substr( $file, -1 ) == '/' )
                         delTree( $file );
                        else
                      unlink( $file );
                     }
                rmdir( $dir );exit;
    Par contre ici, ça genere une exception
    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
    37
    38
    39
    40
     
    use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
    use Symfony\Component\Console\Input\InputArgument;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Input\InputOption;
    use Symfony\Component\Console\Output\OutputInterface;
     
    // pour tester : $ php app/console clear:folder 
    class GestionCommand extends ContainerAwareCommand {
     
        protected function configure() {
            $this
                    ->setName('clear:folder')
                    ->setDescription('Greet someone')
                    ->addArgument(
                            'name', InputArgument::OPTIONAL, 'Who do you want to greet?'
                    )
                    ->addOption(
                            'yell', null, InputOption::VALUE_NONE, 'If set, the task will yell in uppercase letters'
                    )
            ;
        }
     
     
     
        protected function execute(InputInterface $input, OutputInterface $output) {
     
               $dir=  $_SERVER['DOCUMENT_ROOT'] . 'SystemeBM/web/uploads/CGA_PRODUCTION/';
                $files = glob( $dir . '*', GLOB_MARK );
                     foreach( $files as $file ){
                    if( substr( $file, -1 ) == '/' )
                         delTree( $file );
                        else
                      unlink( $file );
                     }
                rmdir( $dir );exit;
            $output->writeln('done');
        }
     
    }
    error :
    C:\wamp\www\SystemeBM>php app/console clear:folder
    [Symfony\Component\Debug\Exception\ContextErrorException]
    Warning: rmdir(SystemeBM/web/uploads/CGA_PRODUCTION/): No such file or directory
    clear:folder [--yell] [--] [<name>]

    merci d'avance

  2. #2
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut $_SERVER['DOCUMENT_ROOT'] te retourne un NULL
    $_SERVER['DOCUMENT_ROOT'] retourne un NULL dans le context d'une ligne commande et c'est logique

    essai plustot de récupérer le paramêtre "kernel.root_dir" du container

    voici une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    ....
     
    class YourCommand extends ContainerAwareCommand
    {
        protected function execute(InputInterface $input, OutputInterface $output) {
     
               $dir=  $this->getParameter('kernel.root_dir') . '/../web/uploads/CGA_PRODUCTION/';
        }
     
        protected function getParameter($paramName)
        {
            return $this->getContainer()->getParameter($paramName);
        }
    Ahmed.

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    merci Ahmed, c'est résolue avec ta piste
    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
     
        protected function execute(InputInterface $input, OutputInterface $output) {
     
            $dir = $this->getParameter('kernel.root_dir') . '/../web/uploads//CGA_PRODUCTION/';
            $files = glob($dir . '*', GLOB_MARK);
            foreach ($files as $file) {
                if (substr($file, -1) == '/')
                    delTree($file);
                else
                    unlink($file);
            }
            rmdir($dir);
            $output->writeln('done');
        }
     
        protected function getParameter($paramName) {
            return $this->getContainer()->getParameter($paramName);
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. regexp pour supprimer des dossiers
    Par Oega dans le forum VBScript
    Réponses: 1
    Dernier message: 16/07/2008, 08h38
  2. commande sed pour supprimer des commentaires
    Par Garulfo dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 08/03/2008, 19h09
  3. Utiliser awk pour supprimer des retours charrios
    Par tomsoyer dans le forum Linux
    Réponses: 3
    Dernier message: 03/01/2005, 18h27
  4. Commande pour afficher des chiffres apres la virgule
    Par manar dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/09/2004, 18h28
  5. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26

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