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 :

portee de l'objet [POO]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Février 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 26
    Par défaut portee de l'objet
    Bonjour à tous

    Après avoir développé uniquement en procédurale, je me lance (enfin) dans la manipulation des objets.

    Probleme de require, require_once, new mon_object();

    Je m'explique

    J'ai des fichiers comportant
    - ma definition de class : maclass.php
    - mes fonctions : mes_function.php
    - mes scripts html/php: index.php
    - des fonctions javascripts scripts.js
    - un fichier autre appélé par javascript from_js.php

    dans le fichier index.php je déclare les fichiers neccessaires :
    -require_once('maclass.php');
    -$a = new Mobjet();
    -require_once('mes_functions.php');

    au lancement du script, avant execution
    j'ai des messages d'erreurs car il semble que les fonction appelées dans from_js.php ne sont pas déclarées (ne le sont elles pas via la fichier index.php ?)
    j'ajoute donc le require_once('mes_functions.php');

    mais l’objet $a n'est pas reconnu non plus.
    Si je crée un nouveau $a = new Mobjet(); dans from_js.php cela fonctionne mais j'ai créé 2 instances.

    Pourquoi les déclarations faites dans index.php ne couvrent pas tout le script ,

    C'est peu être une question basique mais je ne trouve pas la réponse

    Merci

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par devphpdid Voir le message
    Après avoir développé uniquement en procédurale, je me lance (enfin) dans la manipulation des objets.
    Moi, je crois avoir commencé à coder en PHP procédural en 2007, et la POO, y a seulement une année...

    Pour t'aider, si je peux, il faudrait plus d'infos. Tu dis ce que font tes fichiers, mais j'aurais besoin de leur contenu (au moins tous fichiers à part scripts.js).

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Février 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 26
    Par défaut
    Bonjour et merci de ta reponse

    je ne sais pas si le contenu des fichiers est important car c'est assez simple comme structure mais je peux te donner plus de details

    Comme je disais:
    J'ai
    un fichier qui regroupe les fonctions php,
    un fichier de definition de l'unique class que j'utiliserai,
    un fichier ajax et fonction javascript pour un côté interactif,
    le fichier principal index.php qui contient le corps html de la page, un bouton Onclick vers une fonction js, un bouton submit
    et enfin un dernier fichier PHP (disons TOTO.php) qui sera appelé par la code Javascript (ajax) via le Onclick(). et qui utilisera une partie des fonction public de l'objet créé

    je fais des include des fichiers de fonctions PHP, Class, et j'instancie ma class avec "new"
    Ensuite la page est chargé.

    Sauf que je ne comprends pas pourquoi je dois faire aussi les mêmes includes sur mon fichier TOTO.php et aussi creer un nouvel objet via ma class sans pouvoir utiliser le même
    Je pensais que mon objet une fois instancié serait valable dans l'ensemble du code...

    index.php
    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
    <?php
    require_once('funk.php');
    require_once('class.construct.php');
     
    $acces = new Connex();
     
    if(isset($_POST['butt_pouss'])){
            $arr_list = code($_POST['area']);
            if(isset($arr_list['port'])){$acces->fn_nw_port($arr_list['port']);}
            if(isset($arr_list['ip'])){$acces->fn_nw_ip($arr_list['ip']);}
            if(isset($arr_list['portlst'])){$acces->fn_nmap($arr_list['portlst']);}
    }
     
     
    echo "<div class='PAGE'>";
            echo "<div class='entete'></div>";
            echo "<div class='piedpage'> </div>";
            echo "<div class='gauche'> </div>";
            echo "<div class='haut'> </div>";
    ........code html
            echo "<div class='E5' id='E4'><div id='div_bar_id4'></div>";
            echo "<div class='E6' id='E5'><div id='div_bar_id5'></div>";
    echo "</div>";
    echo "</form>";
    ?>
    TOTO.php
    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
    <?php
    require_once('class.construct.php');
    require_once('funk.php');
     
     
    $IP=$_SERVER['REMOTE_ADDR'];
    $PORT=22;
    $list='';
    $cle = numero();
     
    $n_acces = new Connex();
     
    $n_acces->fn_clean_files();
    $n_acces->fn_write($cle,$IP,$PORT);
    $n_acces->fn_knockd();
    $n_acces->fn_SMS($cle,$IP,$PORT);
     
    $arr_alarmes=$n_acces->fn_monitor();
    foreach($arr_alarmes as $keys => $value)
            {
            $list.=$value.",";
            }
    $list = rtrim($list,",");
     
    //mise en forme de $arr_phase pour xhr.responseText
    echo "<div>";
    echo $list;
    echo "</div>";
     
     
    ?>

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    J'ai pas vu ta réponse tout de suite, car j'avais oublié de m'abonner...Cette fois, c'est bon, mais il va y avoir la pause déjeuner...

    Tu parles d'un bouton onclick dans index.php. Je ne le vois pas, pas plus que le bouton submit, aussi mentionné.

    Pas sûr de savoir t'aider, car tu utilises Ajax, ce que je ne maitrise pas...

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Février 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 26
    Par défaut
    Je ne pense pas que les boutons Onclick et Submit soient important dans ce cas ni le côté Ajax car c'est lancement de la page (avant que ces fonctionnalités ne soient sollictées) que j'ai message d'erreur si je ne créé pas un second objet dans mon fichier annexe

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    3 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 3 010
    Par défaut
    Je pensais que mon objet une fois instancié serait valable dans l'ensemble du code...
    Ah bah non, sinon ce serait pas drôle.

    Toutes tes variables (objets compris) et les fonctions déclarées n'ont d'existence que pendant le temps d'exécution du script et uniquement pour ce script (pas pour un autre).

  7. #7
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Février 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 26
    Par défaut
    Ok merci pour l'information

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

Discussions similaires

  1. comment etendre la portee d'un objet?
    Par tigas dans le forum wxWidgets
    Réponses: 7
    Dernier message: 16/07/2008, 14h53
  2. [POO] Portée des objets
    Par Info-Rital dans le forum Langage
    Réponses: 19
    Dernier message: 12/08/2007, 04h31
  3. Réponses: 15
    Dernier message: 29/10/2006, 19h01
  4. [Language][Package]Probleme de portée d'un Objet
    Par julien.v dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2005, 15h23
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 17h20

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