Swoft 容器使用

能够借助Swoft下的Bean类操做容器app

示例:this

将类绑定至容器url

use Swoft\Bean\Annotation\Bean; /** * @Bean("imageLogic") */
class ImageLogic extends BaseLogic { /** * 根据id获取图片 * @param int $id * @return array */
    public static function getOne(int $id): array { return Query::table(Image::class)->where('id',$id)->limit(1)->get(['url','thumb_url'])->getResult(); } }

从容器中取出对象:spa

方法一:注入code

use Swoft\Bean\Annotation\Inject; use App\Models\Logic\ImageLogic; class IndexController{ /** * @Inject("imageLogic") * @var ImageLogic */
    private $imageLogic; public function index() { $this->imageLogic->getOne(); } }

方法二:经过 BeanFactory 类获取对象

use Swoft\Bean\BeanFactory; class IndexController { /** * @RequestMapping(route="index",method=RequestMethod::GET) */
    public function index(Request $request){ //判断容器中是否存在该实例
        var_dump(BeanFactory::hasBean('imageLogic')); //从容器中获取
        $bean = BeanFactory::getBean('imageLogic'); return $bean->getOne(); } }
相关文章
相关标签/搜索