代码拉取完成,页面将自动刷新
实现PSR-11容器接口
composer require twinkle/di --prefer-dist --optimize-autoloader
Container
$definitions = [
'hello' => [
'class' => \HelloWorld::class,
]
];
$container = new \Twinkle\DI\Container($definitions);
// 是否注入容器
isset($container['hello'])
// 获取实例
$instance = $container['hello'];
$instance->someMethod();
// 释放
unset($container['hello']);
ServiceLocator
namespace App\Services;
class HelloService
{
public function sayHello()
{
return 'hello';
}
}
namespace App\Controllers;
use App\Services\HelloService;
use Twinkle\DI\ServiceLocatorTrait;
/**
* Class HelloController
* @package App\Controllers
* @property HelloService $helloService
*/
class HelloController
{
use ServiceLocatorTrait;
public static function supportAutoNamespaces()
{
return [
'App\\Services',
'Twinkle\\Services'
];
}
public function indexAction()
{
echo $this->helloService->sayHello();
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型