PHP 設計パターン: シングルトン パターン
数日前、私は最初にシングルトン パターンから始めました。もちろん、シングルトン パターンの方が理解しやすいです。はじめにを読んで、コードを見れば基本的に理解できます。 もちろん、それをプロジェクトにうまく適用するには、ある程度の練習も必要です。知っているだけで理解しているとか、とても強力だとか、よくわかっていますが、実際の運用となるとうまくいきません。だから、PHP のことについてはくだらない話はしません。 ;
シングルケースモード (責任モード):
簡単に言うと、オブジェクト (デザインパターンを学ぶ前にオブジェクト指向の考え方を理解する必要があります) は、次のことのみを担当します。特定のタスク;
シングルトン クラス:
1、コンストラクターはプライベートとしてマークされる必要があります (アクセス制御: 外部コードが new 演算子を使用してオブジェクトを作成するのを防ぎます)。他のクラスでインスタンス化され、それ自体でのみインスタンス化できます。
2. クラスのインスタンスを保存する静的メンバー変数を所有します
3. これにアクセスするためのパブリック静的メソッドを用意します。インスタンス (一般的に getInstance() メソッドはシングルトン クラスをインスタンス化するために使用され、instanceof 演算子はクラスがインスタンス化されたかどうかを検出するために使用できます)
さらに、 __clone() を作成する必要があります。オブジェクトのコピー (クローン作成) を防ぐメソッド
PHP シングルトン モードを使用する理由
1. PHP のアプリケーションは主にデータベース アプリケーションであるため、アプリケーション内で多数のデータベース操作が行われるため、シングルトン モードを使用すると、新しい操作によって大量のリソースが消費されるのを回避できます。
2. システム内の特定の構成情報をグローバルに制御するためにクラスが必要な場合は、ZF の FrontController セクションにあるシングルトン モードを使用して簡単に実装できます。
3. ページリクエストでは、すべてのコード (データベース操作クラス db など) が 1 つのクラスに集中しているため、クラス内にフックを設定してログを出力することができ、どこにでも行くことを避けることができます。 .var_dump、エコー。
コード実装:
<111?111php111
/1**
* 設計パターンのシングルトン パターン
* $ _instance は静的プライベート変数として宣言する必要があります
* 外部プログラムが新しいクラスを作成できないように、コンストラクターとデストラクターはプライベートとして宣言する必要があります
* これにより、シングルトン モードの意味が失われます
* getInstance() メソッドは public に設定する必要があり、このメソッドは
* インスタンスへの参照を返すために呼び出す必要があります
* ::演算子は static にのみアクセスできます変数と静的関数
* 新しいオブジェクトはメモリを消費します
* 使用シナリオ: 最も一般的に使用される場所はデータベース接続です。
* シングルトン モードを使用してオブジェクトを生成した後、
* このオブジェクトは他の多くのオブジェクトで使用できます。
*/
class Danli {
//クラスインスタンスの静的メンバー変数を保存
private static $_instance ;
//プライベートタグの構築メソッド
private function __construct(){
echo 'これは構築されたメソッドです;';
}
// オブジェクトのコピーとクローン作成を防ぐ __clone メソッドを作成します
public function __clone(){
trigger_error ('クローンは許可されていません!',E_USER_ERROR);
}
// シングルトン メソッド、インスタンスへのアクセスに使用されるパブリック静的メソッド
public static function getInstance(){
if(!(self::$_instance instanceof self)){
self::$_instance = 新しい self;
}
return self::$_instance;
}
public function test(){
echo 'メソッドの呼び出しが成功しました' ;
}
}
// new を使用してプライベート マーク コンストラクターでクラスをインスタンス化すると、エラーが報告されます
/ /$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衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。
