Heim php教程 PHP开发 Ausführliche Erläuterung der Verwendung von Autoloading im Zend Framework-Tutorial

Ausführliche Erläuterung der Verwendung von Autoloading im Zend Framework-Tutorial

Jan 03, 2017 pm 12:47 PM
zend framework

Das Beispiel in diesem Artikel beschreibt die Verwendung von Autoloading im Zend Framework-Tutorial. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1. Übersicht

Das automatische Laden ist ein Mechanismus, der kein manuelles Schreiben von PHP-Code erfordert. Siehe » PHP Manual Autoloading. Sobald der Autoloader definiert ist, wird er automatisch aufgerufen, falls Sie versuchen, eine nicht definierte Klasse oder Schnittstelle zu verwenden.

Durch das automatische Laden müssen Sie sich keine Gedanken darüber machen, wo Klassen in Ihrem Projekt gespeichert werden. Bei einem gut definierten Autoloader müssen Sie sich keine Gedanken über den Speicherort einer Klassendatei relativ zur aktuellen Klassendatei machen. Sie verwenden einfach die Klasse und der Autoloader findet die Datei automatisch.

Darüber hinaus stellt das automatische Laden sicher, dass es nur einmal geladen wird, was die Leistung verbessert – sodass es anstelle von require_once() verwendet werden kann.

Zend Framework fördert die Verwendung von Autoloading und bietet viele Tools zum automatischen Laden von Codebibliotheken und Anwendungscode. Hier ist ein Blick auf diese Tools und wie man sie effektiv nutzt.

Autoloading-Implementierungskonvention

Klassenbenennungskonvention

Zend Framework übernimmt die Idee von PEAR, was eine 1:1-Beziehung zwischen Klassennamen und Dateisystemen darstellt. Ersetzen Sie einfach das Verzeichnistrennzeichen durch den Unterstrich („_“), um den Pfad zur Datei darzustellen, und fügen Sie dann das Suffix „.php“ hinzu. Beispielsweise würde die Klasse „Foo_Bar_Baz“ „Foo/Bar/Baz.php“ im Dateisystem entsprechen. Unter der Annahme, dass der Speicherort der Klasse über PHPs include_path festgelegt wurde, können Dateinamen über include() und require() relativ zum in include_path festgelegten Pfad gefunden werden.

Außerdem wird empfohlen, den Herstellernamen oder Projektnamen als Präfix zu verwenden. Das bedeutet, dass alle von Ihnen geschriebenen Klassen ein gemeinsames Klassenpräfix haben. Beispielsweise wird dem gesamten Code im Zend Framework das Präfix „Zend_“ vorangestellt. Diese Namenskonvention hilft, Namenskonflikte zu vermeiden. In ZendFramework beziehen wir uns oft auf das Präfix „Namespace“. Achten Sie darauf, es nicht mit dem lokalen Namespace von PHP zu verwechseln.

Autoloader-Designkonvention

Zend Framework unterstützt das automatische Laden durch Zend_Loader_Autoloader, der hauptsächlich die folgenden Ziele und Designelemente bereitstellt:

Bietet Namespace-Abgleich. Wenn das Namespace-Präfix der Klasse ein nicht registrierter Namespace ist, wird FALSE zurückgegeben.

Ermöglicht die Definition eines Autoloaders als alternativen Autoloader. Ein Team kann weit verteilt sein oder ein nicht definiertes Namespace-Präfix verwenden. In diesem Fall wird versucht, mit jedem Namespace-Präfix übereinzustimmen. Dieser Ansatz wird jedoch nicht empfohlen, da er zu unnötigen Suchvorgängen führen kann.
Zulassen, dass die Unterdrückung von Fehlermeldungen aktiviert wird. Daher sollte es standardmäßig deaktiviert sein. Während der Entwicklungsphase kann es aktiviert werden.

Automatisches Laden kann angepasst werden. Einige Entwickler möchten Zend_Loader::loadClass() nicht zum automatischen Laden verwenden, möchten aber dennoch den automatischen Lademechanismus von Zend Framework verwenden. Zend_Loader_Autoloader ermöglicht die Verwendung von benutzerdefiniertem Autoloading.

