Heim Backend-Entwicklung PHP-Tutorial Zend的Registry机制的使用说明_php实例

Zend的Registry机制的使用说明_php实例

May 17, 2016 am 09:05 AM
registry zend

项目过程中有很多全局变量, 需要全局存储,是否是使用全局变量来进行存储?那就弱爆了。Zend使用Registry机制(注册表)存储对象和值,是一个存储对象和值的容器。

Zend_Registry这个类就是做这个目的

代码示例
Zend_Registry::set('config', $config);
Zend_Registry::get('config');

代码分析
这两个函数是最常用的两个函数。我们来看一下这个类

class Zend_Registry extends ArrayObject

这个类继承自ArrayObject

ArrayObject implements IteratorAggregate , Traversable , ArrayAccess , Serializable , Countable

ArrayObject是一个对象集合,相当于其他语言的泛型集合的概念。

重点了解下void ArrayObject::offsetSet ( mixed $index , mixed $newval ), 这个函数就是hashtable中的设置key,value,只是key,value可以是任何类型的。

好了,回到Zend_Registry, 看看set做了些什么事情

set函数

复制代码 代码如下:

public static function set($index, $value)
    {
        $instance = self::getInstance();
        $instance->offsetSet($index, $value);

    }


一个是实例化Register,另一个是调用offsetSet方法,将index和value设置进去。

offset方法很好理解,但是为什么要使用getInstance方法呢?

这里建议大家好好看看,这个是结合类静态方法的单例模式。

我们一般的单例模式写成:

复制代码 代码如下:

class A{
    private $_instance;
    public static function getInstance(){
        ...
    }

    protected function __construct(){
        ...
    }

    public function setVal(){
        ...
    }
}

$a = A::getInstance();

$a->setVal();

这样在调用之前就需要实例化一个类,虽然这个实例化实际上是单例,但感觉还是不舒服

这边的register就做到了直接使用静态方法调用

A::setVal();

大致的代码思路我写了个demo

复制代码 代码如下:

class A{
    private static $_instance;
    public static function getInstance(){
        if(self::_instance !==null){
            return $this->_instance;
        } else {
            return new A();
        }
    }

    public function __construct(){

    }

    public static function setV(){
        $a = self::getInstance();
        $a->setVal();
    }

    public function setVal(){
        ...
    }
}

A::setV();

实际上就是直接把__construct()放开成为public,然后实例化它
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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 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)

Der Vorgang zum Schließen des Registrierungsprozesses in WIN10 Der Vorgang zum Schließen des Registrierungsprozesses in WIN10 Mar 27, 2024 pm 05:51 PM

1. Halten Sie die Tastenkombination [Win+R] auf der Tastatur gedrückt, öffnen Sie das Dialogbefehlsfenster [Ausführen], geben Sie den Befehl [services.msc] ein und klicken Sie auf [OK]. 2. Suchen Sie nach dem Öffnen der Serviceschnittstelle die Option [RemoteRegistry] und doppelklicken Sie mit der linken Maustaste, um das Dialogfenster mit den Eigenschaften zu öffnen. 3. Wählen Sie im sich öffnenden Dialogfenster [RemoteRegistry-Eigenschaften] die Option [Deaktiviert] in der Starttyp-Option und klicken Sie dann auf die Schaltfläche [Übernehmen] – [Stopp] – [OK], um die Einstellungen zu speichern.

So verwenden Sie ACL (Access Control List) zur Berechtigungskontrolle im Zend Framework So verwenden Sie ACL (Access Control List) zur Berechtigungskontrolle im Zend Framework Jul 29, 2023 am 09:24 AM

So verwenden Sie ACL (AccessControlList) zur Berechtigungskontrolle im Zend Framework. Einführung: In einer Webanwendung ist die Berechtigungskontrolle eine entscheidende Funktion. Es stellt sicher, dass Benutzer nur auf die Seiten und Funktionen zugreifen können, für die sie eine Zugriffsberechtigung haben, und verhindert unbefugten Zugriff. Das Zend-Framework bietet eine praktische Möglichkeit, die Berechtigungskontrolle mithilfe der ACL-Komponente (AccessControlList) zu implementieren. In diesem Artikel wird die Verwendung von ACL im Zend Framework vorgestellt

PHP-Implementierungs-Framework: Zend Framework-Erste-Schritte-Tutorial PHP-Implementierungs-Framework: Zend Framework-Erste-Schritte-Tutorial Jun 19, 2023 am 08:09 AM

PHP-Implementierungsframework: ZendFramework-Einführungs-Tutorial ZendFramework ist ein von PHP entwickeltes und derzeit von ZendTechnologies verwaltetes Open-Source-Website-Framework, das das MVC-Designmuster übernimmt und eine Reihe wiederverwendbarer Codebibliotheken zur Implementierung von Web2.0-Anwendungen und Web Serve bereitstellt. ZendFramework ist bei PHP-Entwicklern sehr beliebt und geschätzt und bietet eine große Auswahl an

