Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in Thinkphp 2 (46)

Einführung in Thinkphp 2 (46)

WBOY
WBOYOriginal
2016-08-08 09:22:571063Durchsuche

[Keine Operationsverarbeitung]

Sehen Sie sich das folgende Bild an:

Tatsächliche Situation: Unser Benutzercontroller verfügt nicht über die hello()-Methode

Wenn ein Objekt auf eine nicht existierende Methode dieser Klasse zugreift, dann greift es auf die „magische Methode __call()“ zu.

Der Benutzer greift auf eine nicht existierende Operation zu –“ Lösung: Geben Sie jede an Controller Definieren Sie eine _empty()-Methode zur Verarbeitung von

Die zweite Lösung: Definieren Sie eine leere Operation

【 Leeres Modul Verarbeitung】

Wir verwenden eine Klasse, aber diese Klasse wurde noch nicht aufgenommen.

Wir können __autoload() über den automatischen Lademechanismus verarbeiten. Wenn der automatische Lademechanismus diese Klasse nicht findet, wird ein Fehler gemeldet.

ist die Anforderung eines leeren Moduls

Lösung eins: Definieren Sie einen leeren Controller, ein leeres Modul

Lösung zwei:

【Funktionsbibliotheksdateien zur Anwendung hinzufügen】

Im Common-Ordner legen wir hier unsere Funktionsbibliotheksdateien ab

【Modulgruppierung】

 1. Der Controller führt Gruppeneinstellungen durch

 2. Vorlagen anzeigen müssen gruppiert werden

 3. Konfigurationsvariablen müssen gruppiert werden

 4. config.php konfigurieren

[Voroperation, Nachoperation]

Wann Wenn die Methode im Controller aufgerufen wird, kann sie vor oder nach dem Aufruf einige zusätzliche Arbeiten ausführen, die als Voroperation und Nachoperation bezeichnet werden

Wenn wir diese URL anfordern: http://URL/index. php/Admin/Goods/zhanshi, wenn die Methode existiert, wo findet diese Aktion statt? In der exec()-Methode von App.class.php

Die Voroperationen in

kann zuerst ausgeführt werden, wenn zhanshi() ausgeführt wird. Die Nachoperationen in

können ausgeführt werden, nachdem zhanshi() ausgeführt wird, und dann

. Es gibt viele Methoden in einer Klasse die Vor- und Nachoperationen erfordern. Wie sollen wir dieses Problem lösen?

Lösung:

[Modulübergreifender Aufruf]

Instanziierung einer nicht vorhandenen Klasse wird automatisch über den __autoload()-Mechanismus geladen .

Wo ist __autoload() des tp-Frameworks? In Think.class.php

instanziieren Sie das Controller-Objekt über die A()-Methode

 A('Module Controller') Zum Beispiel: A('Goods')

A('group/controller') Zum Beispiel: A('home/Ucenter');

A('project://group/controller') Zum Beispiel: A('shop://home/ Ucenter');

In der A()-Methode gibt es einen verschachtelten Aufruf der import()-Methode. Diese Methode hilft uns, den entsprechenden Controller zu erhalten und dessen Einführung zu erfordern. Die A()-Methode instanziiert das Objekt direkt neu

R ("Projekt://Gruppe/Controller/Operation")-Methode

  besteht darin, den Controller einzuführen, das Objekt zu instanziieren und die Methode anzuwenden Anrufe werden alle vererbt.

R('Module Controller/Operation') Zum Beispiel: A('Goods')

R('Group/Controller/Operation') Zum Beispiel: A('home/Ucenter/ member');

 R('project://group/controller/operation') Zum Beispiel: A('shop://home/Ucenter/members');

R( )-Methode ruft die A()-Methode auf

A()-Methode ruft die import()-Methode auf

Die A()-Methode verwendet

Die R()-Methode verwendet

Das Obige stellt Erste Schritte mit Thinkphp Teil 2 (46) vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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
Vorheriger Artikel:PHP-Socket-KlasseNächster Artikel:PHP-Socket-Klasse