在 HMVC codeigniter 应用程序中自动加载共享控制器

Autoload shared controllers in a HMVC codeigniter app

这是我的路径:

/api
    calltek
        application
            config
            controllers
            ...etc
        index.php
        .htaccess
    empresite
        application
            config
            controllers
            ...etc
        index.php
        .htaccess
    gestios
        config
        controllers
            Gestios_login.php
            Gestios_profile.php
        libraries
        models
    shared
        config
        helpers
        language
        libraries

Gestios 和 Shared 是包。 Calltek 和 Gestios 是应用程序。

Calltek autoload.phpgestiosshared 加载资源:

$autoload['packages'] = array(APPPATH.'../../gestios',APPPATH.'../../shared');

在我的 routes.php 中,我定义了调用 Gestios 控制器的路径:

$route['auth'] = 'gestios_login/index';
$route['avatar'] = 'gestios_profile/avatar';
$route['profile/me'] = 'gestios_profile/me';
$route['profile/avatar'] = 'gestios_profile/avatar';
$route['profile/avatar/(:num)'] = 'gestios_profile/avatar/';
$route['profile/config'] = 'gestios_profile/config';

当我尝试导航到示例时。com/api/calltek/auth 应用向我发送 404。

我的calltek .htaccess没问题:

RewriteEngine on

RewriteCond  !^(index\.php|media)
RewriteRule ^(.*)$ index.php/ [L]

案例 Codeigniter 不自动加载控制器作为包 (LINK) 我找到了替代解决方案:

只需创建第二个控制器并扩展共享控制器:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

require APPPATH.'/../../gestios/controllers/Gestios_login.php';

class Auth extends Gestios_login {
    public function __construct(){
        parent::__construct();
    }
}