Php YII后端实现

Php YII后端实现,php,configuration,yii,directory-structure,yii-modules,Php,Configuration,Yii,Directory Structure,Yii Modules,我已经创建了如下前端后端结构 所以我的结构是 wwwroot/ index.php backend.php assets/ images/ js/ protected/ config/ main.php components/ controllers/ models/ modules/ views/ runtime

我已经创建了如下前端后端结构 所以我的结构是

wwwroot/
    index.php
    backend.php
    assets/
    images/
    js/
    protected/
        config/
            main.php
        components/
        controllers/
        models/
        modules/
        views/
        runtime/
        backend/
            config/
                main.php
            components/
            controllers/
            models/
            modules/
            views/
            runtime/
我的后端配置是

$backend = dirname(dirname(__FILE__));
$frontend = dirname($backend);
yii::setPathOfAlias('backend',$backend);
return array(
    'basePath' => $frontend,
    'controllerPath' => $backend.'/controllers',
    'viewPath' => $backend.'/views',
...
    'import'=>array(
    'backend.modules.rights.*',
    'backend.modules.rights.components.*',
    'backend.models.*',
    'backend.components.*',
    'application.modules.user.models.*',
    'application.modules.user.components.*',
),...
现在我需要从前端访问后端的控制器、模型和视图 比如backend.php/discussion 讨论地点为protected/controllers/DiscussionController 目前只能从index.php/discussion

一个解决办法是 设置'controllerPath'=>$frontend./controllers' 但现在我失去了后端控制器。
所以有没有一种方法,当我调用一个控制器时,它首先查看后端控制器,然后查看前端控制器(如果在后端控制器中找不到)?

就我个人而言,我喜欢将后端(使用安全登录)与前端完全分开,即:完全不同的项目。通过这种方式,可以使用隐藏的子域(如hidden-admin.my-domain.com)访问后端


如前所述,如果您想共享代码,请使用组件或小部件。

我个人喜欢将后端(使用安全登录)与前端完全分开,即:完全不同的项目。通过这种方式,可以使用隐藏的子域(如hidden-admin.my-domain.com)访问后端


如前所述,如果您想共享代码,使用组件或小部件。

您应该能够通过定义路由并将后端路由放在第一位,将主路由放在第二位来实现这一点。我不明白。我该怎么做?看看好的,我现在知道了。所以您是说我应该重定向我的URL。但问题是。如果我将“backend.ohp/discussion”重定向到“index.php/discussion”然后我将再次需要登录(这是我开发我的网站的方式,前端和后端登录是不同的)。我想到了这一点,但这不是解决方案,我想访问后端的fronend cotrollers。无论如何,感谢您的尝试。我看到的另一个解决方案是,我可以轻松地在后端使用前端模块,所以,我要么为普通事物创建一个模块,要么创建一个文件夹“common”,就像“module”文件夹一样,它将包含整个m、v和c。但当我只需要前端的特定模块或控制器时,这个想法就失败了。因此,我迫切希望看到一个完美的解决方案……您应该能够通过定义路由并将后端路由放在第一位,然后将主路由放在第二位来实现这一点。我不明白。我将如何做到这一点?看一看,好吧,我现在明白了。您是说我应该重定向我的URL。但问题是。如果我将“backend.ohp/discussion”重定向到“index.php/discussion”之后,我将再次需要登录(这就是我开发web的方式,其中前端和后端登录是不同的)。我已经想到了,但这不是解决方案,我想访问后端的fronend cotrollers。无论如何,感谢您的尝试。我看到的另一个解决方案是,我可以轻松地在后端使用前端模块,因此,我可以为常见内容创建一个模块,或者创建一个文件夹“common”,就像“module”一样“包含整个m、v和c的文件夹。但当我只需要前端的特定模块或控制器时,这种想法就失败了。”。因此,我渴望看到一个完美的解决方案。。。。。