Adakah mungkin untuk meletakkan fungsi pembantu saya dalam ruang nama?
Persediaan semasa saya (yang saya tidak dapat bekerja) ialah:
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(); } }
Ralat yang saya dapat ialah Kelas "AppHelpersHtmlDomParser" tidak ditemui.
Tetapi HtmlDomParser bukan kelas, tetapi ruang nama.
Adakah satu-satunya tetapan yang betul untuk meletakkan fungsi file_get_html()
ke dalam kelas HtmlDomParser? Versi Laravel: 8+
Anda tidak mentakrifkan kelas "HtmlDomParser", hanya ruang nama "AppHelpersHtmlDomParser". Untuk memanggil fungsi dalam ruang nama ini, gunakan versi yang layak sepenuhnya:
Anda boleh menyemak halaman ini: https://www.php .net/manual/en/language.namespaces.rules.php