搜尋

首頁  >  問答  >  主體

Laravel: 使用命名空間的自訂函數

是否可以將我的輔助函數放在命名空間中?

我目前的設定(我無法工作)是:

app\Helpers\simple_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/"
        }
    },

app\Services\dde\dde_trait.php

<?php

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

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

我收到的錯誤是找不到類別「App\Helpers\HtmlDomParser」。

但是 HtmlDomParser 不是一個類,而是一個命名空間。

是將 file_get_html() 函數放入 HtmlDomParser 類別中的唯一正確設定嗎? Laravel 版本:8

P粉561323975P粉561323975231 天前426

全部回覆(2)我來回復

  • P粉826429907

    P粉8264299072024-03-28 10:40:47

    雷雷

    回覆
    0
  • P粉055726146

    P粉0557261462024-03-28 00:25:53

    您沒有定義類別“HtmlDomParser”,只定義了命名空間“App\Helpers\HtmlDomParser”。若要呼叫此命名空間中的函數,請使用完全限定版本:

    App\Helpers\HtmlDomParser\file_get_html().

    您可以參考此頁面:https://www.php .net/manual/en/language.namespaces.rules.php

    回覆
    0
  • 取消回覆