首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用"use“语句加载类时使用变量

使用"use“语句加载类时使用变量
EN

Stack Overflow用户
提问于 2022-02-18 15:54:11
回答 1查看 79关注 0票数 0

我正在做一个Laravel项目,它将是一个完整的API项目。我已经为自己编写了一种实现API版本控制的方法。我通过在Laravel架构中添加版本号来构建我的项目。

例如,我正在开发API的V0,我将使用我的模型来处理这个体系结构: App\ models \V0\MyModel

我想知道是否有可能,取决于API的当前版本(在中间件中设置),是否有可能根据use语句中的当前变量加载模型?例如:

代码语言:javascript
运行
复制
use App\Models\V0\User;

是否有可能将"V0“存储到一个变量中,并在" use”中使用它来动态加载模型的好版本?

EN

回答 1

Stack Overflow用户

发布于 2022-02-19 11:22:56

如果您真的想这样做,您可以为您的模型创建一个工厂。

代码语言:javascript
运行
复制
<?php

namespace App\Models;

use App\Models\V0\User as UserV0;
use App\Models\V1\User as UserV1;


class UserFactory {
   public static function get(int $version) {
   switch($version){
      case 0:
    return new UserV0();
      case 1:
    return new UserV1();
    }
  }
}

而不是用它

代码语言:javascript
运行
复制
<?php

use App\Models\UserFactory;

$version = 0;
$user = UserFactory::get($version);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71176312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档