Maison > Questions et réponses > le corps du texte
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粉8264299072024-03-28 10:40:47
You can do like this. 1- remove namespace from helper file. app\Helpers\simple_html_dom.php:répondre0
P粉0557261462024-03-28 00:25:53
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