Zend的Registry机制的使用说明_PHP
项目过程中有很多全局变量, 需要全局存储,是否是使用全局变量来进行存储?那就弱爆了。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,然后实例化它

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Tekan dan tahan kombinasi kekunci pintasan [Win+R] pada papan kekunci, buka tetingkap arahan dialog [Run], masukkan arahan [services.msc] dan klik [OK];. 2. Selepas membuka antara muka perkhidmatan, cari pilihan [RemoteRegistry] dan klik dua kali dengan butang kiri untuk membuka tetingkap dialog sifatnya. 3. Dalam tetingkap dialog [RemoteRegistry Properties] yang terbuka, pilih pilihan [Disable] dalam pilihan jenis permulaan, dan kemudian klik butang [Apply]--[Stop]--[OK] untuk menyimpan tetapan.

Rangka kerja pelaksanaan PHP: Tutorial pengenalan ZendFramework ZendFramework ialah rangka kerja tapak web sumber terbuka yang dibangunkan oleh PHP dan kini diselenggara oleh ZendTechnologies menggunakan corak reka bentuk MVC dan menyediakan satu siri perpustakaan kod boleh guna semula untuk melaksanakan aplikasi Web2.0 dan Web Serve. ZendFramework sangat popular dan dihormati oleh pembangun PHP dan mempunyai pelbagai jenis

Cara menggunakan ACL (AccessControlList) untuk kawalan kebenaran dalam Rangka Kerja Zend Pengenalan: Dalam aplikasi web, kawalan kebenaran ialah fungsi penting. Ia memastikan bahawa pengguna hanya boleh mengakses halaman dan ciri yang dibenarkan untuk mereka akses dan menghalang akses yang tidak dibenarkan. Rangka kerja Zend menyediakan cara yang mudah untuk melaksanakan kawalan kebenaran, menggunakan komponen ACL (AccessControlList). Artikel ini akan memperkenalkan cara menggunakan ACL dalam Rangka Kerja Zend

PHP tidak mengenali ZendOptimizer, bagaimana untuk menyelesaikannya? Dalam pembangunan PHP, kadangkala anda mungkin menghadapi situasi di mana PHP tidak dapat mengenali ZendOptimizer, yang akan menyebabkan beberapa kod PHP tidak berjalan dengan betul. Dalam kes ini, kita perlu mengambil beberapa langkah untuk menyelesaikan masalah tersebut. Beberapa penyelesaian yang mungkin diterangkan di bawah, bersama dengan contoh kod khusus. 1. Sahkan sama ada ZendOptimizer dipasang dengan betul: Pertama, kita perlu mengesahkan bahawa ZendOptimizer

Pakej pemasangan Windows 2003 termasuk Zend, PHP5.2.17, PHPWind8.7 dan PHPMyadmin3.5.2 Anda boleh memuat turun pakej pemasangan terus untuk menjimatkan masa mencari sumber. Walau bagaimanapun, memandangkan MySQL telah melebihi had muat naik, anda perlu pergi ke laman web rasmi MySQL untuk memuat turun. Kemudian nyahzip dan salin ke pemacu D, seperti yang ditunjukkan di bawah: MySQLinDdisk Pasang dan konfigurasi WindowsIIS+FTP Klik Mula>Panel Kawalan>Tambah atau Buang Program.MenambahordeletingaPG Klik Tambah/Buang Komponen Windows (A). Addingorde

Pendaftaran merujuk kepada "editor pendaftaran" dan merupakan program sistem. Pendaftaran ialah pangkalan data yang penting dalam sistem Microsoft Windows Ia digunakan untuk menyimpan maklumat tetapan sistem dan aplikasi, termasuk maklumat konfigurasi dan status tentang perisian dan perkakasan komputer pengguna, dan syarat awal shell aplikasi dan pengurus sumber dan nyahpasang data, tetapan sistem keseluruhan komputer dan pelbagai kebenaran, perkaitan sambungan fail dengan aplikasi, perihalan, status dan sifat perkakasan, dsb.

Dengan pertumbuhan pesat maklumat Internet, enjin carian telah menjadi salah satu cara pilihan orang ramai untuk mendapatkan maklumat. Kini, apabila bilangan laman web terus meningkat, tindak balas pantas dan ketepatan enjin carian telah menjadi semakin penting, yang memerlukan enjin carian mempunyai prestasi tinggi. Dalam artikel ini, saya akan memperkenalkan cara menggunakan rangka kerja PHP Zend untuk membangunkan enjin carian berprestasi tinggi. 1. Mengapa menggunakan Rangka Kerja Zend ialah rangka kerja PHP berprestasi tinggi yang mempunyai prestasi dan kebolehskalaan yang sangat baik.

Dengan perkembangan pesat teknologi maklumat, semakin banyak perusahaan mula menyedari keperluan pengurusan maklumat. Platform pengurusan ERP (Enterprise Resource Planning) ialah alat penting untuk pengurusan perusahaan moden, yang boleh membantu perusahaan merealisasikan perancangan sumber, kerjasama, kawalan, pengoptimuman dan pengurusan. Antaranya, rangka kerja PHP Zend ialah alat pembangunan yang sangat baik yang boleh membantu pembangun membangunkan sistem ERP dengan cepat dan cekap. Artikel ini akan memperkenalkan cara menggunakan Zend untuk membangunkan platform pengurusan ERP yang cekap. 1. Tentukan analisis keperluan sebelum memulakan proses pembangunan