Ermöglicht das automatische Laden von Rückrufketten mithilfe von SPL. Der Zweck besteht darin, die Angabe zusätzlicher Autoloader zu ermöglichen.

2. Verwendung:

Normalerweise müssen Sie den Bedarf nur in die enthaltende Klasse einführen und ihn dann instanziieren. Aufgrund des von Zend_Loader_Autoloader übernommenen Singleton-Modus können Sie die Methode getInstance() verwenden, um eine Instanz abzurufen.

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
Nach dem Login kopieren

Standardmäßig kann jede Klasse mit dem Namespace-Präfix „Zend_“ oder „ZendX_“ geladen werden. Stellen Sie lediglich sicher, dass include_path angegeben ist.
Möchten Sie andere Namespace-Präfixe verwenden? Der beste und einfachste Weg ist der Aufruf der Methode registerNamespace(). Sie können dies tun, indem Sie ein einzelnes Namespace-Präfix oder ein Array übergeben:

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Foo_');
$loader->registerNamespace(array('Foo_', 'Bar_'));
Nach dem Login kopieren

Alternativ können Sie Zend_Loader_Autoloader als „Fallback“-Autoloader verwenden. Dies bedeutet, dass unabhängig davon, ob der Namespace definiert ist oder nicht, versucht wird, automatisch zu laden.

$loader->setFallbackAutoloader(true);
Nach dem Login kopieren

(Hinweis: Diese Methode wird nicht empfohlen, versuchen Sie, sie nicht zu verwenden).

Die interne Implementierung von Zend_Loader_Autoloader verwendet Zend_Loader::loadClass() zum Laden von Klassen. Diese Methode verwendet include(), um zu versuchen, die angegebene Klassendatei zu laden. include() gibt einen booleschen Wert oder FALSE zurück, wenn dies nicht erfolgreich ist – und gibt außerdem eine PHP-Warnung aus. Kann die folgenden Probleme verursachen:

Wenn display_errors aktiviert ist, werden Warnungen in die Ausgabe einbezogen.

Abhängig von der von Ihnen konfigurierten Fehlerberichtsebene kann es auch im Protokoll ausgegeben werden.
Diese Fehlermeldungen können wie folgt unterdrückt werden: (Beachten Sie jedoch, dass das Fehlerprotokoll immer angezeigt wird, wenn display_errors aktiviert ist.)

$autoloader->suppressNotFoundWarnings(true);
Nach dem Login kopieren

Wählen Sie eine Version von Zend Framework

ZendFramework/
|-- 1.9.2/
| |-- Library/
|-- ZendFramework-1.9.1-minimal/
| /
|-- 1.8.4PL1/
|. |-- Library/
|-- 1.8.4/
| /
|. |-- Bibliothek/
|-- 1.7.8/
| >|- - 1.7.6/
|. |-- Bibliothek/



Sie können auch die Konfigurationsdatei
$autoloader->setZfPath($path, 'latest');
Nach dem Login kopieren
$autoloader->setZfPath($path, '1.8');
Nach dem Login kopieren
$autoloader->setZfPath($path, '1.7.7');
Nach dem Login kopieren
Autoloader-Schnittstelle verwenden

Hinweis: Namespace-Präfixe und PHP-Namespaces
[production]
autoloaderZfPath = "path/to/ZendFramework"
autoloaderZfVersion = "1.7.7"
[qa]
autoloaderZfVersion = "1.8"
[development]
autoloaderZfVersion = "latest"
Nach dem Login kopieren

PHP5.3 wurde veröffentlicht. In dieser Version unterstützt PHP nun offiziell Namespaces.

然而,Zend Framework的命名空间和PHP 5.3的命名空间完全不同的。 Zend Framework中,提到的“命名空间”,是指一个类前缀。例如,所有的Zend Framework的类名称的前缀“Zend_”。 这是我们指定的“命名空间”。

在Zend Framework 2.0.0使用了原生的PHP命名空间。

自动加载器除了能够指定任意回调以外,Zend Framework还定义了一个需要自动加载类实现的接口Zend_Loader_Autoloader_Interface:

interface Zend_Loader_Autoloader_Interface
{
  public function autoload($class);
}
Nach dem Login kopieren

