基本的に、いくつかの機能を持つヘルパー ファイルがあります。構成ファイルにヘルパーを自動ロードするので、理論的には再ロードする必要はありません。
ただし、作業中の新しいライブラリ内で (このヘルパーから) 作成した関数を使用しようとすると、次のエラーが発生します。
"Parse error: syntax error, unexpected '(', expecting ',' or ';' in /home/techwork/public_html/giverhub/application/libraries/Udetails.php on line 7"
その関数を他の場所(モジュール、コントローラー、ビュー)で使用すると、正常に機能します。
次に、http: //codeigniter.com/user_guide/general/creating_libraries.htmlの指示に従って、ヘルパーを読み込んでみるべきだと思いました。
参照と読み込みを試みますが、それもエラーによって発生します。
"Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /home/techwork/public_html/giverhub/application/libraries/Udetails.php on line 5"
ライブラリは次のとおりです。
class Udetails{
$CI =& get_instance();// referencing as described in their website
$CI->load->helper('mylogin_helper');// loading the helper
public $member_session = is_member(); // using the function
public $username = $member_session['username'];
public $current_uID = $member_session['id'];
public $member_status = $member_session['status'];
}
ヘルパー内の関数は次のとおりです。
if ( ! function_exists('is_member'))
{
function is_member(){
$CI =& get_instance();
$is_logged_in = $CI->session->userdata('is_logged_in');
$username = $CI->session->userdata('username');
$capabilities = $CI->session->userdata('capabilities');
$user_id = $CI->session->userdata('id');
switch ($capabilities){
case 'registered':
$level = 1;
break;
case 'confirmed':
$level = 2;
break;
case 'charity_admin':
$level = 3;
break;
case 'admin':
$level = 4;
break;
case 'super_admin':
$level = 5;
break;
default:
$level = 0;
}
$userdetails = array();
if(isset($is_logged_in) && $is_logged_in == true){
if($level > 1){
$userdetails['username'] = $username;
$userdetails['status'] = TRUE;
$userdetails['id'] = $user_id;
return $userdetails;
}
}
}
}