私はまだOOPには新しく、CodeIgniter2 + Doctrine2で学習しています。CI2の共有関数:ヘルパー?としょうかん?
私は、私のプロジェクトのさまざまな分野で便利ないくつかの共有機能を持っていますので、私はそれらを呼びたいと思います。手続き型PHPでは、それらをライブラリファイルに貼り付け、呼び出すだけです。
Fatal error: Call to undefined method Turn::call_function()
をだから私は多分私がロードする考え出し:しかし、それは、私もあなたがcall_function()
を使用するために必要なことをどこかで読んが、唯一の私を得たことを...今私のため
include 'function_library.php';
$name = $this -> function_library -> generate_male_name();
Message: Undefined property: Turn::$function_library
を働いていませんそれは助手として。
$this->load->helper('character_helper');
echo generate_male_name();
Fatal error: Using $this when not in object context in /PATH/systemFolder/helpers/character_helper.php on line 19
ライン19:
$query = $this->doctrine->em->createQuery("select max(u.id) from ORM\Dynasties2\Malenames u");
私は図書館としてそれを設定すると考えられるが、正直なところ、それはクラスと、そのような面で私の頭の上に少しを取得するために開始します。私はそれを試していない。ここで
は、その関数の全体です:
function generate_male_name() {
$query = $this->doctrine->em->createQuery("select max(u.id) from ORM\Dynasties2\Malenames u");
$result = $query->getSingleResult();
//echo $result2[1];
$highval = $result[1];
$random_name = rand(1,$highval);
//echo $random_name;
$name = $this->doctrine->em->find('ORM\Dynasties2\Malenames', $random_name);
return $name->getName();
}
はどうすればこれを行うことができますか?
編集:
もう少し試してみても、まだ成功していません。
私はTHIRD_PARTYで私function_libraryを入れて、やった:
$this->load->add_package_path(APPPATH.'third_party/function_library/');
$name = $this -> generate_male_name();
Fatal error: Call to undefined method Turn::generate_male_name()
または$name = $this -> function_library -> generate_male_name();
Message: Undefined property: Turn::$function_library
私はオートローダーでそれを呼び出す夢中ないんだけど、私はそれを必要としませんどこでも、それは効率的ではないようです。
私はライブラリを読んだことがありますが、私が言ったように、クラスはすぐに私の頭の上にあり、新しいライブラリを作成することは私にとって少し難しいようです。
* ここで最善の解決策は何ですか?いくつかの機能をどのように共有しますか?ライブラリには、私が行く必要がある方法です、または私はヘルパーやshared_functions事の仕事をしようとしてではマイナーな何かが足りないのですか?*
設定ファイルでヘルパーを自動読み込みしようとしました。また、ライブラリをthird_partyフォルダに入れて読み込み、そこから呼び出すこともできます。 – Lowkase
codeigniterでは、codeigniterのインスタンスを $ ci =&get_instance();を使用して呼び出すことができます。 doctrineについてはわかりませんが – allen213
http://codeigniter.com/user_guide/general/creating_libraries.html – allen213