如果您希望在Zend Framework中使用自定义的自动加载器,可以使用 Zend_Loader_Autoloader的 pushAutoloader()和unshiftAutoloader()方法。
通过这些方法将在Zend Framework的内部自动装载器之后追加或之前使用自定义的加载器。

每个方法接受一个可选的第二个参数,类的命名空间前缀。自动加载器只查找给定的类前缀。如果不是指定的类前缀,将跳过自动加载器 , 这可能是一种性能改进方式。

当使用这个接口时,你需要传递类实例到Zend_Loader_Autoloader类的pushAutoloader()和unshiftAutoloader()方法,具体如下:

// Append function 'my_autoloader' to the stack,
// to manage classes with the prefix 'My_':
$loader->pushAutoloader('my_autoloader', 'My_');
// Prepend static method Foo_Loader::autoload() to the stack,
// to manage classes with the prefix 'Foo_':
$loader->unshiftAutoloader(array('Foo_Loader', 'autoload'), 'Foo_');
// Assume Foo_Autoloader implements Zend_Loader_Autoloader_Interface:
$foo = new Foo_Autoloader();
$autoloader->pushAutoloader($foo, 'Foo_');
Nach dem Login kopieren


Zend_Loader_Autoloader的相关方法

Zend Framework教程之Autoloading用法详解

Zend Framework教程之Autoloading用法详解


希望本文所述对大家PHP程序设计有所帮助。

更多Zend Framework教程之Autoloading用法详解相关文章请关注PHP中文网!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwendung von Zend Framework mit PHP: Kurzanleitung Verwendung von Zend Framework mit PHP: Kurzanleitung Jun 21, 2023 am 08:58 AM

Verwendung von ZendFramework mit PHP: Kurzanleitung ZendFramework ist ein Open-Source-Webanwendungs-Framework auf PHP-Basis, das leistungsstark und leicht erweiterbar ist. ZendFramework enthält viele nützliche Komponenten, die Ihnen beim Erstellen effizienter Webanwendungen helfen können. In diesem Artikel wird die Verwendung von ZendFramework in PHP vorgestellt, um Ihnen den schnellen Einstieg zu erleichtern. Installieren Sie ZendFramewo

Effiziente Datenbankabfrage durch Zend Framework-Middleware Effiziente Datenbankabfrage durch Zend Framework-Middleware Jul 28, 2023 pm 01:13 PM

Implementierung effizienter Datenbankabfragen durch die ZendFramework-Middleware Einführung Im Entwicklungsprozess sind Datenbankabfragen ein unvermeidlicher Bestandteil. Eine effiziente Datenbankabfrage kann die Systemleistung und das Benutzererlebnis erheblich verbessern. ZendFramework ist ein weit verbreitetes PHP-Framework mit leistungsstarken Datenbankbetriebsfunktionen. In diesem Artikel wird vorgestellt, wie effiziente Datenbankabfragen mithilfe der ZendFramework-Middleware implementiert werden, und es werden entsprechende Codebeispiele bereitgestellt. 1. ZendF verstehen

Zend Framework-Middleware: Fügt Anwendungen OAuth- und OpenID-Anmeldeunterstützung hinzu Zend Framework-Middleware: Fügt Anwendungen OAuth- und OpenID-Anmeldeunterstützung hinzu Jul 28, 2023 pm 01:09 PM

ZendFramework Middleware: Hinzufügen von OAuth- und OpenID-Login-Unterstützung zu Anwendungen Die Benutzerauthentifizierung ist eine entscheidende Funktion in heutigen Internetanwendungen. Um ein besseres Benutzererlebnis und mehr Sicherheit zu bieten, entscheiden sich viele Anwendungen für die Integration von Anmeldediensten von Drittanbietern wie OAuth und OpenID. In ZendFramework können wir über Middleware ganz einfach OAuth- und OpenID-Anmeldeunterstützung zu unseren Anwendungen hinzufügen. Zuerst müssen wir Ze installieren

Zend Framework-Middleware: Fügen Sie Webanwendungen Social-Login-Funktionalität hinzu Zend Framework-Middleware: Fügen Sie Webanwendungen Social-Login-Funktionalität hinzu Jul 28, 2023 pm 07:21 PM

