FluentPDOを始めましょう
退屈なSQLクエリに別れを告げます! FluentPDO
を使用してデータベース操作を簡素化しますSQLクエリも書くのにうんざりしていませんか?特に時間が厳しいとき。あなたが私のようであれば、今日は非常にクールなツール、Fluentpdoを学びます。 「PDO」という用語に慣れていない場合は、心配しないでください。これは非常に単純な概念です。PHPの世界では、PDOは永続的なデータオブジェクトの略であり、基本的なデータベース操作(挿入、更新、削除など)を抽象化するのに役立ちます。これは、あなたとデータベースの間の抽象化の層です。
結果は何ですか? SQLクエリを書く必要はもうありません!これは、これまでに見た最初のプロジェクトではないかもしれません。市場には多くの同様のプロジェクトがあり、それぞれに重要な機能があります。 FluentPDOの重要な機能は、強力なJoinクエリビルダーです。
キーポイント
- FluentPDOは、SQLクエリを記述せずに基本的なデータベース操作を抽象化するPHP SQLクエリビルダーです。その重要な機能は、強力な結合クエリビルダーです。
- FluentPDOのインストールは、追加の構成なしでComposerを通じて行われます。 PDOオブジェクトは、FluentPDOオブジェクトのコンストラクターにパラメーターとして渡すことにより、PDOオブジェクトをインスタンス化します。
- FluentPDOは、テーブルを設定し、結果をフィルターし、比較演算子を指定する方法など、基本的な選択操作にシンプルで読みやすい構文を提供します。また、特定のフィールドの選択、制限およびオフセットパラメーターの設定、および命令によりhaving、group by、および順序を使用することもできます。
- FluentPDOは、操作クラスの挿入、更新、削除を使用してデータ操作もサポートしています。これらの操作には、クエリを実行してデータベースを変更するには、execute()メソッドが必要です。 FluentPDOの高度な機能には、Join Query Builder(コードがJoinクエリを簡素化する)と組み込みデバッガーシステム(テストとチェックのクエリのための)が含まれます。
最初に、それを行うにはサンプルプロジェクトが必要です。考えてみましょう...シンプルなマルチユーザーウィッシュリストはどうですか?
多くのユーザーが存在し、各ユーザーには独自のお気に入りの製品があります。各ユーザーについて、名、姓、登録日を保存します。各アイテムについて、その名前、ブランド、価格、および関連するユーザーIDを保存します。
単純なMySQLデータベースを使用します。データ構造は次のとおりです
以下はSQLダンプ(いくつかのダミーデータを含む)です:
注:簡単に想像できるように、これは「完全な」プロジェクトではありません。 FluentPDOを試しているだけなので、ログイン、登録、アプリケーション構造などをカバーしません。
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
インストール
Composerを使用してFluentPDOをインストールして、依存関係として含めることができます:
あなたが完了したら、このようにインスタンス化する必要があります:
"require": { ... "lichtner/fluentpdo": "dev-master" }
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
PDOコンストラクター法で接続の詳細を指定する必要があります。最初のパラメーターでは、DBNAME =セクションの後にデータベース名を入力し、ユーザー名とパスワードをそれぞれ2番目と3番目のパラメーターとして記述します。
次に、PDOオブジェクトをパラメーターとしてFluentPDOオブジェクトのコンストラクターに渡します。
それだけです、Fluentpdoは他に何も機能する必要はありません。追加の構成は必要ありません。
基本的な選択操作
すでにいくつかの仮想データがあります。 SQLクエリの「Hello World」から始めましょう。基本情報を取得するためのパラメーターとして、Where句とユーザープライマリキーIDを備えた簡単な選択。
"require": { ... "lichtner/fluentpdo": "dev-master" }
ここで理解するのは難しいことはありません。 FluentPDOには優れた読みやすい構文があるため、私たちが何をしているのかを簡単に理解するのは簡単です。
from()メソッドは、正しいテーブルを設定するために使用されます。 where()メソッドは、同じ名前句で結果をフィルタリングするために使用されます。デフォルトでは、where()メソッドでフィールド名と値を指定するだけです。 "="は暗黙的です。もちろん、異なる比較演算子を使用することもできます。この場合、フィールド名の後にそれらを書く必要があります。
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
結果を取得するのは非常に簡単です。それらは、使用したばかりの$ queryオブジェクトに保存されます。例に示すように、foreachループを使用してそれを反復させることができます。
この特定のケース(プライマリキーIDでアイテムを検索)では、from()メソッドでショートカットを使用することもできます。これよりも複雑なものを見てみましょう。
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
特定のフィールドを選択
必要に応じて、()from()からselectにselect()メソッドを使用できます。 Arrayを使用して、FluentPDOに選択するフィールドに伝える必要があります。これは例です:
制限とオフセット
$fpdo->from('items')->where('price >', 1000);
これら2つの方法に対する唯一の引数は、必要な値を指定する整数です(limit()、それはアイテムの数です; offset()の場合、それはスキップするアイテムの数です)。
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
を注文します
メソッドは、「持っている」、「グループ」、「注文」の指示にも提供されています。いくつかの例でそれらを見てみましょう。
による注文
Orderby()メソッドは、特定の条件に応じて結果をソートするために使用されます。例を挙げてみましょう:価格で結果を(安価から高価まで)並べ替える方法は次のとおりです。注文を逆にする場合(最も高価なものから最も安いものから最も安いものを取得します)、選択した列の後に「DESC」を追加するだけです。
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
// 选择前十个结果... $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);
非常にシンプルです。
$query = $fpdo->from('items')->orderBy('price');
グループ
GroupBy()メソッドを使用して、特定のフィールドを使用して結果を条件としてグループ化できます。ここでは、各ブランドの製品の量を表示します。
CREATE TABLE IF NOT EXISTS items (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) NOT NULL,
brand varchar(100) NOT NULL,
price decimal(10,2) NOT NULL,
user_id int(10) unsigned NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id) ) ENGINE=InnoDB
DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO items (id, name, brand, price, user_id)
VALUES
(1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1),
(2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1),
(3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2),
(4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2);
CREATE TABLE IF NOT EXISTS users (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
first_name varchar(100) NOT NULL,
last_name varchar(100) NOT NULL,
signup_date datetime NOT NULL,
PRIMARY KEY (id) ) ENGINE=InnoDB
DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;
INSERT INTO users (id, first_name, last_name, signup_date)
VALUES
(1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'),
(2, 'John', 'Foo Bar', '2014-06-20 11:16:39');
ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピー
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
注:クラシックSQLのようなフィールドのエイリアスを指定できます。
メソッドの取得
fetch
その名前をパラメーターとして指定することで、単一の列を取得することもできます。
"require": { ... "lichtner/fluentpdo": "dev-master" }
fetchpairs
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
fetchpairs()を使用すると、結果を連想配列として取得できます。次の構文を使用してください:
次の出力が得られます:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
これは、ユーザーユニークIDと名前を使用した例です。
$fpdo->from('items')->where('price >', 1000);
fetchall
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
最後になりましたが、fetchall()メソッドです。
次のものは構文です:
fetchall()を使用すると、結果から得られるものを完全に制御できます。最初のパラメーター$インデックスはインデックスとして使用されるフィールドであり、$ selectonlyは選択するフィールドを指定するために使用されます。
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
これは例です:
注:インデックスとして使用される列(この場合はID)も最終配列に含まれています。
// 选择前十个结果... $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);
わかりました、選択操作については十分です。他のCRUD操作を見てみましょう。
挿入、更新、削除
Fluentpdoは、何かを選択することだけではありません。また、データを簡単に操作するクラスもあります。
挿入操作から始めましょう。
挿入
insertInto()メソッドは、操作に使用するテーブルを指定するために使用されます。次に、値()メソッドを使用して必要な値を割り当てる必要があります(この場合、それらは$ values Associative Arrayに保存されます)。
$query = $fpdo->from('items')->orderBy('price');
最後のステップは、新しいレコードの主要なキーを返すexecute()メソッドです。
必要に応じてこのショートカットを使用することもできます:
update
$query = $fpdo->from('items')->orderBy('price DESC');
更新方法は非常に似ています。例を見てみましょう。
set()メソッドを使用して、更新操作の新しい値を指定できます。
$query = $fpdo->from('items')->having('price <', 2000);
where()メソッドを使用して、影響を受ける行をフィルタリングします。前述のように、ショートカットもあります。
削除
削除操作が簡単です。これが簡単な例です。
主要なキーを知っているレコードを削除する場合は、上記のdeletefrom()ショートカットを使用できます。
$query = $fpdo->from('items')->select('brand, COUNT(*) AS c')->groupBy('brand');
注:ここの例からわかるように、execute()メソッドを使用して削除クエリを実行する必要があります。これを行わないと、データベースに何も変更されません。同じことが挿入と更新にも当てはまります。これに留意してください。
高度な機能
前に言ったように、これらのタイプのプロジェクトには独自の機能があります。 FluentPDOも例外ではありません。これらの機能のうち2つを分析します:Join Query BuilderとDebugger。
クエリビルダーに参加
は、おそらくFluentPDOの最も重要なユニークな機能です。ビルダーは、作業を簡素化し、コードを少なくする場合に非常に便利です。使い方を見てみましょう。
FluentPDOを使用して書かれた「クラシック」結合クエリから始めます。
これに似ています:
OK:Special ReftJoin()メソッドでクラシック構文を使用します。悪くない。
しかし、私たちはもっとうまくやることができます。テーブル構造でコンベンションを使用する場合は、このコードを使用できます。
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
ここを見てください:
"require": { ... "lichtner/fluentpdo": "dev-master" }
最後の例の最終ビルドクエリをここで読むことができます:
結論 FluentPDOは小さくてシンプルなプロジェクトです。それは間違いなくすべてのプロジェクトに適合するわけではなく、特に6か月間休眠している場合は改善することができますが、小/中サイズのアプリケーションでは、ゲームに大きなフレームワークを導入したくない場合に適したオプションになる可能性があります。 。 Join Query Builderなど、その機能の一部があるため、良いトレードオフです。
。このコマンドを実行した後、ComposerはFluentPDOとその依存関係をプロジェクトにダウンロードしてインストールします。
メソッドを使用してテーブルを指定し、
メソッドを使用して新しい値を指定し、
FluentPDOでトランザクションを使用する方法は? メソッドを使用できます。例は次のとおりです。 以上がFluentPDOを始めましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。$pdo = new PDO("mysql:dbname=wishlist", "root", "password");
$fpdo = new FluentPDO($pdo);
$user_id = 1;
$query = $fpdo->from('users')->where('id', $user_id);
foreach($query as $row){
echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!';
}
単純な閉鎖システムを使用します。デバッグを使用する場合は、コードを接続した後、このコードを配置するだけです。
$fpdo->from('items')->where('price >', 1000);
を始めることについてのFAQ
FluentPDOとは何ですか?なぜそれを使用する必要があるのですか?
fluentpdoをインストールする方法は?
FluentPDOは、Composer(PHPのDependency Manager)を使用してインストールできます。コマンドを実行してインストールできますFluentPDOを使用してデータベースに接続する方法は?
FluentPDOを使用してデータベースに接続するには、FluentPDOクラスの新しいインスタンスを作成する必要があります。これを実行できます。PDOインスタンスをFluentPDOコンストラクターに渡すことができます。例は次のとおりです。composer require envms/fluentpdo
FluentPDOは、選択したクエリを実行するための簡単なインターフェイスを提供します。 $query = fpdo->from('users', $user_id);
// 将与...相同
$query = $fpdo->from('users')->where('id', $user_id);
FluentPDOを使用して挿入クエリを実行する方法は? from
挿入クエリを実行するには、select
メソッドを使用してテーブルを指定し、$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
CREATE TABLE IF NOT EXISTS items (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) NOT NULL,
brand varchar(100) NOT NULL,
price decimal(10,2) NOT NULL,
user_id int(10) unsigned NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id) ) ENGINE=InnoDB
DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO items (id, name, brand, price, user_id)
VALUES
(1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1),
(2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1),
(3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2),
(4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2);
CREATE TABLE IF NOT EXISTS users (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
first_name varchar(100) NOT NULL,
last_name varchar(100) NOT NULL,
signup_date datetime NOT NULL,
PRIMARY KEY (id) ) ENGINE=InnoDB
DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;
INSERT INTO users (id, first_name, last_name, signup_date)
VALUES
(1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'),
(2, 'John', 'Foo Bar', '2014-06-20 11:16:39');
ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
FluentPDOを使用して更新クエリを実行する方法は?
update
set
where
FluentPDOを使用して削除クエリを実行する方法は? "require": {
...
"lichtner/fluentpdo": "dev-master"
}
メソッドを使用してテーブルを指定し、
メソッドを使用して条件を指定できます。例は次のとおりです。deleteFrom
where
fluentpdoのエラーを処理する方法は? $pdo = new PDO("mysql:dbname=wishlist", "root", "password");
$fpdo = new FluentPDO($pdo);
$user_id = 1;
$query = $fpdo->from('users')->where('id', $user_id);
foreach($query as $row){
echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!';
}
、
、およびbeginTransaction
commit
rollBack
FluentPDOを使用してテーブルに参加する方法は? $fpdo->from('items')->where('price >', 1000);
メソッドを使用して、テーブルと条件を指定できます。例は次のとおりです。

ホット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)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。
