我正在制作laravel的包。但是阶级;Username/PackageName/Class";找不到。
我读过这个。但我找不到问题。
请帮帮我。
这是我的代码
composer.json
{
"name": "username/packageName",
"require": {
"php": "7.3",
"laravel/framework": "^6.0"
},
"autoload": {
"psr-4": {
"username\packageName\": "src/"
}
},
"license": "MIT",
"authors": [
],
"extra": {
"laravel": {
"providers": [
"username\packgeName\TestServiceProvider"
]
}
}
}
src/TestServiceProvider
<?php
namespace usernamepackageName;
use IlluminateSupportServiceProvider;
class TestServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind('test', function ($app) {
return new Test();
});
}
}
src/Test.php
<?php
namespace usernamepackageName;
class Test {
public static function test(){
return 'abc';
}
}
在控制器中
use usernamepackageNameTest;
/* ~~~~ */
dd(Test::test()); // error
添加当前composer.json.之后
"repositories": [
{
"type": "path",
"url": "vendor/username/packageName",
"symlink": true
}
]
> composer dump-autoload
感谢您阅读我的代码。
用户名->我的用户名
packageName->我的包裹名称
在测试类中设置extend Facades
类。如果你想静态地获取文件的所有功能,
class Test extends Facades {
public static function getFacadeAccessor(){
return 'classNameWhereFunctionIsWritten' //say TestService has test() function
}
}
并在提供程序"classNameWhereFunctionIsWritten"中传递此classNameWhereFunctionIsWritten
。