ホームページ > php教程 > PHP开发 > CodeIgniter の学習メモ 項目 9 -- CI のクラス ライブラリ

CodeIgniter の学習メモ 項目 9 -- CI のクラス ライブラリ

黄舟
リリース: 2016-12-29 10:34:18
オリジナル
1225 人が閲覧しました

CodeIgniter クラス ライブラリ

すべてのクラス ライブラリ ファイルは system/libraries フォルダーに保存されます。ほとんどの場合、使用する前にコントローラーで初期化する必要があります:

[code]$this->load->library('class name');
ログイン後にコピー

class name は使用するクラス名です。たとえば、「フォーム検証クラス」をロードするには、次のようにすることができます:

[code]$this->load->library('form_validation');
ログイン後にコピー

クラス ライブラリ ファイルを作成します

クラス ライブラリ ファイルは application/libraries フォルダーに保存する必要があります。CodeIgniter はこのフォルダーにあります。そしてそれらを初期化します。

命名規則

ファイル名の最初の文字は大文字になります。例: Myclass.php

クラス宣言の最初の文字は大文字です。例: class Myclass

クラスの名前とファイル名は同じである必要があります。

すべてのクラスには基本的なプロトタイプが必要です

[code]<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
class Someclass {
    public function some_function()
    {
    }
}
/* End of file Someclass.php */
ログイン後にコピー

すべてのコントローラー関数で、次の標準的な方法でクラスを初期化できます:

[code]$this->load->library(&#39;someclass&#39;);
ログイン後にコピー

someclass がファイル名の場合、「.php」を追加する必要はありません。 " 拡張子。ここでの名前は大文字と小文字が区別されません。

カスタム クラスが読み込まれたら、小文字の名前を使用することに注意しながら、次の方法でクラスを呼び出すことができます:

[code]$this->someclass->some_function();  // 对象的实例名永远都是小写的
ログイン後にコピー

クラス ライブラリを初期化するとき、 2 番目のパラメータを通じてクラスのコンストラクタに配列を動的に渡すことができます:

[code]$params = array(&#39;type&#39; => &#39;large&#39;, &#39;color&#39; => &#39;red&#39;);
$this->load->library(&#39;Someclass&#39;, $params);
ログイン後にコピー

この機能を使用するときは、クラスのコンストラクタにパラメータを追加する必要があります:

[code]<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
class Someclass {
    public function __construct($params)
    {
        // Do something with $params
    }
}
?>
ログイン後にコピー


独自のパラメータで使用するには定義されたクラス ライブラリ内の CodeIgniter の元のリソースにアクセスするには、get_instance() 関数を使用する必要があります。一般的に、コントローラー関数では、$this を通じて利用可能な CodeIgniter 関数を呼び出すことができます:

[code]$this->load->helper(&#39;url&#39;);
$this->load->library(&#39;session&#39;);
$this->config->item(&#39;base_url&#39;);
ログイン後にコピー

CodeIgniter のオリジナル クラスをカスタム クラスで使用したい場合は、これを行うことができます:

まず、CodeIgniter オブジェクトが割り当てられるものを定義します。変数:

[code]$CI =& get_instance();
ログイン後にコピー

オブジェクトを変数として定義したら、$this の代わりにその変数名を使用できます:

[code]$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
ログイン後にコピー

元のクラスを置き換えます

独自のクラスに名前を付けるだけです CodeIgniter はこの新しいものを使用できます元のクラスと同じようなクラス。この機能を使用するには、ファイル名とクラス宣言が元のクラスとまったく同じである必要があります。たとえば、元の Email クラス ライブラリを置き換えます。ファイル application/libraries/Email.php を作成し、次のようにクラスを宣言する必要があります:

[code]class CI_Email 
{
}
ログイン後にコピー

既存のクラスを拡張する

既存のクラス ライブラリに 1 つまたは 2 つの新しい機能を追加する必要がある場合は、次のようにします。クラス ライブラリ ファイル全体を置き換える必要はありません。既存のクラスを拡張 (継承) するだけで済みます。クラスの拡張は、クラスに例外を追加するのと同じです。

新しく拡張されたクラスを含むファイルには、プレフィックス MY_ を付ける必要があります (このオプションは構成可能です)。

たとえば、元の Email クラスを拡張するには、application/libraries/MY_Email.php ファイルを作成し、ファイル内で次のように宣言する必要があります:


[code]class MY_Email extends CI_Email 
{
}
ログイン後にコピー

拡張されたサブクラスをロードするには、たとえば、上記のメール拡張サブクラスをロードするには、次のように記述します。


[code]$this->load->library(&#39;email&#39;);
ログイン後にコピー


上記は、CodeIgniter の学習メモの内容です。Item9-クラス ライブラリです。 CI では、詳細 関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート