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 :

Factoriser un morceau de code


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Débutant
    Inscrit en
    Janvier 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 8
    Par défaut Factoriser un morceau de code
    Bonjour à tous,

    Je travail actuellement sur de la factorisation de code, exercice que je trouve particulièrement difficile, et je galère totalement. J'ai créer un petit script qui permet d'ajouter des produits dans un panier et de les supprimer. Le code fonctionne très bien, mais il n'est pas vraiment propre, et dans un soucis d'optimisation, je dois le transformer en une fonction. Mais je n'ai pas l'habitude de faire ça et je ne comprend pas comment je pourrais m'y prendre.

    Voici le code en question :

    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
    if (isset($_POST) && !empty($_POST)) {
     
        $post = $_POST;
     
        if(!isset($action)){
            $tab = [$_POST["product_id"] . "a" => ["qt" => $_POST["qt"]]];
     
            if (existPanier($post, $panier)) {
                $index = $_POST["product_id"] . "a";
                unset($panier[$index]);
                $tab2 = array_merge($panier, $tab);
                $test = $ordersModel->addPanier($user->id,serialize($tab2));
                redirect("/commandes");
            } else {
                $tab2 = array_merge($panier, $tab);
                $test = $ordersModel->addPanier($user->id,serialize($tab2));
                redirect("/commandes");
            }
        }
     
        if(isset($_POST['delete_product'])) {
     
            if (existPanier($post,$panier)){
                $index = $_POST["product_id"] . "a";
                unset($panier[$index]);
                $test = $ordersModel->addPanier($user->id,serialize($panier));
                redirect("/commandes/panier");
            }
        }
     
    }
    Je ne comprend pas bien comment je dois m'y prendre pour simplifier tout ça étant donné que je fais déjà appel à des fonctions dans ce code, votre aide est la bienvenue ! Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut,

    houlà !
    tu peux poster le code de ta fonction existPanier(), stp

  3. #3
    Membre habitué
    Homme Profil pro
    Débutant
    Inscrit en
    Janvier 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 8
    Par défaut
    Oui bien sur ! La voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function existPanier($post, $panier)
    {
        return isset($post["product_id"]) && array_key_exists($post["product_id"] . "a", $panier);
     
    }

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    d'où provient $action ?

  5. #5
    Membre habitué
    Homme Profil pro
    Débutant
    Inscrit en
    Janvier 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Débutant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 8
    Par défaut
    Cela provient d'une fonction qui fait le travail d'un écouteur d'événement, il détecte si le $_POST est soumis et exécute le reste du script.

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    tu gères un écouteur d’événement et tu as du mal à factoriser ton code ?!?? Ce n'est pas très cohérent. M'enfin...

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

Discussions similaires

  1. Paralléliser un morceau de code
    Par yann_m dans le forum Fortran
    Réponses: 7
    Dernier message: 09/10/2007, 12h48
  2. Réponses: 4
    Dernier message: 20/07/2007, 03h49
  3. Réponses: 10
    Dernier message: 30/03/2007, 17h30
  4. Réponses: 12
    Dernier message: 08/02/2005, 23h42
  5. [JSP] [include] inclure un morceau de code
    Par viena dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/01/2005, 11h51

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