1

私は codeigniter で HMVC 構造を持つアプリケーションの作成に取り組んでおり、API セントリック アプリケーションも必要なので、HMVC にはhttps://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvcを使用し、 Phil SturgeonのRest_Controller を使用しました。今はすべて正常に動作していますが、問題はモジュール内の各コントローラーに対して静的パスを追加する必要があることです

require APPPATH.'modules/modulename/libraries/REST_Controller.php'; 

このパスを動的にしたい、またはモジュールのライブラリフォルダー内の各モジュールのライブラリを自動ロードしたいのですが、module/config/autoload.php にライブラリ名を追加しても機能しません。理由はアプリケーションのコードフローだと思います、最初にアプリケーションフローがコントローラーに行き、REST_Controllerを拡張するクラスに到達し、REST_Controllerクラスを読み込めないというエラーが発生します

注: Rest_Controller.php と Format.php を application/libraries/ フォルダーに配置すると、すべて正常に動作しますが、これをモジュール化し、モジュールを安静にしたい

モジュール/ライブラリから具体的にライブラリをロードするにはどうすればよいですか?モジュールにコードイグナイターの完全なインスタンスが存在するように、適切なモジュールにする方法、メインアプリケーションからロードされたファイルを含めて自由に動作するはずです。

私のフォルダ構造は次のとおりです

アプリケーション
- - モジュール
- - - - モジュール名 - -
- - - - コントローラー
- - - - - - ライブラリー
- - - - - - 構成 - -
- - - - モデル
- - - - - - ビュー

application/modules/module_name/libraries/Rest_Controller.php の私の Rest_Controller クラス

abstract class REST_Controller extends MX_Controller

application/modules/module_name/controllers/User.php のコントローラー クラス

require APPPATH.'modules/modulename/libraries/REST_Controller.php';
class User extends REST_Controller
{

これは正常に動作しますが、require 行を一番上から削除すると動作せず、ライブラリ名を /modulename/config/autoload.php の autoload.php に追加しても機能しません。

動作しません 私の autoload.php /application/modules/modulename/config/autoload.php

<?phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');
$autoload['packages'] = array();
$autoload['libraries'] = array('database', 'session','modulename/REST_Controller');
$autoload['helper'] = array('url', 'file');
$autoload['config'] = array();
$autoload['language'] = array();
$autoload['model'] = array();

私のapplication/config/autoload.phpのautoload.phpは空です。これは、autoloadが言及されていないことを意味します

4

1 に答える 1