既存の特定のメソッドに依存するCodeIgniterライブラリを作成しました。この方法は、以前は「非表示」でした(文書化されていませんが、機能しているようです)。最終的にCodeIgniterが作成したprotected
ので、ライブラリから呼び出すことはできません。GitHubのCodeIgniterの開発バージョンには、使用できる新しいパブリックメソッドがあります。
私のライブラリでは、使用is_callable
するメソッド、古いメソッドまたは新しいメソッドを検出するために使用します。問題は、CodeIgniterの現在の安定バージョンにはどちらも存在しないことです。このため、ライブラリは失敗します。正常にエラーを発生させたり、コンストラクター内から例外をスローしたりする方法はありますか?現在、どちらのメソッドも使用できない場合、スクリプトはメソッドを呼び出そうとするとクラッシュします。
メソッドがないためにCodeIgniterライブラリを正しくロードできない場合の規則がわかりません。
編集:これが私が尋ねている行です:
$this->func = is_callable(array($this->db, '_compile_select')) ? '_compile_select' : 'get_compiled_select';
これらのどちらも存在しない場合(_compile_select
またはget_compiled_select
)、ライブラリが。を呼び出そうとするとエラーになります$this->func
。コンベンションがわかりませんがshow_error
、図書館から電話できますか?ライブラリのコンストラクタからエラーをスローする正しい方法は何ですか?