Laravel : fonctions personnalisées utilisant des espaces de noms
P粉561323975
P粉561323975 2024-03-27 23:28:51
0
2
416

Est-il possible de placer mes fonctions d'assistance dans un espace de noms ?

Ma configuration actuelle (que je n'arrive pas à faire fonctionner) est :

appHelperssimple_html_dom.php :

<?php

namespace App\Helpers\HtmlDomParser;

function file_get_html(){
  echo 'file_get_html() called';
}

composer.json

"autoload": {
        "files": [
            "app/Helpers/simple_html_dom.php",
            "app/Helpers/common.php"
        ],
        "psr-4": {
            "App\": "app/",
            "Database\Factories\": "database/factories/",
            "Database\Seeders\": "database/seeders/"
        }
    },

appServicesddedde_trait.php

<?php

namespace App\Services\dde;
use App\Helpers\HtmlDomParser;

trait ddeTrait{
  public function parse(){
    $content = HtmlDomParser::file_get_html();
  }
}

L'erreur que j'obtiens est Class "AppHelpersHtmlDomParser" introuvable.

Mais HtmlDomParser n'est pas une classe, mais un espace de noms.

Est-ce que

est le seul paramètre correct pour mettre la fonction file_get_html() dans la classe HtmlDomParser ? Version Laravel : 8+

P粉561323975
P粉561323975

répondre à tous(2)
P粉826429907
You can do like this.

1- remove namespace from helper file.

app\Helpers\simple_html_dom.php:

P粉055726146

Vous n'avez pas défini la classe "HtmlDomParser", seulement l'espace de noms "AppHelpersHtmlDomParser". Pour appeler des fonctions dans cet espace de noms, utilisez la version complète :

App\Helpers\HtmlDomParser\file_get_html().

Vous pouvez consulter cette page : https://www.php .net/manual/en/lingual.namespaces.rules.php

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!