4

私はCodeigniterを初めて使用し、ゼロから学んでいます。CIドキュメントには次のように書かれています:

$params = array('type' => 'large', 'color' => 'red');
$this->load->library('Someclass', $params);
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Someclass {

    public function __construct($params)
    {
        // Do something with $params
    }
}

配列をパラメーターとして使用してコントローラーから外部ライブラリーにデータを渡す方法の簡単な例を教えてください。簡単な例を見てみたい。

4

2 に答える 2

7

Codeigniter のすべての「ライブラリ」コンストラクターは、単一の引数を期待します。例のように、通常、CI のローダーでクラスをロードするときに渡されるパラメーターの配列です。

$params = array('type' => 'large', 'color' => 'red');
$this->load->library('Someclass', $params);

「$paramsで何かをする」部分について混乱していると思います。パラメータを渡す必要はありませんが、渡す場合は次のように使用できます。

class Someclass {
    public $color = 'blue'; //default color
    public $size = 'small'; //default size
    public function __construct($params)
    {
        foreach ($params as $property => $value)
        {
            $this->$property = $value;
        }
        // Size is now "large", color is "red"
    }
}

必要に応じて、後でいつでも再初期化できます。

$this->load->library('Someclass');
$this->Someclass->__construct($params);

注意すべきもう 1 つの点は、クラスの名前と一致する構成ファイルがある場合、その構成が自動的に読み込まれることです。たとえば、ファイルがある場合application/config/someclass.php

$config['size'] = 'medium';
$config['color'] = 'green';
// etc.

この構成は、ロード時に「someclass」のクラス コンストラクターに自動的に渡されます。

于 2012-10-18T11:18:45.040 に答える
1

ライブラリ ディレクトリに 1 つのファイルを作成しますSomeclass_lib.php

これがあなたのライブラリコードです

if (!defined('BASEPATH')) exit('No direct script access allowed');

class Someclass_lib
{
    public  $type       =   '';
    public  $color      =   '';

    function Someclass_lib($params)
    {
        $this->CI   =&  get_instance();
        $this->type =   $params['type'];
        $this->color    =   $params['color'];
    }
}

ライブラリをロードする場合は、このコードを使用します

$params = array('type' => 'large', 'color' => 'red'); 
$this->load->library('Someclass_lib', $params);
于 2012-10-18T11:18:04.680 に答える