spl_autoload_register の過去と現在について話しましょう
#❝この記事では、spl_autoload_register について説明します。❞
序文
##❝カカはロードマップをまとめ、面接ガイドの作成に着手し、私が書いているこのロードマップに従う準備をしました。この記事では、後から追加されていないナレッジ ポイントをいくつか追加しています。また、パートナー全員が追加に協力してくれることを願っています。コメント エリアでお会いしましょう!❞

私が PHP に触れる前、フレームワークを使用しなかった前は、私の友人のほとんどは include と require、そしてもちろん include_once と require_once を使用していたと思います。
これら 2 つの違いをまだ覚えていますか?
Include はエラーが報告されたときにのみ警告を発しますが、require はスクリプトを直接停止します。
名前空間の概念は PHP5.3 で導入されました。このため、ある寄稿者は 11 年前の PHP ドキュメントでこう述べています、名前空間と呼ばれるものを推奨しないようにするためにこのベンチマークを作成しました「いいけど、遅い」は後ほど
。
「今後、良いとは言えても非常に遅いものを推奨しないことを確認するために、このテストを行いました」と訳します。
テストでは、10 個のフォルダーを定義し、各フォルダーには 10 個のサブフォルダーがあり、各サブフォルダーには 10 個のクラスがあり、autoload と spl_autoload を使用して比較します。平均実行時間は 50 ミリ秒長くなります。
これは _autoload()
を指しますが、このメソッドは最終的に PHP7.2 で廃止される予定です。
効率の問題に加えて、_autoload メソッドが最終的に放棄された別の理由があります。
spl_autoload_register 必要に応じて複数のレジスタを記述することができ、読み込み順序はキュー モード (先入れ先出し) になります。
autoload はグローバル関数であるため、一度しか定義できません。複数回定義するとエラーが報告されます。複数のフレームワークを使用してプロジェクトを実装すると、この問題が発生します。
2. spl_autoload_register の簡単な使い方
この関数にはパラメータが 3 つだけあり、最初のパラメータは自動的にロードされます。 、2 番目のパラメーターは、自動的に登録された関数が失敗したときに例外をスローするかどうか、3 番目のパラメーターは関数をキューの末尾ではなくキューの先頭に追加することです。
上記はすべて true に基づいて定義されています。
say と user の 2 つのファイルを定義します
say ファイルはクラス Say を宣言し、メソッド hello を設定します

ユーザー ファイルに到達したら、最初に自動ロード メソッドを定義し、次に spl_autoload_register を使用してregister
#印刷されたデータ結果
❝学習の継続、ブログの継続、共有の継続は、Kaka が常に守ってきたことです。カカの巨大なインターネット上の記事が少しでも役立つことを願っています。
❞
以上がspl_autoload_register の過去と現在について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









この記事では、ThinkPhpのCLI機能を使用して、構築コマンドラインアプリケーション(CLI)を示しています。 INSUなどの一般的な落とし穴を強調しながら、モジュラー設計、依存関係注入、堅牢なエラー処理などのベストプラクティスを強調しています

この記事では、パフォーマンスの最適化、ステートレス設計、セキュリティに焦点を当てたサーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項について説明します。コスト効率やスケーラビリティなどの利点を強調しますが、課題にも対処します

ThinkPHPのIOCコンテナは、PHPアプリで効率的な依存関係管理のための怠zyなロード、コンテキストバインディング、メソッドインジェクションなどの高度な機能を提供します。

この記事では、パラメーター化されたクエリを介してThinkPhpのSQL注入の脆弱性を防ぐこと、RAW SQLの回避、ORM、定期的な更新、適切なエラー処理を介して説明します。また、データベースクエリとvalidatを保護するためのベストプラクティスもカバーしています

この記事では、ThinkPhpとRabbitMQを使用して分散タスクキューシステムの構築を概説し、インストール、構成、タスク管理、およびスケーラビリティに焦点を当てています。重要な問題には、Immedのような一般的な落とし穴を避けるための高可用性の確保が含まれます

この記事では、ThinkPHPの組み込みテストフレームワークについて説明し、ユニットや統合テストなどの主要な機能と、早期のバグ検出とコード品質の向上を通じてアプリケーションの信頼性を高める方法について強調しています。

この記事では、アーキテクチャ、機能、パフォーマンス、およびレガシーアップグレードの適合性に焦点を当てたThinkPhp 5と6の重要な違いについて説明します。 ThinkPhp 5は従来のプロジェクトとレガシーシステムに推奨されますが、ThinkPhp 6は新しいPRに適しています

この記事では、セキュリティ、効率、スケーラビリティに焦点を当てた、ファイルのアップロードとクラウドストレージをThinkPHPで統合するためのベストプラクティスについて説明します。
