Maison développement back-end tutoriel php 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,然后实例化它
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le processus opérationnel de fermeture du processus de registre dans WIN10 Le processus opérationnel de fermeture du processus de registre dans WIN10 Mar 27, 2024 pm 05:51 PM

1. Appuyez et maintenez enfoncée la combinaison de touches de raccourci [Win+R] sur le clavier, ouvrez la fenêtre de commande de dialogue [Exécuter], entrez la commande [services.msc] et cliquez sur [OK] ;. 2. Après avoir ouvert l'interface du service, recherchez l'option [RemoteRegistry] et double-cliquez avec le bouton gauche pour ouvrir sa fenêtre de dialogue de propriétés. 3. Dans la fenêtre de dialogue [RemoteRegistry Properties] qui s'ouvre, sélectionnez l'option [Disable] dans l'option de type de démarrage, puis cliquez sur le bouton [Appliquer]--[Stop]--[OK] pour enregistrer les paramètres.

Comment utiliser l'ACL (Access Control List) pour le contrôle des autorisations dans Zend Framework Comment utiliser l'ACL (Access Control List) pour le contrôle des autorisations dans Zend Framework Jul 29, 2023 am 09:24 AM

Comment utiliser l'ACL (AccessControlList) pour le contrôle des autorisations dans Zend Framework Introduction : Dans une application Web, le contrôle des autorisations est une fonction cruciale. Il garantit que les utilisateurs ne peuvent accéder qu'aux pages et fonctionnalités auxquelles ils sont autorisés à accéder et empêche tout accès non autorisé. Le framework Zend fournit un moyen pratique d'implémenter le contrôle des autorisations, en utilisant le composant ACL (AccessControlList). Cet article explique comment utiliser l'ACL dans Zend Framework.

Framework d'implémentation PHP : Tutoriel de mise en route de Zend Framework Framework d'implémentation PHP : Tutoriel de mise en route de Zend Framework Jun 19, 2023 am 08:09 AM

Framework d'implémentation PHP : tutoriel d'introduction à ZendFramework ZendFramework est un framework de site Web open source développé par PHP et actuellement maintenu par ZendTechnologies. ZendFramework adopte le modèle de conception MVC et fournit une série de bibliothèques de code réutilisables pour servir l'implémentation d'applications Web2.0 et Web Serve. ZendFramework est très populaire et respecté par les développeurs PHP et propose une large gamme de

PHP ne reconnaît pas ZendOptimizer, comment le résoudre ? PHP ne reconnaît pas ZendOptimizer, comment le résoudre ? Mar 19, 2024 pm 01:09 PM

PHP ne reconnaît pas ZendOptimizer, comment le résoudre ? Dans le développement PHP, vous pouvez parfois rencontrer une situation dans laquelle PHP ne peut pas reconnaître ZendOptimizer, ce qui entraînera un mauvais fonctionnement de certains codes PHP. Dans ce cas, nous devons prendre certaines mesures pour résoudre le problème. Certaines solutions de contournement possibles sont décrites ci-dessous, ainsi que des exemples de code spécifiques. 1. Confirmez si ZendOptimizer est installé correctement : Tout d'abord, nous devons confirmer que ZendOptimizer

Comment configurer l'environnement Window2003 IIS+MySQL+PHP+Zend Comment configurer l'environnement Window2003 IIS+MySQL+PHP+Zend Jun 02, 2023 pm 09:56 PM

Le package d'installation de Windows 2003 comprend Zend, PHP5.2.17, PHPWind8.7 et PHPMyadmin3.5.2. Vous pouvez télécharger le package d'installation directement pour gagner du temps dans la recherche de ressources. Cependant, comme MySQL a dépassé la limite de téléchargement, vous devez vous rendre sur le site officiel de MySQL pour télécharger. Ensuite, décompressez et copiez sur le lecteur D, comme indiqué ci-dessous : MySQLinDdisk Installez et configurez WindowsIIS+FTP Cliquez sur Démarrer>Panneau de configuration>Ajouter ou supprimer des programmes.Ajout ou suppression d'un PG Cliquez sur Ajouter/Supprimer des composants Windows (A). Ajout d'une commande

Quel programme est le registre ? Quel programme est le registre ? Feb 24, 2023 pm 05:21 PM

Registry fait référence à « éditeur de registre » et est un programme système. Le registre est une base de données importante dans le système Microsoft Windows. Il est utilisé pour stocker les informations sur les paramètres du système et des applications, y compris les informations de configuration et d'état sur les logiciels et le matériel informatique de l'utilisateur, ainsi que les conditions initiales des shells d'application et du gestionnaire de ressources, ainsi que les préférences. et les données de désinstallation, les paramètres généraux du système de l'ordinateur et diverses autorisations, l'association des extensions de fichiers avec les applications, la description, l'état et les propriétés du matériel, etc.

Comment utiliser le framework PHP Zend pour développer une plateforme de gestion ERP efficace Comment utiliser le framework PHP Zend pour développer une plateforme de gestion ERP efficace Jun 26, 2023 pm 11:00 PM

Avec le développement rapide des technologies de l’information, de plus en plus d’entreprises commencent à prendre conscience de la nécessité de gérer l’information. La plate-forme de gestion ERP (Enterprise Resource Planning) est un outil important pour la gestion d'entreprise moderne, qui peut aider les entreprises à réaliser la planification, la collaboration, le contrôle, l'optimisation et la gestion des ressources. Parmi eux, le framework PHP Zend est un excellent outil de développement qui peut aider les développeurs à développer des systèmes ERP rapidement et efficacement. Cet article présentera comment utiliser Zend pour développer une plateforme de gestion ERP efficace. 1. Déterminer l'analyse des besoins avant de commencer le processus de développement

Laravel vs Zend : quel framework est le meilleur pour développer de grandes applications ? Laravel vs Zend : quel framework est le meilleur pour développer de grandes applications ? Jun 19, 2023 am 08:52 AM

Avec le développement continu des applications Internet, la demande de développement d’applications à grande échelle augmente également. Dans ce contexte, il est particulièrement important de choisir un cadre de développement qui vous convient. Laravel et Zend sont deux frameworks PHP largement utilisés. Ils ont chacun leurs propres avantages, mais lequel est le plus adapté au développement d'applications à grande échelle ? Laravel est un framework de développement populaire qui est devenu l'un des frameworks préférés des développeurs PHP. Il adopte un concept de design moderne et dispose d'une variété de fonctions et d'outils intégrés puissants, tels qu'EloquentOR.

See all articles