facebook twitter hatena line email

「Php/codeigniter/library」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(コントローラーのプロパティをLibraryで使う)
(LibraryのModelをCI抜きで使う)
行83: 行83:
 
コードが追いづらくなるので、あまりおすすめはしない。
 
コードが追いづらくなるので、あまりおすすめはしない。
 
==LibraryのModelをCI抜きで使う==
 
==LibraryのModelをCI抜きで使う==
<?php
+
<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();のように使える