シンプルであるべきですが、そうではありません。
他のライブラリを使用することを望んでいるライブラリがありますが、何かがうまくいきません。
私の知る限り、 addons/shared_addons/libraries はまったく役に立たず、ライブラリを自動ロードする必要があるため、両方のライブラリは system/cms/libraries にあります (system/cms は本質的にシステム/アプリケーションのようですが、間違っている場合は修正してください)。余談ですが、モジュールから if を呼び出すことができるかどうかを確認するために、ライブラリを shared_addons/libaries に配置しました。私はできませんでした。なぜそこにあるのですか?
Lib1
-db が
必要 -lib2 が必要
Lib2
- セッションが必要
これが何が起こるかです。コントローラ [モジュール] がロードされます。エラーをスローする lib2 を呼び出す lib1 を呼び出します。Lib1 は、すべてのモジュール コントローラによって呼び出されます。Lib2 は、以前に設定され、lib1 によってのみ呼び出されるセッション データを使用します。
lib2 では、$CI=get_instance() を使用して、おそらく CI ライブラリ (データベース、セッションなど) を有効にします。ただし、「致命的なエラー: 非オブジェクトでのメンバー関数 userdata() の呼び出し」を通過できません。によって呼び出されます
//system/cms/libraries/lib2.php
$this->CI =& get_instance();
//$this->load->library('database'); == "can't find class database"
$ekeyLoc = $this->CI->session->userdata('ronery');
これをモジュールコントローラーで実行すると、期待どおりに動作します。
そのエラーをグーグルで検索すると、多くの「db not loaded」が表示されます。念のため、データベースをロードしようとしましたが、どうも、クラス 'database' が見つかりません。NB: データベースは自動ロードされています。
CodeIgniter スーパー オブジェクトを割り当てると、jabloney 全体を取得していると思いますよね? 私はそうだと思いました。しかし、念のため、データベース クラスをモジュール/コントローラーにロードしてみることにしました。
私は pyroCMS のドキュメントを調べてトリックについて調べてみましたが、私の状況にはあまり役に立ちませんでした。
モジュール コントローラからコア ライブラリをロードできないのはなぜですか?
system/cms/libraries のカスタム ライブラリにコア ライブラリをロードできないのはなぜですか?
割り当てた CodeIgniter スーパー オブジェクトに session/db がらくたが含まれていないのはなぜですか?
/addons/shared_addons/library からライブラリをロードできないのはなぜですか?
$this->session->userdata()
CodeIgniter スーパー オブジェクトが割り当てられているにもかかわらず、system/cms/libraries フォルダー内のライブラリーからではなく、モジュール コントローラーからの呼び出しが機能するのはなぜですか?
ありがとう。
2 日間回答がなかった後、ヘルプを検索し続けると、必然的にこの質問が Google の検索結果のトップに表示されることは、イライラすると同時に愉快なことでもあります。FML。