「Php/codeigniter/library」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→コントローラーのプロパティをLibraryで使う) |
(→LibraryのModelをCI抜きで使う) |
||
行83: | 行83: | ||
コードが追いづらくなるので、あまりおすすめはしない。 | コードが追いづらくなるので、あまりおすすめはしない。 | ||
==LibraryのModelをCI抜きで使う== | ==LibraryのModelをCI抜きで使う== | ||
− | < | + | <pre> |
defined('BASEPATH') OR exit('No direct script access allowed'); | defined('BASEPATH') OR exit('No direct script access allowed'); | ||
/** | /** |
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抜きで使う
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(); } }
$this->Hello_model->get_data();のように使える