Directive USE dans CASSIOPEIA

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Directive USE dans CASSIOPEIA

    Bonjour,
    Travaillant sur le template CASSIOPEIA, je rencontre la directive "use" dans le code PHP.
    cette directive est utilisée dans : use Joomla\CMS\Uri\Uri;
    En recherchant sur le site "w3schools.com" section "PHP", "use" est inconnu mais j'obtiens "user" dans la programmation C.

    Que fait cette directive et où a-t-elle été définie ?

    Merci de votre réponse et bien cordialement
    Dernière édition par SousLeSoleil à 19/12/2023, 22h01

  • #2
    Bonjour,

    "use" est destiné à définir une classe qui sera utilisée dans la page, ici "Uri" au lieu de "JUri" dans les précédentes versions.
    Ce qui veut dire que si dans le même fichier, dans ton code tu as une référence à Uri sans le "use" précédent, tu obtiendras une erreur.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Bonjour RobertG,
      Ta réponse me permet de comprendre la fonction de "use" mais pas à la compréhension de la chaîne "Joomla\CMS\uri\uri" ni à accéder au descriptif de la classe supposée être remplacée.
      En effet je ne trouve pas dans Joomla la séquence "Joomla\CMS\uri...." qui me permettrai d'atteindre le descriptif de la classe.
      Pour moi en informatique il n'y a rien qui tombe du ciel, on doit pouvoir remonter à la source ? comment pouvoir remonter à cette source avec les informations présentes, exemple :

      use Joomla\CMS\HTML\HTMLHelper;
      use Joomla\CMS\Uri\Uri
      ?
      je ne trouve aucun répertoire s'approchant de ces séquences.
      Bien cordialement.
      Dernière édition par SousLeSoleil à 19/12/2023, 18h57

      Commentaire


      • #4
        Il ne s'agit pas de fichiers, mais de classes définies dans le Framework, si je ne me trompe.
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          Tu as raison Robert, il s'agit de classes (en fait ce qu'on nomme des namespace) et il s'agit aussi de fichiers car la norme est de définir une classe par fichier (mais ce n'est pas une obligation).

          La localisation de ces classes / namespaces n'a pas beaucoup d'importance, c'est de la popote interne mais, pour info, c'est défini dans un fichier nommé composer.json (de manière globale) et plus spécifiquement dans le fichier autoload.php qui est un fichier très technique dont personne n'a besoin de consulter. Tout est proprement géré par l'outil nommé composer.
          Christophe (cavo789)
          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

          Commentaire


          • #6
            Bonsoir RobertG et cavo789,

            Comme j'aime comprendre et que je suis pugnace dans mes recherches, j'ai fini par tomber sur le fichier "composer.json".
            je me suis trouvé devant un langage que je ne connais et comme je veux reconstituer rapidement mon site, j'ai fermé momentanément la boîte de pandore, comptant revenir sur ce langage ultérieurement.

            J'arrête donc mes recherches pour l'instant, tout en restant intellectuellement insatisfait.
            je vous remercie tous les deux de vos réponses.

            Bien cordialement.

            Commentaire


            • #7
              Bonjour

              Vois ce fichier composer.json (c'est le même que tu as trouvé hier) : https://github.com/joomla/joomla-cms...poser.json#L37

              En ligne 37, on lit que le namespace "Joomla\CMS" est défini dans le dossier "libraries/src/" de ton site.

              Et maintenant, donc, tu sais que "Joomla\CMS\HTML\HTMLHelper" va se trouver quelque part dans "libraries/src". Si on regarde le namespace, tu as donc "Joomla\CMS"; nous l'avons vu et il reste donc "HTML\HTMLHelper". Va dans le dossier "libraries/src" et tu vas trouver un dossier HTML et un fichier HTMLHelper. Le voici : https://github.com/joomla/joomla-cms...HTMLHelper.php

              Si tu suis le lien que je t'ai donné, tu retrouves le namespace en ligne 10 (https://github.com/joomla/joomla-cms...Helper.php#L10) "Joomla\CMS\HTML"; manque donc "HTMLHelper" qui est lui le nom de la classe (voir ligne 30 https://github.com/joomla/joomla-cms...Helper.php#L30)

              Te voilà correctement instruit

              Le namespace "Joomla\CMS\HTML\HTMLHelper" fait référence au fichier libraries/src/HTML/HTMLHelper.php.

              Sache, pour finir, que savoir cela ne sert qu'aux développeurs. Un utilisateur de Joomla n'est pas supposé aller dans le code. C'est très bien de s'y intéresser mais certainement pas une obligation.

              Bonne journée.
              Christophe (cavo789)
              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

              Commentaire


              • #8
                Bonjour Cavo789
                je te remercie de ton dernier message.
                Je suis dans l’informatique depuis 1964 quand j'étais étudiant et j'ai programmé des calculateurs (maintenant dénommés ordinateurs) dans toute ma vie professionnelle, puis j'ai créé ma société de conseil en informatique et écrit de nombreux programmes que je vendais. Rien ne peux tomber du ciel pour un processeur. Il lui faut un chemin d'accès à toute information dont il a besoin, je suis un peu comme lui.
                Les informations que tu viens de me passer me permet en explorant Joomla approfondir mes connaissances et de m'ouvrir d'autres horizons pour mes propres programmes qui ne sont que loisirs maintenant.
                Je suis maintenant intellectuellement satisfait.
                Merci et bien cordialement.
                Fred2FR3 et cavo789 aiment ceci.

                Commentaire


                • #9
                  Hello.

                  SousLeSoleil : que de souvenirs : bande perforée, carte perforée, mémoire à torres de ferrite (le bit coutait cher à l'époque) , assembleur, fortran, cobol,... et les calculateurs de puissance ridicule aujourd'hui qui prenaient un étage complet d'un batiment (control data, datadigital, ...) !
                  Moi aussi je suis de l'ancienne école

                  J'avais fait ici un petit article... à l'époque de J3.8 recensant les classes du framework et la suppression des appels à Jloader à remplacer des "use" de php.

                  Franchement, c'est un peu moin souple, car un Jloader était totalement dynamique (cela m'arrivait d'appeler un fichier php de classe different (pour un même nom de classe) dans une librairy commune selon le composant utilisant la librairie).

                  Alors que le use c'est du dur, impossible de le faire dynamique en utilisant une variable du type "use $chemin as Jclasse;"

                  Ce qui fait que je galère un peu pour migrer mes extenssion en J4/5 natif.
                  Dernière édition par roland_d_alsace à 22/12/2023, 12h59
                  A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                  Rejoignez le Joomla Users Groupe Alsace...
                  roland_d_alsace va-t-il devenir roland_du_grand_est ?

                  Commentaire


                  • #10
                    Bonjour ​roland_d_alsace,

                    Nous sommes de la même génération, de ceux qui avons déblayé le terrain, dont tu as si bien raconté l'histoire et en plus nous sommes presque de la même région à l'est de la France : La Lorraine où j'ai automatisé des usines du groupe De Wendel avec des calculateurs, de véritables monstres, puis régulé la Raffinerie de Lorraine et réalisé le premier réseau d'ordinateurs connectés du groupe, sans aucune présence humaine.
                    De mon expérience, j'ai appris qu'il fallait tout connaître de la machine que l'on gérait, si on ne voulait pas avoir de problèmes.
                    Maintenant, avec les machines qui veulent tout faire, j'ai beaucoup de problèmes. les gestions d'écran, les gestionnaires de fichiers séquentiels indexés que j'ai réalisés ne peuvent plus tourner avec les récentes version de Windows, qui m'interdit d'utiliser les instructions de bas niveau nécessaires à la bonne exécution de ces logiciels.
                    Les applications fournies avec Windows sont contraires avec la gestion automatique sans présence humaine car il faut les initier à partir d'un clavier. Enfin on se trouve devant des problèmes que l'on à du mal à résoudre. Mais j'arrive à progresser mais pas à la vitesse que j'aimerai.

                    Ce qui me réjouis, c'est qu'avec le Forum de Joomla, j'arrive à progresser . Merci à ce forum.
                    Bien cordialement.

                    Commentaire


                    • #11
                      SousLeSoleil : amusant ta réponse !
                      J'ai aussi passé + de 35ans dans le pétrole (raffinage, distribution de carburants -dont mise en route des premiers automates de station service- et fabrication de lubrifiants).
                      Il doit même me rester encore un échantillon de pétrole d'Alsace et une plaque de Pechelbronn !
                      Dans une ancienne vie...
                      Dernière édition par roland_d_alsace à 24/12/2023, 19h08
                      A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                      Rejoignez le Joomla Users Groupe Alsace...
                      roland_d_alsace va-t-il devenir roland_du_grand_est ?

                      Commentaire


                      • #12
                        roland_d_alsace
                        Nous aurions pu nous rencontrer dans notre vie professionnelle.
                        Nous avons à peu près le même âge et une vie professionnelle presque identique.
                        Après la raffinerie de Lorraine, je me suis occupé de l'informatique de la Raffinerie Total de La Mède en Provence,
                        Puis j'ai volé de mes propres ailles et je suis resté en Provence, le temps est meilleur qu'en lorraine à la quelle je reste attaché.
                        J'ai un bon souvenir de mes années passées chez Total.
                        Bien à toi et bonne future année.

                        Commentaire

                        Annonce

                        Réduire
                        Aucune annonce pour le moment.

                        Partenaire de l'association

                        Réduire

                        Hébergeur Web PlanetHoster
                        Travaille ...
                        X