ZendFramework ist ein auf PHP basierendes Open-Source-Framework, das viele leistungsstarke Tools und Komponenten zum Erstellen skalierbarer Webanwendungen bereitstellt. In diesem Artikel wird vorgestellt, wie Sie die Middleware von ZendFramework verwenden, um Social-Login-Funktionalität zu Webanwendungen hinzuzufügen. Middleware ist Code, der ausgeführt wird, bevor oder nachdem eine Anfrage in Ihre Anwendung gelangt. Es ermöglicht Entwicklern, den Prozess der Bearbeitung von Anfragen anzupassen und zu erweitern. ZendFramework bietet eine flexible Möglichkeit dazu

Was sind die häufigsten Zend Framework 2-Operationen in der PHP-Programmierung? Was sind die häufigsten Zend Framework 2-Operationen in der PHP-Programmierung? Jun 12, 2023 am 09:01 AM

ZendFramework2 ist ein beliebtes PHP-Programmierframework, das eine Fülle von Funktionen und Modulen bietet und es PHP-Entwicklern ermöglicht, hochwertige Webanwendungen bequemer zu erstellen. In diesem Artikel werden einige gängige ZendFramework2-Operationen vorgestellt, um Ihnen bei der besseren Nutzung dieses Frameworks zu helfen. MVC-Muster In ZendFramework2 ist das Model-View-Controller (MVC)-Muster die am häufigsten verwendete Architektur. Das MVC-Muster ist ein

Zend Framework-Middleware: Alipay- und WeChat-Zahlungsfunktionen zu Anwendungen hinzufügen Zend Framework-Middleware: Alipay- und WeChat-Zahlungsfunktionen zu Anwendungen hinzufügen Jul 28, 2023 pm 08:01 PM

ZendFramework-Middleware: Hinzufügen von Alipay- und WeChat-Zahlungsfunktionen zu Anwendungen Einführung: Mit der Popularität mobiler Zahlungen sind Alipay- und WeChat-Zahlungen in vielen Anwendungen zu unverzichtbaren Zahlungsmethoden geworden. In diesem Artikel wird erläutert, wie Sie mithilfe der ZendFramework-Middleware Alipay- und WeChat-Zahlungsfunktionen zur Anwendung hinzufügen. Durch das Studium dieses Artikels erfahren Sie, wie Sie Middleware zur Vereinfachung des Zahlungsprozesses einsetzen und auf Ihre tatsächlichen Projekte anwenden. 1. Vorbereitung Bevor Sie beginnen, müssen Sie

CodeIgniter vs. Zend Framework: Welches Framework eignet sich besser für die Entwicklung von ERP-Systemen? CodeIgniter vs. Zend Framework: Welches Framework eignet sich besser für die Entwicklung von ERP-Systemen? Jun 19, 2023 am 08:53 AM

Wenn Sie sich für die Entwicklung eines ERP-Systems entscheiden, ist die Wahl eines geeigneten Frameworks entscheidend. Hier vergleichen wir die beiden PHP-Frameworks CodeIgniter und ZendFramework, um Ihnen dabei zu helfen, ein Framework zu finden, das besser für Ihre ERP-Systementwicklung geeignet ist. CodeIgniter und ZendFramework sind beliebte PHP-Frameworks. Beide bieten viele Funktionen und sind erweiterbar und wartbar. Allerdings unterscheiden sich diese beiden Frameworks in einigen Aspekten erheblich und sind für einige Anwendungen besser geeignet.

Wie verwende ich Zend Framework 2 mit PHP-Programmierung? Wie verwende ich Zend Framework 2 mit PHP-Programmierung? Jun 12, 2023 am 08:20 AM

PHP ist eine weit verbreitete Programmiersprache und ZendFramework2 ist ein beliebtes PHP-Framework. Dieses Framework bietet PHP-Programmierern leistungsstarke Tools zum Erstellen hochwertiger, wartbarer und skalierbarer Anwendungen. In diesem Artikel wird die Verwendung von ZendFramework2 in der PHP-Programmierung vorgestellt. Was ist ZendFramework2? ZendFramework2 ist ein beliebtes PHP-Framework zum Erstellen von Webanwendungen und -diensten.

See all articles