3

人気の Modular Extensions - HMVC がインストールされています。

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

codeigniter 2.2.2でセットアップしますが、すべてが正常に機能するはずのときに、このエラーが発生します

MX_Router::_set_default_controller() へのアクセス レベルは、C:..\application\third_party\MX\Router.php の 241 行で public (クラス CI_Router と同様) でなければなりません

4

1 に答える 1

7

解決策 1

Router.php のいくつかのメソッドの可視性を変更する必要があったため、次のメソッドを から に変更しprotectedpublic修正しました

_set_default_controller()
_set_request()
_set_default_controller()

ほとんど機能しましたが、おなじみの CodeIgniter へようこそメッセージの上に警告が表示されます

Message: Undefined property: MY_Router::$translate_uri_dashes

そのため、このプロパティを空でない場合にラップして、このプロパティをバイパスします

if(!empty($this->translate_uri_dashes))
        {
            if ($this->translate_uri_dashes === TRUE)
            {
                foreach(range(0, 2) as $v)
                {
                    isset($segments[$v]) && $segments[$v] = str_replace('-', '_', $segments[$v]);
                }
            }
        }

そして今、それは動作します!


解決策 2

からダウンロードできる準備ができている HMVC-ci があります。

http://lab.clearpixel.com.au/2011/10/modularise-your-codeigniter-2-applications-with-modular-extensions-%E2%80%93-hmvc/

しかし、それはci 2.2.2ではなくci 2.0.3バージョンです

解決策 3 (最適)

コア ファイル (MY_Loader および MY_Router) とサードパーティ フォルダー (MX) を ci 2.0.3 の事前構成済みバージョン (上記のリンク) から ci 2.2.2 の対応する場所に配置すると、問題なく動作します。

于 2015-05-31T07:15:31.373 に答える