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,然后实例化它

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









1. 키보드의 [Win+R] 단축키 조합을 길게 눌러 [실행] 대화상자 명령창을 열고, [services.msc] 명령을 입력한 후 [확인];을 클릭하세요. 2. 서비스 인터페이스를 연 후 [RemoteRegistry] 옵션을 찾아 왼쪽 버튼을 두 번 클릭하여 속성 대화 상자 창을 엽니다. 3. [원격 레지스트리 속성] 대화창이 열리면 시작 유형 옵션에서 [사용 안 함] 옵션을 선택한 후 [적용]--[중지]-[확인] 버튼을 클릭하여 설정을 저장합니다.

Zend Framework에서 권한 제어를 위해 ACL(AccessControlList)을 사용하는 방법 소개: 웹 애플리케이션에서 권한 제어는 중요한 기능입니다. 이는 사용자가 액세스 권한이 있는 페이지와 기능에만 액세스할 수 있도록 하고 무단 액세스를 방지합니다. Zend 프레임워크는 ACL(AccessControlList) 구성 요소를 사용하여 권한 제어를 구현하는 편리한 방법을 제공합니다. 이 기사에서는 Zend Framework에서 ACL을 사용하는 방법을 소개합니다.

PHP 구현 프레임워크: ZendFramework 입문 튜토리얼 ZendFramework는 PHP에서 개발하고 현재 ZendTechnologies에서 유지 관리하는 오픈 소스 웹 사이트 프레임워크입니다. ZendFramework는 MVC 디자인 패턴을 채택하고 Web2.0 애플리케이션 및 Web Serve 구현을 지원하기 위한 재사용 가능한 코드 라이브러리 시리즈를 제공합니다. ZendFramework는 PHP 개발자들에게 매우 인기 있고 존경받고 있으며 다양한 기능을 갖추고 있습니다.

PHP가 ZendOptimizer를 인식하지 못합니다. 어떻게 해결합니까? PHP 개발 중에 PHP가 ZendOptimizer를 인식하지 못하는 상황이 발생할 수 있으며, 이로 인해 일부 PHP 코드가 제대로 실행되지 않을 수 있습니다. 이 경우 문제를 해결하기 위해 몇 가지 조치를 취해야 합니다. 아래에는 몇 가지 가능한 해결 방법과 특정 코드 예제가 설명되어 있습니다. 1. ZendOptimizer가 올바르게 설치되었는지 확인: 먼저 ZendOptimizer가 올바르게 설치되었는지 확인해야 합니다.

Windows 2003 설치 패키지에는 Zend, PHP5.2.17, PHPWind8.7 및 PHPMyadmin3.5.2가 포함되어 있습니다. 설치 패키지를 직접 다운로드하여 리소스 검색 시간을 절약할 수 있습니다. 하지만 MySQL은 업로드 제한을 초과했기 때문에 MySQL 공식 웹사이트에 가서 다운로드해야 합니다. 그런 다음 아래와 같이 압축을 풀고 D 드라이브에 복사합니다. MySQLinDdisk WindowsIIS+FTP 설치 및 구성 시작>제어판>프로그램 추가/제거를 클릭합니다.PG 추가 또는 삭제 Windows 구성 요소 추가/제거(A)를 클릭합니다. 추가고르데

레지스트리는 "레지스트리 편집기"를 의미하며 시스템 프로그램입니다. 레지스트리는 Microsoft Windows 시스템의 중요한 데이터베이스로 사용자의 컴퓨터 소프트웨어 및 하드웨어에 대한 구성 및 상태 정보, 응용 프로그램 및 리소스 관리자 셸 기본 설정을 포함하여 시스템 및 응용 프로그램 설정 정보를 저장하는 데 사용됩니다. 데이터 제거, 컴퓨터의 전체 시스템 설정 및 다양한 권한, 파일 확장자와 응용 프로그램의 연결, 하드웨어의 설명, 상태 및 속성 등

정보기술의 급속한 발전으로 인해 점점 더 많은 기업들이 정보관리의 필요성을 깨닫기 시작하고 있습니다. ERP(Enterprise Resource Planning) 관리 플랫폼은 기업이 자원 계획, 협업, 제어, 최적화 및 관리를 실현하는 데 도움이 되는 현대 기업 관리를 위한 중요한 도구입니다. 그 중 PHP 프레임워크 Zend는 개발자가 ERP 시스템을 빠르고 효율적으로 개발하는 데 도움을 줄 수 있는 탁월한 개발 도구입니다. 이 기사에서는 Zend를 사용하여 효율적인 ERP 관리 플랫폼을 개발하는 방법을 소개합니다. 1. 개발 프로세스를 시작하기 전에 요구사항 분석을 결정합니다.

인터넷 애플리케이션이 지속적으로 발전함에 따라 대규모 애플리케이션 개발에 대한 요구도 증가하고 있습니다. 이러한 맥락에서 자신에게 적합한 개발 프레임워크를 선택하는 것이 특히 중요합니다. Laravel과 Zend는 널리 사용되는 두 가지 PHP 프레임워크입니다. 각각 고유한 장점이 있지만 대규모 애플리케이션 개발에 더 적합한 것은 무엇입니까? Laravel은 PHP 개발자가 선호하는 프레임워크 중 하나가 된 인기 있는 개발 프레임워크입니다. 현대적인 디자인 컨셉을 채택하고 EloquentOR과 같은 다양하고 강력한 내장 기능과 도구를 갖추고 있습니다.