PHP erkennt ZendOptimizer nicht, wie kann man das lösen? PHP erkennt ZendOptimizer nicht, wie kann man das lösen? Mar 19, 2024 pm 01:09 PM

PHP erkennt ZendOptimizer nicht, wie kann man das lösen? Bei der PHP-Entwicklung kann es manchmal vorkommen, dass PHP ZendOptimizer nicht erkennt, was dazu führt, dass einige PHP-Codes nicht ordnungsgemäß ausgeführt werden. In diesem Fall müssen wir einige Maßnahmen ergreifen, um das Problem zu lösen. Im Folgenden werden einige mögliche Problemumgehungen zusammen mit spezifischen Codebeispielen beschrieben. 1. Bestätigen Sie, ob ZendOptimizer korrekt installiert ist: Zuerst müssen wir bestätigen, dass ZendOptimizer

So konfigurieren Sie die Windows2003 IIS+MySQL+PHP+Zend-Umgebung So konfigurieren Sie die Windows2003 IIS+MySQL+PHP+Zend-Umgebung Jun 02, 2023 pm 09:56 PM

Das Installationspaket für Windows 2003 umfasst Zend, PHP5.2.17, PHPWind8.7 und PHPMyadmin3.5.2. Sie können das Installationspaket direkt herunterladen, um Zeit bei der Suche nach Ressourcen zu sparen. Da MySQL jedoch das Upload-Limit überschritten hat, müssen Sie zum Herunterladen auf die offizielle MySQL-Website gehen. Dann entpacken und auf das Laufwerk D kopieren, wie unten gezeigt: MySQLinDdisk Installieren und konfigurieren Sie WindowsIIS+FTP. Klicken Sie auf Start > Systemsteuerung > Programme hinzufügen oder entfernen.Hinzufügen oder Löschen eines PG Klicken Sie auf „Windows-Komponenten hinzufügen/entfernen“ (A). Addingorde

Welches Programm ist die Registrierung? Welches Programm ist die Registrierung? Feb 24, 2023 pm 05:21 PM

Registry bezieht sich auf „Registrierungseditor“ und ist ein Systemprogramm. Die Registrierung ist eine wichtige Datenbank im Microsoft Windows-System. Sie dient zum Speichern von System- und Anwendungseinstellungsinformationen, einschließlich Konfigurations- und Statusinformationen über die Computersoftware und -hardware sowie den Anfangszustand der Anwendungs- und Ressourcenmanager-Shells und Deinstallationsdaten, die allgemeinen Systemeinstellungen und verschiedenen Berechtigungen des Computers, die Zuordnung von Dateierweiterungen zu Anwendungen, die Beschreibung, den Status und die Eigenschaften der Hardware usw.

Wie Sie mit dem PHP-Framework Zend eine effiziente ERP-Management-Plattform entwickeln Wie Sie mit dem PHP-Framework Zend eine effiziente ERP-Management-Plattform entwickeln Jun 26, 2023 pm 11:00 PM

Mit der rasanten Entwicklung der Informationstechnologie erkennen immer mehr Unternehmen die Notwendigkeit des Informationsmanagements. Die ERP-Managementplattform (Enterprise Resource Planning) ist ein wichtiges Werkzeug für die moderne Unternehmensführung, das Unternehmen dabei helfen kann, Ressourcenplanung, Zusammenarbeit, Kontrolle, Optimierung und Verwaltung zu realisieren. Unter ihnen ist das PHP-Framework Zend ein hervorragendes Entwicklungstool, das Entwicklern helfen kann, ERP-Systeme schnell und effizient zu entwickeln. In diesem Artikel wird erläutert, wie Sie mit Zend eine effiziente ERP-Verwaltungsplattform entwickeln. 1. Bestimmen Sie die Anforderungsanalyse, bevor Sie mit dem Entwicklungsprozess beginnen

Laravel vs. Zend: Welches Framework eignet sich besser für die Entwicklung großer Anwendungen? Laravel vs. Zend: Welches Framework eignet sich besser für die Entwicklung großer Anwendungen? Jun 19, 2023 am 08:52 AM

Mit der kontinuierlichen Weiterentwicklung von Internetanwendungen steigt auch die Nachfrage nach der Entwicklung groß angelegter Anwendungen. In diesem Zusammenhang ist es besonders wichtig, ein Entwicklungsframework zu wählen, das zu Ihnen passt. Laravel und Zend sind zwei weit verbreitete PHP-Frameworks. Sie haben jeweils ihre eigenen Vorteile, aber welches eignet sich besser für die Entwicklung umfangreicher Anwendungen? Laravel ist ein beliebtes Entwicklungsframework, das zu einem der bevorzugten Frameworks für PHP-Entwickler geworden ist. Es verfügt über ein modernes Designkonzept und verfügt über eine Vielzahl leistungsstarker integrierter Funktionen und Tools, wie z. B. EloquentOR

See all articles