首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态加载服务提供者

动态加载服务提供者
EN

Stack Overflow用户
提问于 2014-02-14 13:29:38
回答 1查看 143关注 0票数 0

我正在为三个不同版本的服务器创建一个带有控制面板的应用程序,它们可能具有不同的数据库布局(这就是我模块化的原因)。我正在关注this tutorial

如何动态加载当前服务器版本的服务提供者?每个版本都有自己的文件夹,选择的版本可以通过Config::get访问,在加载服务提供者时是否已经加载了它?

另外,如果我使用HMVC架构,我是否仍然可以对应用程序范围内的服务器通用控制器使用默认文件夹(而不是模块)?(比如新闻,它不依赖于服务器)。

如果我说得不够清楚,请提问。

EN

回答 1

Stack Overflow用户

发布于 2014-02-14 23:22:08

据我所知,如果不在代码中做一些奇怪的事情,你就不能动态地加载服务提供者,但是服务提供者本身就是类加载器,你应该使用一个服务提供者来动态地加载你的服务:

代码语言:javascript
复制
<?php

class ServiceProvider extends Illuminate\Support\ServiceProvider {

    protected $defer = true;

    public function register()
    {
        $this->app->bind('server', function($app) {

            switch ($this->app['config']['serverVersion']) {
                case 'versionX':
                    return new ServiceClassForServerX();
                    break;

                case 'versionY':
                    return new ServiceClassForServerY();
                    break;

                default:
                    return new ServiceClassForDefaultServer();
                    break;
            }
        });
    }

    public function provides()
    {
        return array('sever');
    }

}

关于文件夹,Laravel让你100%自由地选择你想在app/*中使用的任何文件夹结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21771508

复制
相关文章

相似问题

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