是否可以將我的輔助函數放在命名空間中?
我目前的設定(我無法工作)是:
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粉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