Bean容器怎么说呢。。
以往我们要调用一个类,是不是得new啊?
而Bean呢,是在启动swoft的时候就给你实例化了,会一直存在,你用的时候就不需要去new,这样可以节省资源。听起来好像也没什么,但是如果是百万级的呢?
示例
创建 swoft/app/Controllers/Index/BeanController.php
namespace App\Controllers\Index;
/**
* @\Swoft\Bean\Annotation\Bean("beanDome")
*/
class BeanController
{
public function test()
{
return '唱战歌:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊';
}
}
到别的控制器里测试
查看是否存在bean
use Swoft\Bean\BeanFactory;
$result = BeanFactory::hasBean("beanDome");
var_dump($result);
存在为true,不存在为false。
调用
use Swoft\Bean\BeanFactory;
$bean = BeanFactory::getBean('beanDome');
var_dump($bean->test());
第二种
use Swoft\Core\ApplicationContext;
$bean =ApplicationContext::getBean('beanDome');
var_dump($bean->test());
第三种
use Swoft\App;
$bean = App::getBean("beanDome");
var_dump($bean->test());
推荐用第三种,比较短。
下一篇:RPC 创建服务端与客户端