PHP 디자인 패턴 싱글톤 패턴 예제 분석_php 기술
이 기사의 예에서는 PHP 디자인 패턴의 싱글톤 모드를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
싱글톤 모드(책임 모드):
간단히 말하면 객체(디자인 패턴을 배우기 전에 객체지향적 사고를 이해해야 함)는 특정 작업만 담당합니다.
싱글톤 클래스:
1. 생성자는 비공개로 표시되어야 합니다(액세스 제어: 외부 코드가 객체를 생성하기 위해 new 연산자를 사용하는 것을 방지). 싱글톤 클래스는 다른 클래스에서 인스턴스화될 수 없으며 자체적으로만 인스턴스화될 수 있습니다.
2.
클래스의 인스턴스를 보유하는 정적 멤버 변수를 갖습니다.
3. 이 인스턴스에 액세스하기 위한 공용 정적 메소드를 갖습니다. (getInstance() 메소드는 일반적으로 싱글톤 클래스를 인스턴스화하는 데 사용되며, instanceof 연산자는 클래스가 인스턴스화되었는지 감지하는 데 사용할 수 있습니다.)
PHP 싱글턴 패턴을 사용하는 이유는 무엇인가요?
1. PHP는 주로 데이터베이스 애플리케이션에 사용되므로 애플리케이션에서 많은 수의 데이터베이스 작업이 발생합니다. 싱글톤 모드를 사용하면 새로운 작업에 많은 리소스가 소비되는 것을 피할 수 있습니다.
2. 특정 구성 정보를 전역적으로 제어하기 위해 시스템에 클래스가 필요한 경우 싱글톤 모드를 사용하여 쉽게 구현할 수 있습니다. 이는 ZF의 FrontController 섹션에서 찾을 수 있습니다.
3. 페이지 요청에서는 모든 코드(예: 데이터베이스 작업 클래스 db)가 하나의 클래스에 집중되어 있기 때문에 디버깅하기 쉽습니다. 클래스에 후크를 설정하고 로그를 출력하여 모든 곳에서 var_dump 및 echo를 방지할 수 있습니다.
코드 구현:
<?php /1** * 设计模式之单例模式 * $_instance必须声明为静态的私有变量 * 构造函数和析构函数必须声明为私有,防止外部程序new * 类从而失去单例模式的意义 * getInstance()方法必须设置为公有的,必须调用此方法 * 以返回实例的一个引用 * ::操作符只能访问静态变量和静态函数 * new对象都会消耗内存 * 使用场景:最常用的地方是数据库连接。 * 使用单例模式生成一个对象后, * 该对象可以被其它众多对象所使用。 */ class Danli { //保存类实例的静态成员变量 private static $_instance; //private标记的构造方法 private function __construct(){ echo 'This is a Constructed method;'; } //创建__clone方法防止对象被复制克隆 public function __clone(){ trigger_error('Clone is not allow!',E_USER_ERROR); } //单例方法,用于访问实例的公共的静态方法 public static function getInstance(){ if(!(self::$_instance instanceof self)){ self::$_instance = new self; } return self::$_instance; } public function test(){ echo '调用方法成功'; } } //用new实例化private标记构造函数的类会报错 //$danli = new Danli(); //正确方法,用双冒号::操作符访问静态方法获取实例 $danli = Danli::getInstance(); $danli->test(); //复制(克隆)对象将导致一个E_USER_ERROR $danli_clone = clone $danli;

핫 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)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
