1. 程式人生 > >Swoft 踩坑筆記十四 - Bean容器

Swoft 踩坑筆記十四 - Bean容器

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 建立服務端與客戶端