「Php/codeigniter/library」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→コントローラーのプロパティをLibraryで使う) |
(→コントローラーのプロパティをLibraryで使う) |
||
行82: | 行82: | ||
</pre> | </pre> | ||
コードが追いづらくなるので、あまりおすすめはしない。 | コードが追いづらくなるので、あまりおすすめはしない。 | ||
+ | ==LibraryのModelをCI抜きで使う== | ||
+ | <?php | ||
+ | defined('BASEPATH') OR exit('No direct script access allowed'); | ||
+ | /** | ||
+ | * @property Hello_model $Hello_model | ||
+ | */ | ||
+ | class Mylibrary { | ||
+ | |||
+ | public function __construct() | ||
+ | { | ||
+ | $CI =& get_instance(); | ||
+ | $CI->load->model('Hello_model'); | ||
+ | $this->Hello_model =& $CI->Hello_model; | ||
+ | } | ||
+ | public function hello() | ||
+ | { | ||
+ | $this->Hello_model->get_data(); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | $this->Hello_model->get_data();のように使える |
2025年5月16日 (金) 03:33時点における版
目次
ライブラリの使い方
application/libraries/ディレクトリに新しいライブラリファイルを作成する
application/libraries/Mylibrary.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Mylibrary { public function __construct() { // コンストラクタ } public function my_method($param = '') { return 'Result: ' . print_r($param,1); } }
ライブラリの呼び出し方
$this->load->library('mylibrary'); echo $this->mylibrary->my_method('parameter'); $params = array('param1' => 'value1', 'param2' => 'value2'); echo $this->mylibrary->my_method($params);
libraryの引数'mylibrary'は、小文字開始になる
初期化パラメータを渡す場合
$params = array('param1' => 'value1', 'param2' => 'value2'); $this->load->library('mylibrary', $params);
ライブラリクラス側
public function __construct($params = []) { // $paramsを処理 }
Libraryで、Modelをロードする
class Mylibrary { public function __construct($params = []) { // コンストラクタ } public function hello() { $CI =& get_instance(); $CI->load->model('Hello_model'); echo print_r($CI->Hello_model->get_data()); } }
コントローラーのプロパティをLibraryで使う
コントローラーの$this->hogehogeをLibraryで使う場合のサンプル
class Library extends MY_Controller { public function index() { $this->load->library('mylibrary'); $this->hogehoge = "hogehoge"; $this->mylibrary->hello(); } }
ライブラリ
class Mylibrary { public function hello() { $CI =& get_instance(); echo $CI->hogehoge; } }
コードが追いづらくなるので、あまりおすすめはしない。
LibraryのModelをCI抜きで使う
<?php defined('BASEPATH') OR exit('No direct script access allowed'); /**
* @property Hello_model $Hello_model */
class Mylibrary {
public function __construct() { $CI =& get_instance(); $CI->load->model('Hello_model'); $this->Hello_model =& $CI->Hello_model; } public function hello() { $this->Hello_model->get_data(); }
} </pre> $this->Hello_model->get_data();のように使える