Heim  >  Artikel  >  php教程  >  CodeIgniter-Studiennotizen Item9 – Klassenbibliothek in CI

CodeIgniter-Studiennotizen Item9 – Klassenbibliothek in CI

黄舟
黄舟Original
2016-12-29 10:34:181194Durchsuche

CodeIgniter-Klassenbibliothek

Alle Klassenbibliotheksdateien werden im Ordner system/libraries gespeichert. In den meisten Fällen müssen Sie sie im Controller initialisieren, bevor Sie sie verwenden können:

[code]$this->load->library('class name');

Klassenname ist der Klassenname, den Sie verwenden möchten. Um beispielsweise die „Form Validation Class“ zu laden, können Sie Folgendes tun:

[code]$this->load->library('form_validation');

Erstellen Sie Ihre Klassenbibliotheksdatei

Ihre Klassenbibliotheksdatei muss gespeichert werden Im Ordner „application/libraries“ sucht CodeIgniter nach ihnen und initialisiert sie in diesem Ordner.

Namenskonvention

Der erste Buchstabe des Dateinamens wird großgeschrieben. Zum Beispiel: Myclass.php

Der erste Buchstabe der Klassendeklaration wird großgeschrieben. Zum Beispiel: Klasse Myclass

Der Name der Klasse und der Dateiname sollten identisch sein.

Alle Klassen sollten einen Basisprototyp haben

[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 */

In allen Controller-Funktionen können Sie Ihre Klasse auf die folgende Standardmethode initialisieren:

[code]$this->load->library(&#39;someclass&#39;);

Wenn „someclass“ der Dateiname ist, muss die Erweiterung „.php“ nicht hinzugefügt werden. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet.

Sobald Ihre benutzerdefinierte Klasse geladen ist, Sie können die Klasse wie folgt aufrufen. Denken Sie daran, Kleinbuchstaben zu verwenden:

[code]$this->someclass->some_function();  // 对象的实例名永远都是小写的

Beim Initialisieren der Klassenbibliothek können Sie das Array über den zweiten Parameter dynamisch an die Klasse übergeben . Im Konstruktor:

[code]$params = array(&#39;type&#39; => &#39;large&#39;, &#39;color&#39; => &#39;red&#39;);
$this->load->library(&#39;Someclass&#39;, $params);

Wenn Sie diese Funktion verwenden, müssen Sie Parameter zum Klassenkonstruktor hinzufügen:

[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
    }
}
?>


Um auf die Originalressourcen von CodeIgniter in Ihrer benutzerdefinierten Klassenbibliothek zuzugreifen, müssen Sie die Funktion get_instance() verwenden. Im Allgemeinen können Sie in Ihrer Controller-Funktion jede verfügbare CodeIgniter-Funktion über $this aufrufen:

[code]$this->load->helper(&#39;url&#39;);
$this->load->library(&#39;session&#39;);
$this->config->item(&#39;base_url&#39;);

Wenn Sie die CodeIgniter-Originalklasse in einer benutzerdefinierten Klasse verwenden möchten, können Sie Folgendes tun:

Definieren Sie zunächst das CodeIgniter-Objekt und weisen Sie es einer Variablen zu:

[code]$CI =& get_instance();

Sobald Sie ein Objekt als Variable definiert haben, können Sie diesen Variablennamen durch $this ersetzen :

[code]$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');

Originalklasse ersetzen

Benennen Sie einfach Ihre eigene Klasse genauso wie die Originalklasse, damit CodeIgniter die neue Klasse verwendet. Um diese Funktion nutzen zu können, müssen der Dateiname und die Klassendeklaration genau mit der Originalklasse übereinstimmen. Zum Beispiel, um die ursprüngliche E-Mail-Klassenbibliothek zu ersetzen. Sie müssen eine Datei application/libraries/Email.php erstellen und die Klassen wie folgt deklarieren:

[code]class CI_Email 
{
}

Vorhandene Klassen erweitern

bei Bedarf Durch das Hinzufügen einer oder zweier neuer Funktionen zu einer Klassenbibliothek ist es nicht erforderlich, die gesamte Klassenbibliotheksdatei zu ersetzen. Sie können die vorhandene Klasse einfach erweitern (erben). Das Erweitern einer Klasse ähnelt dem Hinzufügen einiger Ausnahmen zur Klasse:

Die erweiterte Klasse muss deklarieren, dass sie von der übergeordneten Klasse erweitert wird.

Der Datei, die die neu erweiterte Klasse enthält, muss MY_ vorangestellt werden (diese Option ist konfigurierbar).

Um beispielsweise die ursprüngliche E-Mail-Klasse zu erweitern, müssen Sie die Datei application/libraries/MY_Email.php erstellen und sie wie folgt in der Datei deklarieren:

[code]class MY_Email extends CI_Email 
{
}


Um eine Erweiterungsunterklasse zu laden, sollten Sie einen Standardzeichennamen verwenden. Zum Laden der oben genannten E-Mail-Erweiterungsunterklasse sollten Sie beispielsweise Folgendes schreiben:

[code]$this->load->library(&#39;email&#39;);


Das Obige ist der Inhalt der CodeIgniter-Studiennotizen Item9 – die Klassenbibliothek in CI. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). )!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn