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 :

Mettre une constante php dans chaine de caractère


Sujet :

Langage PHP

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut Mettre une constante php dans chaine de caractère
    Bonjour,

    utilisant un peu partout la même chaine de caractères, il me semblerait plus simple de la remplacer par une constante. Sauf que je ne sais pas comment l'utiliser dans mon cas.

    Définition de la constante :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( ! defined("APP_NAME_NS")) {
        define("APP_NAME_NS", 'PasDePanique');
    }

    code du routeur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $routes = [
    '' => \PasDePanique\controller\Accueil::class,
    '404' => \PasDePanique\controller\Error404::class,
    ...
    ];

    code pour utiliser la constante :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $routes = [
    '' => \APP_NAME_NS\controller\Accueil::class,
    '404' => \APP_NAME_NS\controller\Error404::class,
    ...
    ];

    Message d'erreur :
    Fatal error: Uncaught Error: Class "APP_NAME_NS\controller\Accueil" not found in C:\projets\arnaudpoo\index.php:38 Stack trace: #0 {main} thrown in C:\projets\arnaudpoo\index.php on line 38
    Comment faire, SVP ?

  2. #2
    Membre éprouvé
    Avatar de JPBruneau
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 204
    Points : 918
    Points
    918
    Par défaut
    Bonjour, je peux te répondre mais je ne comprends pas, nous sommes dans le forum PHP
    Alors pourquoi ne crées tu pas une variable session et en haut (1ere ligne de tes PHP ) tu ouvres ta session et récupère autant de variables que tu en aura créé
    Moi je fais autrement j'ai un param.php que j'inclues dans toutes mes pages tu peux alors mettre dedans par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?PHP
    $bleublanc="bleu";
    $mon-titre="Le titre du site";
    /* Etc.. */

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    pour ta réponse. J'ai déjà l'équivalent de ce fichier param.php donc je pense faire de même.

  4. #4
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Bonjour

    Il s'agit d'un namespace, cela ne change pour ainsi dire jamais. Laisse comme avant, ne joue pas avec une constante d'autant plus que je ne suis pas sûr que les outils d'analyse de code comme phan, phpstan, etc. vont réussir à faire la traduction. (et pas sûr du tout que tu puisses jouer avec une constante à ce niveau-là)

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Peut-être peux-tu faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use PasDePanique\controller;
    haut de ton code puis, du coup juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      $routes = [
    '' => Accueil::class,
    , cela devrait fonctionner je pense.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    j'ai essayé assez tardivement, mais il ignore le préfixe PasDePanique\controller.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    include 'config/routing.php';
    $ctrl_name = getController($path);echo "index36 ctrl_name=".$ctrl_name."<br/>";
     
    $ctrl = new $ctrl_name();
    $ctrl->invoke();

    donne
    index36 ctrl_name=Accueil

    Fatal error: Uncaught Error: Class "Accueil" not found in C:\projets\arnaudpoo\index.php:38 Stack trace: #0 {main} thrown in C:\projets\arnaudpoo\index.php on line 38
    PS : le index36, c'est pour facilement me rappeler dans quel fichier et à quelle ligne, j'ai placé un echo.

    A mon avis, demain, j'essaierai d'ajouter le même préfixe à tous les éléments du tableau. Demain Bonne nuit.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/08/2020, 17h13
  2. Réponses: 16
    Dernier message: 20/04/2013, 11h11
  3. Réponses: 1
    Dernier message: 20/04/2007, 09h12
  4. [c#] Mettre une constante dans un Boundfield
    Par oyigit dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/12/2006, 15h44
  5. Mettre un code php dans une variable...
    Par kedare dans le forum Langage
    Réponses: 6
    Dernier message: 19/09/2005, 12h55

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