Laravel: Benutzerdefinierte Funktionen mit Namespaces
P粉561323975
P粉561323975 2024-03-27 23:28:51
0
2
424

Ist es möglich, meine Hilfsfunktionen in einen Namensraum einzufügen?

Mein aktuelles Setup (das ich nicht zum Laufen bringen kann) ist:

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();
  }
}

Der Fehler, den ich erhalte, ist Klasse „AppHelpersHtmlDomParser“ nicht gefunden.

Aber HtmlDomParser ist keine Klasse, sondern ein Namespace.

Ist

die einzig richtige Einstellung, um die file_get_html()-Funktion in die HtmlDomParser-Klasse einzufügen? Laravel-Version: 8+

P粉561323975
P粉561323975

Antworte allen(2)
P粉826429907
You can do like this.

1- remove namespace from helper file.

app\Helpers\simple_html_dom.php:

P粉055726146

您没有定义类“HtmlDomParser”,只定义了命名空间“App\Helpers\HtmlDomParser”。要调用此命名空间中的函数,请使用完全限定版本:

App\Helpers\HtmlDomParser\file_get_html().

您可以查阅此页面:https://www.php .net/manual/en/language.namespaces.rules.php

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage