Heim > Backend-Entwicklung > PHP-Tutorial > Tipps zur Verwendung der Thinkphp-Einzelbuchstabenfunktion

Tipps zur Verwendung der Thinkphp-Einzelbuchstabenfunktion

WBOY
Freigeben: 2016-05-16 09:00:20
Original
1868 Leute haben es durchsucht

방법A

컨트롤러를 내부적으로 인스턴스화하는 메서드는 다음 형식을 호출하는 데 사용됩니다: A('[project://][group/]module','controller layer name')
가장 간단한 사용법:

코드 복사 코드는 다음과 같습니다.
$User = A('User');

은 현재 프로젝트의 UserAction 컨트롤러를 인스턴스화하는 것을 의미합니다(이 컨트롤러에 해당하는 파일은 Lib/Action/UserAction.class에 있습니다.). 그룹 모드가 채택되고 다른 관리 그룹 컨트롤러를 인스턴스화하려는 경우 다음을 수행할 수 있습니다. 사용:

코드 복사 코드는 다음과 같습니다.
$User = A('Admin/User');

프로젝트 간 인스턴스화도 지원됩니다(프로젝트 디렉터리는 동일한 수준으로 유지되어야 함)

코드 복사 코드는 다음과 같습니다.
$User = A('Admin://User' );

은 관리 프로젝트
에서 UserAction 컨트롤러를 인스턴스화하는 것을 나타냅니다. 버전 1에는 계층적 컨트롤러에 대한 지원이 추가되었으므로 A 메서드를 사용하여 다른 컨트롤러를 인스턴스화할 수도 있습니다. 예:

코드 복사 코드는 다음과 같습니다.
$User = A('User','Event) ;

UserEvent 컨트롤러를 인스턴스화합니다(해당 파일은 Lib/Event/UserEvent.class에 있습니다.).
컨트롤러를 인스턴스화한 후 컨트롤러에서 메서드를 호출할 수 있습니다. 그러나 프로젝트 전체를 호출할 때 작업 메서드에 현재 컨트롤러에 대한 특수 변수 작업이 있는 경우 일반적으로 알 수 없는 부분이 있다는 점에 유의해야 합니다. 공개 호출이 필요한 컨트롤러 레이어는 너무 많은 종속성 없이 별도로 개발하는 것이 좋습니다.

B방법

이것은 동작과 함께 제공되며

와 같은 특정 동작을 수행할 수 있는 새로운 기능입니다.

코드 복사 코드는 다음과 같습니다.
B('app_begin');

즉, 프로젝트가 시작되기 전에 이 동작으로 정의된 모든 기능이 실행됩니다. 2개의 매개변수를 지원합니다. 두 번째 매개변수는 와 같은 배열을 허용해야 합니다.

코드 복사 코드는 다음과 같습니다.
B('app_begin',array("name"= & gt; "tdweb","time"=>time()));

C 방식

C 방법은 Think가 구성 매개변수를 설정, 획득, 저장하는 데 사용하는 방법으로, 더 자주 사용됩니다.
C 메소드를 이해하려면 먼저 Think의 구성을 이해해야 합니다. C 메소드의 모든 동작은 구성과 연관되어 있기 때문입니다. Think의 구성 파일은 배열 형식으로 정의됩니다.
함수 오버로딩 설계로 인해 사용법이 많아 하나씩 설명하겠습니다.
매개변수 설정

코드 복사 코드는 다음과 같습니다.
C('DB_NAME','think');

DB_NAME 구성 매개변수의 값이 think로 설정되어 있음을 나타냅니다. 구성 매개변수는 대소문자를 구분하지 않으므로 다음 작성 방법은 동일합니다.

코드 복사 코드는 다음과 같습니다.
C('db_name','think');

그러나 구성 정의 사양은 동일한 대문자로 유지하는 것이 좋습니다.
프로젝트의 모든 매개변수는 적용되기 전에 이 방법을 통해 동적으로 변경될 수 있습니다. 마지막 설정 값은 기존 구성의 이전 설정이나 정의를 덮어쓰며 매개변수 구성 방법을 사용하여 새 구성을 추가할 수도 있습니다.
다음과 같은 보조 구성 매개변수 설정을 지원합니다.

코드 복사 코드는 다음과 같습니다.
C('USER.USER_ID',8);

레벨 2 이상으로 매개변수를 구성하는 것은 권장되지 않습니다.
여러 매개변수를 설정하려면 일괄 설정을 사용할 수 있습니다. 예:

코드 복사 코드는 다음과 같습니다.
$config['user_id'] = 1;
$config['user_type'] = 1;
C($config);

Wenn der erste Parameter der C-Methode an ein Array übergeben wird, bedeutet dies eine Stapelzuweisung. Die obige Zuweisung entspricht:

Code kopieren Der Code lautet wie folgt:
C('USER_ID',1);
C('USER_TYPE',1);

Parameter abrufen
Um die eingestellten Parameter zu erhalten, können Sie Folgendes verwenden:

Code kopieren Der Code lautet wie folgt:
$userId = C('USER_ID');
$userType = C('USER_TYPE');

Wenn der Parameter USER_ID nicht definiert wurde, wird NULL zurückgegeben.
Es kann auch das Abrufen sekundärer Konfigurationsparameter unterstützen, wie zum Beispiel:

Code kopieren Der Code lautet wie folgt:
$userId = C('USER.USER_ID');

Wenn die eingehenden Konfigurationsparameter leer sind, bedeutet dies, dass alle Parameter abgerufen werden:

Code kopieren Der Code lautet wie folgt:
$config = C();

Einstellungen speichern
Version .1 fügt eine Funktion zum dauerhaften Speichern von Einstellungsparametern hinzu, nur für die Stapelzuweisung, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
$config['user_id'] = 1;
$config['user_type'] = 1;
C($config,'name');

Nachdem die Konfigurationsparameter stapelweise festgelegt wurden, werden alle aktuellen Konfigurationsparameter in der Cache-Datei (oder anderen konfigurierten Caching-Methoden) gespeichert.
Wenn Sie nach dem Speichern die gespeicherten Parameter abrufen möchten, können Sie verwenden

Code kopieren Der Code lautet wie folgt:
$config = C('','name') ;

Unter anderem ist der Name die Cache-ID, die beim vorherigen Speichern von Parametern verwendet wurde. Sie muss konsistent sein, um die gespeicherten Parameter korrekt abzurufen. Die abgerufenen Parameter werden ohne manuelles Zusammenführen mit den aktuellen Konfigurationsparametern zusammengeführt.

D-Methode

D-Methode sollte die am häufigsten verwendete Methode sein. Sie wird zum Instanziieren benutzerdefinierter Modellklassen verwendet. Sie ist eine Kapselung der Modellklasseninstanziierung durch das Think-Framework. Sie implementiert auch den Singleton-Modus und unterstützt projektübergreifende Aufrufe . Das Aufrufformat lautet wie folgt:
D('[Projekt://][Gruppe/]Modell','Name der Modellebene')
Der Rückgabewert der Methode ist das instanziierte Modellobjekt.
Die D-Methode kann die Modellklasse automatisch erkennen. Wenn sie nicht vorhanden ist, wird das Modell nicht instanziiert wiederholt instanziiert.
Die D-Methode wird am häufigsten verwendet, um ein benutzerdefiniertes Modell des aktuellen Projekts zu instanziieren, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
// Instanziiere das Benutzermodell
$User = D('User');

Es importiert die Datei Lib/Model/UserModel.class unter das aktuelle Projekt und instanziiert dann die UserModel-Klasse, sodass der tatsächliche Code möglicherweise dem folgenden entspricht:

Code kopieren Der Code lautet wie folgt:
import('@.Model.UserModel' );
$User = new UserModel();

Wenn Sie jedoch die D-Methode verwenden und die UserModel-Klasse nicht vorhanden ist, ruft sie automatisch auf

Code kopieren Der Code lautet wie folgt:
neues Modell('Benutzer');

Und es ist nicht erforderlich, beim zweiten Aufruf erneut zu instanziieren, was einen gewissen Aufwand für die Objektinstanziierung reduzieren kann.
Die D-Methode kann die Instanziierung von Modellen über Gruppen und Projekte hinweg unterstützen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
//Instanziieren Sie das Benutzermodell des Admin-Projekts
D('Admin://Benutzer')
//Instanziieren Sie das Benutzermodell der Admin-Gruppe
D('Admin/Benutzer')

Hinweis: Um das projektübergreifende Aufrufmodell zu implementieren, müssen Sie sicherstellen, dass die Verzeichnisstrukturen der beiden Projekte parallel sind.
Ab Version .1 kann die D-Methode aufgrund der zusätzlichen Unterstützung hierarchischer Modelle auch andere Modelle instanziieren, wie zum Beispiel:

Code kopieren Der Code lautet wie folgt:
// Instanziieren Sie die UserService-Klasse
$User = D('User','Service');
// UserLogic-Klasse instanziieren
$User = D('User','Logic');

Code kopieren Der Code lautet wie folgt:
D('User','Service');

Lib/Service/UserService.class wird importiert und instanziiert, was dem folgenden Code entspricht:

Code kopieren Der Code lautet wie folgt:
import('@.Service.UserService' );
$User = new UserService();

F-Methode

Die F-Methode ist eigentlich eine Teilmenge der S-Methode. Sie wird nur zum einfachen Daten-Caching verwendet und unterstützt nicht die Cache-Gültigkeitsdauer die S-Methode. Daher nennen wir sie auch die Fast-Cache-Methode.

Die Merkmale der F-Methode sind:
Einfaches Daten-Caching;
Als Datei speichern;
Laden Sie den Cache, indem Sie Daten zurückgeben Unterstützt das Zwischenspeichern von Unterverzeichnissen und die automatische Erstellung Unterstützt das Löschen von Cache und Batch-Löschung; Schreib- und Lese-Caching


Code kopieren Der Code lautet wie folgt:F('data','test data');
Der standardmäßige Speicherstartpfad ist DATA_PATH (diese Konstante befindet sich in der Standardkonfiguration unter RUNTIME_PATH.'Data/'), was bedeutet, dass eine Cache-Datei mit dem Dateinamen DATA_PATH.'data generiert wird.
Hinweis: Stellen Sie sicher, dass Ihre Cache-ID eindeutig ist, um Datenüberschreibungen und Konflikte zu vermeiden.
Wenn Sie das nächste Mal zwischengespeicherte Daten lesen, verwenden Sie:


Code kopieren Der Code lautet wie folgt:$Data = F('data');
Wir können es in einem Unterverzeichnis speichern, zum Beispiel:

Code kopieren Der Code lautet wie folgt:F('user/data',$data); // Cache-Schreiben F('user/data'); // Cache lesen
Die Cache-Datei DATA_PATH.'user/data.' wird generiert. Wenn das Benutzer-Unterverzeichnis nicht vorhanden ist, werden auch mehrstufige Unterverzeichnisse unterstützt, z. B.:

Code kopieren Der Code lautet wie folgt:F('level1/level2/data',$data );
Wenn Sie das Startverzeichnis des Caches angeben müssen, können Sie die folgende Methode verwenden:

Code kopieren Der Code lautet wie folgt:F('data',$data,TEMP_PATH);
Beim Abrufen müssen Sie Folgendes verwenden:

Code kopieren Der Code lautet wie folgt:F('data','',TEMP_PATH);
Cache löschen
Das Löschen des Caches ist ebenfalls einfach, verwenden Sie:


Code kopieren Der Code lautet wie folgt:F('data',NULL); Die Übergabe von NULL als zweiten Parameter bedeutet, dass der als Daten identifizierte Datencache gelöscht wird.
Unterstützt die Stapellöschfunktion, insbesondere für den Unterverzeichnis-Cache. Angenommen, wir möchten alle zwischengespeicherten Daten im Benutzerunterverzeichnis löschen, können wir Folgendes verwenden:


Code kopieren

Der Code lautet wie folgt:
F('user/*',NULL);

Oder verwenden Sie zum Löschen Filterbedingungen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
F('user/[^a]*', NULL);

G-Methode

Die Funktionen, die Thinkphp seit langem über die Methoden debug_start, debug_end und sogar die Debug-Klasse ausführen muss, wurden in Version 3.1 durch eine einfache G-Methode ersetzt, was ein großartiges Upgrade darstellt.
Die Funktion der G-Methode umfasst zwei Funktionen: Markierungsposition und Intervallstatistik. Schauen wir uns die spezifische Verwendung an:
Standort markieren
Die erste Verwendung der G-Methode besteht darin, die Position zu markieren, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
G('begin');

Zeigt an, dass die aktuelle Position als Start-Tag markiert ist und die Ausführungszeit der aktuellen Position aufgezeichnet wird. Wenn die Umgebung dies unterstützt, kann auch die Speichernutzung aufgezeichnet werden. G-Methodenmarker können überall aufgerufen werden.
Laufzeitstatistik
Nachdem wir die Position markiert haben, können wir die G-Methode erneut aufrufen, um Intervallstatistiken durchzuführen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
G('begin');
// ...Andere Schnipsel
G('Ende');
// ...vielleicht gibt es hier noch anderen Code
// Statistisches Intervall durchführen
echo G('begin','end').'s';

G('begin','end') bedeutet, dass die Ausführungszeit von der Startposition bis zur Endposition gezählt wird (Einheit: Sekunden). Der Beginn muss eine markierte Position sein. Wenn die Endposition zu diesem Zeitpunkt noch nicht markiert ist Markieren Sie automatisch die aktuelle Position als End-Tag und das Ausgabeergebnis ähnelt:

Code kopieren Der Code lautet wie folgt:
0,0056s

Die standardmäßige statistische Genauigkeit beträgt 4 Dezimalstellen. Wenn Sie der Meinung sind, dass diese statistische Genauigkeit nicht ausreicht, können Sie sie auch wie folgt festlegen:

Code kopieren Der Code lautet wie folgt:
G('begin','end',6) .'s ';

Mögliche Ausgabe wäre:

Code kopieren Der Code lautet wie folgt:
0,005587s

Statistiken zum Speicher-Overhead
Wenn Ihre Umgebung Speichernutzungsstatistiken unterstützt, können Sie auch die G-Methode verwenden, um Intervall-Speicher-Overhead-Statistiken (Einheit: KB) durchzuführen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
echo G('begin','end',' m') .'kb';

Der dritte Parameter verwendet m, um die Speicher-Overhead-Statistik darzustellen. Das Ausgabeergebnis kann sein:

Code kopieren Der Code lautet wie folgt:
625kb

Wenn das End-Tag nicht markiert ist, wird die aktuelle Position automatisch zuerst als End-Tag markiert.
Wenn die Umgebung keine Speicherstatistiken unterstützt, ist dieser Parameter ungültig und es werden weiterhin Intervalllaufzeitstatistiken durchgeführt.
Vergessen Sie debug_start und debug_end, Einfachheit ist der richtige Weg, wissen Sie~

Ich Methode

Die I-Methode von Thinkphp ist neu in Version 3.1.3. Wenn Sie die vorherige Version 3.* verwenden, können Sie direkt auf den Variablenteil der 3.1-Schnellstart-Tutorialreihe verweisen.
Übersicht
Wie Sie sehen können, ist die I-Methode ein neues Mitglied der vielen Einzelbuchstabenfunktionen von Thinkphp. Sie wird hauptsächlich verwendet, um Systemeingabevariablen bequemer und sicherer zu erhalten . Das Verwendungsformat ist wie folgt:
I('Variablentyp.Variablenname',['Standardwert'],['Filtermethode'])
Der Variablentyp bezieht sich auf die Anforderungsmethode oder den Eingabetyp, einschließlich:
get GET-Parameter abrufen
post POST-Parameter abrufen
param bestimmt automatisch den Anforderungstyp, um GET-, POST- oder PUT-Parameter zu erhalten
Anfrage erhält REQUEST-Parameter
put erhält PUT-Parameter
Sitzung erhält den Parameter $_SESSION
Cookie erhält den Parameter $_COOKIE
Server erhält den Parameter $_SERVER
Globals erhält $GLOBALS-Parameter
Hinweis: Bei Variablentypen wird die Groß-/Kleinschreibung nicht beachtet.
Bei Variablennamen muss die Groß-/Kleinschreibung strikt beachtet werden.
Sowohl der Standardwert als auch die Filtermethode sind optionale Parameter.
Verwendung
Nehmen wir den Variablentyp GET als Beispiel, um die Verwendung der I-Methode zu veranschaulichen:

Code kopieren Der Code lautet wie folgt:
echo I('get.id'); Entspricht $ _GET['id']
echo I('get.name'); // Entspricht $_GET['name']

Standardwert unterstützen:

Code kopieren Der Code lautet wie folgt:
echo I('get.id',0); // wenn $_GET['id'] nicht existiert, wird 0
zurückgegeben echo I('get.name',''); // Wenn $_GET['name'] nicht existiert, einen leeren String zurückgeben

Nach Methode filtern:

Code kopieren Der Code lautet wie folgt:
echo I('get.name','', 'htmlspecialchars'); // Verwenden Sie die htmlspecialchars-Methode, um $_GET['name'] zu filtern. Wenn sie nicht existiert, geben Sie eine leere Zeichenfolge zurück

Unterstützt das direkte Abrufen des gesamten Variablentyps, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
I('get.'); // Get the gesamtes $_GET-Array

Auf die gleiche Weise können wir Variablen vom Typ „Post“ oder andere Eingabetypen abrufen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
1.I('post.name','' ,'htmlspecialchars '); // Verwenden Sie die htmlspecialchars-Methode, um $_POST['name'] zu filtern. Wenn sie nicht vorhanden ist, geben Sie eine leere Zeichenfolge zurück
I('session.user_id',0); // Holen Sie sich $_SESSION['user_id'] Wenn es nicht existiert, ist es standardmäßig 0
I('cookie.'); // Holen Sie sich das gesamte $_COOKIE-Array
I('server.REQUEST_METHOD'); // Holen Sie sich $_SERVER['REQUEST_METHOD']

Der Variablentyp „param“ ist eine Framework-spezifische Methode zum Abrufen von Variablen, die die automatische Bestimmung des aktuellen Anforderungstyps unterstützt, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
echo I('param.id');

Wenn der aktuelle Anforderungstyp GET ist, entspricht dies GET['id']. Wenn der aktuelle Anforderungstyp POST oder PUT ist, entspricht dies dem Abrufen von _POST['id'] oder PUT-Parameter-ID.
Und Variablen vom Parametertyp können auch digitale Indizes verwenden, um URL-Parameter abzurufen (der PATHINFO-Modusparameter muss gültig sein, unabhängig davon, ob es sich um GET oder POST handelt), zum Beispiel:
Die aktuelle Zugriffs-URL-Adresse ist

Code kopieren Der Code lautet wie folgt:
http://serverName/index./New/2013 /06/ 01

Dann können wir bestehen

Code kopieren Der Code lautet wie folgt:
echo I('param.1'); Ausgabe 2013
echo I('param.2'); // Ausgabe 06
echo I('param.3'); // Ausgabe 01

Tatsächlich kann die Schreibmethode des Parametervariablentyps wie folgt vereinfacht werden:

Code kopieren Der Code lautet wie folgt:
I('id'); // Äquivalent zu I ('param .id')
I('name'); // Entspricht I('param.name')

Variablenfilterung
Bei Verwendung der I-Methode durchlaufen die Variablen tatsächlich zwei Filter. Die globale Filterung erfolgt durch die Konfiguration des Parameters VAR_FILTERS. Dabei ist zu beachten, dass der Filtermechanismus des Parameters VAR_FILTERS geändert wurde Für die rekursive Filterung mit der Methode array_walk_recursive besteht die Hauptanforderung für die Filtermethode darin, dass sie als Referenz zurückgegeben werden muss. Daher ist die Einstellung von htmlspecialchars hier ungültig. Sie können eine Methode anpassen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
Funktion filter_default(&$value){
$value = htmlspecialchars($value);
}

Dann konfigurieren:

Code kopieren Der Code lautet wie folgt:
'VAR_FILTERS'=>'filter_default'

Wenn Sie mehrmals filtern müssen, können Sie Folgendes verwenden:

Code kopieren Der Code lautet wie folgt:
'VAR_FILTERS'=>'filter_default,filter_exp'

Die filter_exp-Methode ist eine in das Framework integrierte Sicherheitsfiltermethode, die verwendet wird, um Injektionsangriffe mithilfe der EXP-Funktion des Modells zu verhindern.
Da der Parameter VAR_FILTERS einen globalen Filtermechanismus festlegt und rekursive Filterung verwendet, was sich auf die Effizienz auswirkt, empfehlen wir, die erhaltenen Variablen direkt zu filtern. Zusätzlich zum Festlegen der Filtermethode im dritten Parameter der I-Methode kann auch die Filterung festgelegt werden durch Konfigurieren des Parameters DEFAULT_FILTER. Tatsächlich ist die Standardeinstellung dieses Parameters:

Code kopieren Der Code lautet wie folgt:
'DEFAULT_FILTER' => 'htmlspecialchars'

Mit anderen Worten, alle Erfassungsvariablen der I-Methode werden nach htmlspecialchars gefiltert, dann:

Code kopieren Der Code lautet wie folgt:
I('get.name'); // Äquivalent zu htmlspecialchars( $_GET['name'])

Ebenso kann dieser Parameter auch mehrere Filter unterstützen, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
'DEFAULT_FILTER' => 'strip_tags,htmlspecialchars'

Code kopieren Der Code lautet wie folgt:
I('get.name'); // Äquivalent zu htmlspecialchars( strip_tags($_GET['name']))

Wenn wir bei Verwendung der I-Methode die Filtermethode angeben, wird die Einstellung von DEFAULT_FILTER ignoriert, zum Beispiel:

Code kopieren Der Code lautet wie folgt:
echo I('get.name','', 'strip_tags' ); // Entspricht strip_tags($_GET['name'])

Wenn der dritte Parameter der I-Methode im Funktionsnamen übergeben wird, bedeutet dies, dass die Funktion zum Filtern der Variablen aufgerufen und zurückgegeben wird (wenn die Variable ein Array ist, wird array_map automatisch zum Filtern verwendet), andernfalls die integrierte Funktion Die Methode filter_var wird zum Filtern aufgerufen, zum Beispiel:
Code kopieren Der Code lautet wie folgt:
I('post.email','',FILTER_VALIDATE_EMAIL);

Menunjukkan bahawa $_POST['email'] akan format disahkan dan jika ia tidak memenuhi keperluan, rentetan kosong akan dikembalikan.
(Untuk lebih banyak format pengesahan, sila rujuk penggunaan filter_var dalam manual rasmi.)
Atau anda boleh menggunakan pengenalan aksara berikut:
Salin kod Kod adalah seperti berikut:
Saya('post.email','','email') ;

Nama penapis yang disokong mestilah nilai yang sah dalam kaedah filter_list (persekitaran pelayan yang berbeza mungkin berbeza nama penapis yang disokong termasuk:
Salin kod Kod adalah seperti berikut:
int
boolean
terapung
validate_regexp
sahkan_url
sahkan_e-mel
sahkan_ip
rentetan
dibogelkan
dikodkan
aksara_istimewa
tidak selamat_mentah
e-mel
url
nombor_int
nombor_apung
petikan_sihir
panggil balik

Dalam sesetengah kes khas, kami tidak mahu melakukan sebarang penapisan, walaupun DEFAULT_FILTER telah ditetapkan, anda boleh menggunakan:

Salin kod Kod adalah seperti berikut:
Saya('get.name','',NULL );

Setelah parameter penapisan ditetapkan kepada NULL, ini bermakna tiada penapisan akan dilakukan lagi.

Kaedah L

Kaedah L digunakan untuk menetapkan dan mendapatkan definisi bahasa semasa apabila berbilang bahasa didayakan.
Format panggilan: L('Pembolehubah bahasa',['Nilai bahasa'])
Tetapkan pembolehubah bahasa
Selain menggunakan pakej bahasa untuk menentukan pembolehubah bahasa, kita boleh menggunakan kaedah L untuk menetapkan pembolehubah bahasa secara dinamik, contohnya:

Salin kod Kod adalah seperti berikut:
L('LANG_VAR','Definisi Bahasa');

Takrif bahasa tidak sensitif huruf besar-besaran, jadi perkara berikut juga setara:

Salin kod Kod tersebut adalah seperti berikut:
L('lang_var','language definition');

Walau bagaimanapun, demi penyeragaman, kami mengesyorkan agar anda menggunakan huruf besar untuk menentukan pembolehubah bahasa.
Kaedah L menyokong tetapan kelompok pembolehubah bahasa, contohnya:

Salin kod Kod adalah seperti berikut:
$lang['lang_var1'] = 'Definisi Bahasa 1 ';
$lang['lang_var2'] = 'Takrifan bahasa 2';
$lang['lang_var3'] = 'Takrifan bahasa 3';
L($lang);

Menunjukkan bahawa tiga pembolehubah bahasa lang_var1, lang_var2 dan lang_var3 ditetapkan pada masa yang sama.
[-lagi-]
Dapatkan pembolehubah bahasa

Salin kod Kod adalah seperti berikut:
$langVar = L('LANG_VAR');

Atau:

Salin kod Kod adalah seperti berikut:
$langVar = L('lang_var');

Jika parameter kosong, ini bermakna untuk mendapatkan semua pembolehubah bahasa yang ditakrifkan pada masa ini (termasuk dalam fail definisi bahasa):

Salin kod Kod adalah seperti berikut:
$lang = L();

Atau kita juga boleh menggunakan dalam templat

Salin kod Kod adalah seperti berikut:
{$Think.lang.lang_var}

um die Sprachdefinition auszugeben.

M-Methode

Die M-Methode wird zum Instanziieren einer Basismodellklasse verwendet. Der Unterschied zur D-Methode ist:
, keine Notwendigkeit, Modellklassen anzupassen, die E/A-Belastung zu reduzieren und eine bessere Leistung zu erzielen
Nach der Instanziierung können nur Methoden in der Basismodellklasse (Standard ist die Modellklasse) aufgerufen werden , Sie können beim Instanziieren das Tabellenpräfix, die Datenbank und die Datenbankverbindungsinformationen angeben Die Leistungsfähigkeit der D-Methode spiegelt sich darin wider, wie leistungsfähig die von Ihnen gekapselte benutzerdefinierte Modellklasse ist. Da jedoch die grundlegenden Modellklassen der neuen Version des Think-Frameworks immer leistungsfähiger werden, wird die M-Methode immer praktischer die D-Methode.
M-Methodenaufrufformat:
M('[Basismodellname:]Modellname','Datentabellenpräfix','Datenbankverbindungsinformationen')
Werfen wir einen Blick auf die spezifischen Einsatzmöglichkeiten der M-Methode:
, instanziieren Sie die Basismodellklasse (Model)
Wenn kein Modell definiert ist, können wir die folgende Methode verwenden, um eine Modellklasse für den Betrieb zu instanziieren:

Code kopieren Der Code lautet wie folgt: //Instanziieren des Benutzermodells
$User = M('User');
//Führen Sie andere Datenoperationen aus
$User->select();


Diese Methode ist die einfachste und effizienteste, da keine Modellklassen definiert werden müssen und daher projektübergreifende Aufrufe unterstützt werden. Der Nachteil besteht auch darin, dass es keine benutzerdefinierte Modellklasse gibt, sodass die entsprechende Geschäftslogik nicht geschrieben werden kann und nur grundlegende CURD-Operationen ausgeführt werden können.

Code kopieren Der Code lautet wie folgt:$User = M('User');
Entspricht eigentlich:

Code kopieren Der Code lautet wie folgt:$User = new Model('User');
Zeigt die Operation der think_user-Tabelle an. Die M-Methode verfügt ebenso wie die D-Methode über eine Singleton-Funktion und wird bei mehrmaligem Aufruf nicht wiederholt instanziiert. Der Modellnamensparameter der M-Methode wird bei der Konvertierung in eine Datentabelle automatisch in Kleinbuchstaben umgewandelt, was bedeutet, dass die Benennungsspezifikation für Datentabellen von Think ausschließlich in Kleinbuchstaben vorliegt.
, andere öffentliche Modellklassen instanziieren
Die erste Instanziierungsmethode verfügt über keine Modellklassendefinition, daher ist es schwierig, einige zusätzliche logische Methoden zu kapseln. In den meisten Fällen müssen Sie jedoch möglicherweise nur eine allgemeine Logik erweitern. Anschließend können Sie die folgende Methode ausprobieren.

Code kopieren Der Code lautet wie folgt:$User = M('CommonModel:User');
Das Ändern der Verwendung entspricht tatsächlich:

Code kopieren Der Code lautet wie folgt:$User = new CommonModel('User');

Da die Modellklassen des Systems automatisch geladen werden können, müssen wir die Klassenbibliothek vor der Instanziierung nicht manuell importieren. Die Modellklasse CommonModel muss Model erben. Wir können einige allgemeine logische Methoden in der CommonModel-Klasse definieren, wodurch die Notwendigkeit entfällt, für jede Datentabelle spezifische Modellklassen zu definieren. Wenn Ihr Projekt bereits über mehr als 100 Datentabellen verfügt, sind die meisten davon grundlegend. Für CURD-Operationen sind dies nur einige Modelle Da es sich um eine komplexe Geschäftslogik handelt, die gekapselt werden muss, ist die Kombination der ersten Methode und der zweiten Methode eine gute Wahl.


, eingehendes Tabellenpräfix, Datenbank und andere Informationen


Die M-Methode verfügt über drei Parameter. Der erste Parameter ist der Modellname (kann grundlegende Modellklassen und Datenbanken umfassen), und der zweite Parameter wird zum Festlegen des Präfixes der Datentabelle verwendet (lassen Sie ihn leer, um das Tabellenpräfix zu übernehmen). Der dritte Parameter wird verwendet, um die aktuell verwendeten Datenbankverbindungsinformationen festzulegen (lassen Sie ihn leer, um die vom aktuellen Projekt konfigurierten Datenbankverbindungsinformationen zu übernehmen), zum Beispiel:

Code kopieren Der Code lautet wie folgt:$User = M('db2.User',' think_') ;
Stellt die Instanziierung der Model-Modellklasse und den Betrieb der think_user-Tabelle in der DB2-Datenbank dar.
Wenn der zweite Parameter leer bleibt oder nicht übergeben wird, bedeutet dies, dass das Datentabellenpräfix in der aktuellen Projektkonfiguration verwendet wird. Wenn die betriebene Datentabelle kein Tabellenpräfix hat, können Sie Folgendes verwenden:

Code kopieren Der Code lautet wie folgt:$User = M('db1.User',null );

Mewakili instantiating kelas model Model dan mengendalikan jadual pengguna dalam pangkalan data db1.
Jika pangkalan data yang anda kendalikan memerlukan akaun pengguna yang berbeza, anda boleh menghantar maklumat sambungan pangkalan data, contohnya:

Salin kod Kod adalah seperti berikut:
$User = M('User','think_' ,'mysql ://user_a:1234@localhost:3306/think');

Model digunakan untuk mewakili kelas model asas, dan kemudian jadual think_user dikendalikan, akaun user_a digunakan untuk menyambung ke pangkalan data, dan pangkalan data operasi adalah think.
Parameter maklumat sambungan ketiga boleh menggunakan konfigurasi DSN atau konfigurasi tatasusunan, dan juga boleh menyokong parameter konfigurasi.
Contohnya, dikonfigurasikan dalam fail konfigurasi projek:

Salin kod Kod adalah seperti berikut:
'DB_CONFIG'=>'mysql://user_a :1234@ localhost:3306/think';

Kemudian anda boleh menggunakan:

Salin kod Kod adalah seperti berikut:
$User = M('User','think_' ,'DB_CONFIG ');

Kelas model asas dan pangkalan data boleh digunakan bersama, contohnya:

Salin kod Kod adalah seperti berikut:
$User = M('CommonModel:db2.User' ,'fikir_');

Jika kita ingin membuat contoh model hierarki, kita boleh menggunakan kelas model awam:

Salin kod Kod tersebut adalah seperti berikut:
M('UserLogic:User');

untuk membuat instantiate UserLogic, walaupun ini tidak masuk akal, kerana anda boleh menggunakan

Salin kod Kod adalah seperti berikut:
D('User','Logic');

mencapai fungsi yang sama.

Kaedah R

Kaedah R digunakan untuk memanggil kaedah operasi pengawal tertentu, yang merupakan peningkatan dan tambahan lagi kaedah A. Lihat di sini untuk penggunaan kaedah A.
Format panggilan kaedah R:
R('[Projek://][Kumpulan/]Modul/Operasi','Parameter','Nama lapisan Pengawal')
Sebagai contoh, kami mentakrifkan kaedah operasi sebagai:

Salin kod Kod adalah seperti berikut:
kelas UserAction memanjangkan Tindakan {
butiran fungsi awam($id){
Kembalikan M('Pengguna')->cari($id);
}
}

Kemudian anda boleh memanggil kaedah operasi ini dalam pengawal lain melalui kaedah R (biasanya kaedah R digunakan untuk panggilan silang modul)

Salin kod Kod adalah seperti berikut:
$data = R('User/detail',array ('5 '));

Menunjukkan bahawa kaedah perincian pengawal Pengguna dipanggil (kaedah perincian mestilah jenis awam), dan nilai pulangan adalah untuk menanyakan data pengguna dengan ID 5. Jika kaedah operasi yang anda ingin panggil tidak mempunyai sebarang parameter, parameter kedua boleh dibiarkan kosong dan digunakan terus:

Salin kod Kod adalah seperti berikut:
$data = R('User/detail');

Ia juga boleh menyokong panggilan merentas kumpulan dan projek, contohnya:

Salin kod Kod adalah seperti berikut:
R('Admin/User/detail',array( '5' ));

Menunjukkan memanggil kaedah perincian pengawal Pengguna di bawah kumpulan Pentadbir.

Salin kod Kod adalah seperti berikut:
R('Admin://User/detail', tatasusunan(' 5'));

Menunjukkan memanggil kaedah perincian pengawal Pengguna di bawah projek Pentadbiran.
Pengesyoran rasmi adalah untuk tidak membuat terlalu banyak panggilan pada lapisan yang sama, yang akan menyebabkan kekeliruan logik Bahagian yang dipanggil secara umum harus dirangkumkan ke dalam antara muka yang berasingan Anda boleh menggunakan ciri baharu pengawal berbilang lapisan untuk menambah lapisan pengawal yang berasingan untuk panggilan Antara Muka, sebagai contoh, kami menambah lapisan pengawal Api,

Salin kod Kod adalah seperti berikut:
kelas UserApi melanjutkan Tindakan {
butiran fungsi awam($id){
Kembalikan M('Pengguna')->cari($id);
}
}

Kemudian, gunakan panggilan kaedah R

Salin kod Kod adalah seperti berikut:

$data = R('Pengguna/detail',array('5'),'Api');

Dalam erti kata lain, parameter ketiga kaedah R menyokong penetapan lapisan pengawal panggilan.
Pada masa yang sama, kaedah R boleh menyokong tetapan akhiran operasi C ('ACTION_SUFFIX') semasa memanggil kaedah operasi Jika anda menetapkan akhiran kaedah operasi, anda masih tidak perlu menukar kaedah panggilan kaedah R.

Kaedah S

Kaedah

S juga menyokong penghantaran parameter cache untuk kaedah cache semasa, contohnya:

Salin kod Kod adalah seperti berikut:

S('data',$Data,3600,'Fail',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/'));

Selepas ujian, apabila digunakan dengan cara ini, hanya tiga parameter pertama sahaja yang sah, dan selebihnya tidak sah
Salin kod Kod adalah seperti berikut:

{ 'Fail',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/')}

Akhirnya gunakan cara ini:
Salin kod Kod adalah seperti berikut:

S('data1',$list,array('prefix'=>aaa','expire'=>'3600','temp'=>RUNTIME_PATH.'temp/1236'));

Apabila diperoleh:
Salin kod Kod adalah seperti berikut:

$sdata = S('data1','',array('prefix'=>'aaa','temp'=>RUNTIME_PATH.'temp/1236'));

Kaedah T

Untuk mengeluarkan fail templat dengan lebih mudah, versi baharu merangkum fungsi T untuk menjana nama fail templat.
Penggunaan:
T([Sumber://][Modul@][Tema/][Pengawal/]Operasi,[Lihat Hierarki])
Nilai pulangan bagi fungsi T ialah nama fail templat lengkap, yang boleh digunakan secara langsung dalam kaedah paparan dan ambil untuk memaparkan output.
Contohnya:

Salin kod Kod adalah seperti berikut:

T('Awam/menu');
// Kembali ke modul semasa/View/Public/menu.html
T('biru/Awam/menu');
// Kembalikan modul semasa/View/blue/Public/menu.html
T('Awam/menu','Tpl');
// Kembalikan modul semasa/Tpl/Public/menu.html
T('Awam/menu');
// Jika TMPL_FILE_DEPR ialah _ kembalikan modul semasa/Tpl/Public_menu.html
T('Awam/menu');
// Jika TMPL_TEMPLATE_SUFFIX ialah .tpl, kembalikan modul semasa/Tpl/Public/menu.tpl
T('Admin@Public/menu');
// Kembali ke Admin/View/Public/menu.html
T('Extend://Admin@Public/menu');
// Kembali ke Extend/Admin/View/Public/menu.html (Direktori Extend bergantung pada konfigurasi dalam AUTOLOAD_NAMESPACE)

Gunakan fungsi T secara langsung dalam kaedah paparan:
Salin kod Kod adalah seperti berikut:

//Gunakan fungsi T untuk mengeluarkan templat
$this->paparan(T('Admin@Public/menu'));

Fungsi T boleh mengeluarkan templat hierarki pandangan yang berbeza.

Kaedah U

Kaedah

U digunakan untuk melengkapkan pemasangan alamat URL Cirinya ialah ia boleh menjana alamat URL yang sepadan secara automatik berdasarkan mod dan tetapan URL semasa U('alamat','parameter','pseudo-statik','sama ada hendak melompat','paparkan nama domain');

Kelebihan menggunakan kaedah U dalam templat dan bukannya membetulkan alamat URL ialah apabila persekitaran anda berubah atau tetapan parameter berubah, anda tidak perlu menukar sebarang kod dalam templat.


Format panggilan dalam templat mestilah {:U('address', 'parameter'...)}


Contoh penggunaan kaedah U:


Salin kod Kod adalah seperti berikut:
U('User/add') // Jana alamat operasi tambah modul Pengguna


Boleh juga menyokong panggilan kumpulan:


Salin kod Kod adalah seperti berikut:
U('Home/User/add') // Jana alamat operasi tambah modul Pengguna kumpulan Laman Utama


Sudah tentu, anda juga boleh menulis nama operasi untuk menunjukkan panggilan modul semasa


Salin kod Kod adalah seperti berikut:
U('add') // Jana alamat operasi tambah modul akses semasa


Selain nama kumpulan, modul dan operasi, kami juga boleh memasukkan beberapa parameter:


Salin kod Kod adalah seperti berikut:
U('Blog/readid=1') // Hasilkan operasi baca modul Blog dan alamat URL dengan id 1


Parameter kedua kaedah U menyokong parameter masuk dan menyokong dua kaedah definisi: tatasusunan dan rentetan Jika ia hanya parameter rentetan, ia boleh ditakrifkan dalam parameter pertama >


U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/catecate_id=1&status=1')



Tetapi kaedah takrifan berikut tidak dibenarkan melepasi parameter:


U('Blog/cate/cate_id/1/status/1')



Menurut tetapan URL projek yang berbeza, panggilan kaedah U yang sama boleh menghasilkan kesan alamat URL yang berbeza, contohnya:


U('Blog/readid=1')



Takrifan ini ialah contoh. Jika URL semasa ditetapkan kepada mod biasa, alamat URL yang dijana terakhir ialah:



http://serverName/index.m=Blog&a=read&id=1


Jika URL semasa ditetapkan kepada mod PATHINFO, URL akhir yang dijana dengan kaedah yang sama ialah: http://serverName/index./Blog/read/id/1

Jika URL semasa ditetapkan kepada mod TULIS SEMULA, URL akhir yang dijana dengan kaedah yang sama ialah: http://serverName/Blog/read/id/1
Jika anda juga menetapkan pembatas PATHINFO:

'URL_PATHINFO_DEPR'=>'_'



akan dijana


Salin kod Kod adalah seperti berikut:

Jika URL semasa ditetapkan kepada mod TULIS SEMULA dan akhiran pseudo-statik ditetapkan kepada html, alamat URL akhirnya dijana dengan kaedah yang sama ialah:

Salin kod Kod adalah seperti berikut:

Jika berbilang sokongan statik pseudo-statik ditetapkan, akhiran pseudo-statik pertama akan ditambahkan secara automatik pada penghujung alamat URL Sudah tentu, anda juga boleh menentukan akhiran pseudo-statik secara manual untuk dijana dalam kaedah U , sebagai contoh:

Salin kod Kod adalah seperti berikut:

U('Blog/baca','id=1','xml')

akan dijana

Salin kod Kod adalah seperti berikut:

Kaedah U juga boleh menyokong penghalaan Jika kita mentakrifkan peraturan penghalaan:

Salin kod Kod adalah seperti berikut:

'news/:idd'=>'Berita/baca'

Kemudian anda boleh menggunakannya

Salin kod Kod adalah seperti berikut:

U('/news/1')

Alamat URL yang dijana akhir ialah:

Salin kod Kod adalah seperti berikut:

Jika aplikasi anda melibatkan alamat operasi berbilang subdomain, anda juga boleh menentukan nama domain yang perlu menjana alamat dalam kaedah U, contohnya:

Salin kod Kod adalah seperti berikut:

Hanya masukkan nama domain yang perlu dinyatakan selepas @.
Selain itu, jika parameter kelima kaedah U ditetapkan kepada benar, ini bermakna nama domain semasa diiktiraf secara automatik dan nama subdomain bagi alamat semasa dijana secara automatik berdasarkan tetapan penggunaan nama subdomain APP_SUB_DOMAIN_DEPLOY dan APP_SUB_DOMAIN_RULES.
Jika URL_CASE_INSENSITIVE dihidupkan, alamat URL huruf kecil akan dijana secara seragam.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage