ホームページ >PHPフレームワーク >ThinkPHP >Thinkphp の面接の質問と回答

Thinkphp の面接の質問と回答

coldplay.xixi
coldplay.xixi転載
2020-08-10 16:50:578289ブラウズ

Thinkphp の面接の質問と回答

#1. TP の単一エントリ ファイルを理解するにはどうすればよいですか?

回答: ThinkPHP はプロジェクトの展開とアクセスにシングル エントリ モードを使用します。どの機能が完了しても、プロジェクトには統一された Not必然的に唯一の入り口です)。すべてのプロジェクトはエントリ ファイルから始まり、すべてのプロジェクトのエントリ ファイルは類似していると言えます。エントリ ファイルには主に次のものが含まれます:

フレームワークの定義パス、プロジェクト パス、およびプロジェクト名 (オプション)

デバッグ モードと実行モードに関連する定数を定義します (オプション)

# フレームワーク エントリ ファイルのロード (必須)

2.

ThinkPHP での MVC 階層化とは何ですか? (理解する)############################## #################

#MVC は、アプリケーションの論理層とプレゼンテーション層を分離する方法です。 ThinkPHP も MVC 設計パターンに基づいています。 MVC は単なる抽象的な概念であり、特に明確な規定はありません。ThinkPHP の MVC 階層化は次のように大まかに反映されています:

# # Model ( M): モデルの定義は Model クラスによって完了します。 関連トピックの推奨事項: 2020 thinkphp インタビューの質問と回答 (完全なコレクション) コントローラ(C): アプリケーションコントローラ(コアコントローラAppクラス)とアクションコントローラの両方がコントローラの役割を担い、アクションコントローラはビ​​ジネスプロセスの制御を完了し、アプリケーションコントローラはスケジュール制御を担当します。

View (V): View クラスとテンプレート ファイルで構成され、テンプレートは 100% 分離されており、プレビューと作成が可能です独立して。

しかし、実際には、ThinkPHP は M や V に依存しないため、モデルやビューがなくても動作します。 C にも依存しません。これは、ThinkPHP には、Action の上にマスター コントローラー、つまりアプリケーション全体のスケジューリングを担当する App コントローラーがあるためです。 C が存在しない場合、ビュー V が存在する必要があります。存在しない場合、ビュー V は完全なアプリケーションではなくなります。

つまり、ThinkPHP の MVC モデルは、MVC 自体に固執するのではなく、アジャイル開発の手段を提供するだけです。

3.ThinkPHP 3.0 アーキテクチャ (コア動作主導) の動作を理解するにはどうすればよいですか? ############################## ##################答え: Core Behavior Driven

TP の公式略称は次のとおりです: CBD Core: フレームワークの中核となるコードであり、なくてはならないもの TP自体もMVCの考え方に基づいて開発されたフレームワークです。

動作: 動作は、ThinkPHP の新しいバージョンのアーキテクチャにおいて決定的な役割を果たします。システムのコアに加えて、多くのタグ拡張ビットが設定されており、各タグ位置は独自の独立した動作を実行できます。このようにして動作拡張機能が誕生し、多くのシステム機能も組み込みの動作拡張機能によって完成されます。すべての動作拡張機能は置き換え可能であり、追加可能であるため、基礎となるフレームワークのアセンブリの基礎を形成します。

ドライバー: データベース ドライバー、キャッシュ ドライバー、タグ ライブラリ ドライバー、テンプレート エンジン ドライバー、および外部クラス拡張機能。

フレーム、つまりフレームワーク。実際、これは特定のアプリケーションの半完成品であり、独自のシステムを完成させるために選択して使用するコンポーネントのセットです。簡単に言うと、他人が用意した舞台を利用してパフォーマンスをすることです。さらに、フレームワークは一般的に成熟しており、継続的にアップグレードされるソフトウェアです。

4. ThinkPHP はどのようにして SQL インジェクションを防ぐのでしょうか? (理解)

(1) クエリ条件に配列モードを使ってみます。これはより安全な方法です;
(2) 文字列クエリ条件を最後の手段として使用する必要がある場合は、前処理メカニズム ;
(3) データ フィールド タイプの検証をオンにすると、数値データ タイプの変換を強制できます。 (4) アプリケーションのカスタム フィルタリングに自動検証および自動補完メカニズムを使用します。

(5) フィールド タイプ チェック、自動検証、および自動補完メカニズムを使用して、悪意のあるデータ入力を回避します。

5. デバッグ モードを有効にするにはどうすればよいですか?デバッグモードの利点は何ですか?

デバッグ モードを有効にするのは非常に簡単で、定数定義コードの行をエントリ ファイル :

<?php
 
      //开启调试模式
 
      define(&#39;APP_DEBUG&#39;, true);
 
      //加载框架入口文件
 
      require &#39;./ThinkPHP/ThinkPHP.php&#39;;

開発フェーズが完了して本番環境にデプロイした後は、デバッグ モード定義コードを削除するだけで済みますをクリックして展開モードに切り替えます。デバッグ モードをオンにすると、システムは最初にシステムのデフォルトのデバッグ構成ファイルをロードし、次にプロジェクトのデバッグ構成ファイルをロードします。デバッグ モードの利点は次のとおりです:

ログをオンにすると、デバッグを容易にするために、エラー情報とデバッグ情報が詳細に記録されます。

テンプレート キャッシュをオフにすると、テンプレートの変更がすぐに有効になります;

SQL 分析を容易にするために SQL ログを記録します。

フィールド キャッシュをオフにすると、データ テーブルのフィールドの変更は影響を受けません。キャッシュ;

Linux 展開の問題を事前に検出できるように、ファイルの大文字と小文字を厳密にチェックします (Windows プラットフォームでも)。

## 開発、テスト、デモンストレーション、その他の必要な状況を含む、開発プロセスのさまざまな段階で便利に使用でき、さまざまなアプリケーション モードを構成できます。独立したプロジェクト構成ファイルを使用します。

6. TP ではどのような構成モードがサポートされていますか?優先度?

ThinkPHP はプロジェクト構成に独自の階層構成モードを作成し、その構成レベルは以下に反映されます。

## 従来構成 -> プロジェクト構成 -> デバッグ構成 -> グループ構成 -> 拡張構成 -> 動的構成

上記は構成ファイルの読み込みシーケンスです。これは、後続の構成が同じ名前の前の構成を上書きするためです (有効な前提でない場合)、優先順位は右から左になります。

7. TP の URL パターンは何ですか?デフォルトはどの ですか?

ThinkPHP は、通常モード、PATHINFO、REWRITE、互換モードを含む 4 つの URL モードをサポートしており、URL_MODEL パラメータを設定することで定義できます。 。

## デフォルトのモードは次のとおりです: PATHINFO モード、URL_MODEL を 1

に設定します。

#8. TP のシステム変数とは何ですか?システム変数を取得するにはどうすればよいですか?

システム変数を取得する方法:

アクションで次のメソッドを呼び出すだけです:

$this->メソッド名 ("変数名 ",["フィルタリング方法 "],["デフォルト値 "])

#9ThinkPHPフレームワーク D 関数と MM 関数の違いは何ですか?

答え: M

モデルをインスタンス化するメソッドでは、ユーザーがデータ テーブルごとにモデル クラスを定義する必要はありません。D メソッドはモデル クラスを自動的に検出できます。カスタム モデル クラスが存在する場合は、カスタム モデル クラスがインスタンス化されます。存在しない場合、MM メソッドが自動的に呼び出され、Model 基本クラスがインスタンス化されます。同時に、インスタンス化されたモデルは繰り返しインスタンス化されません (シングル ケース モード)。 関連する学習に関する推奨事項:

thinkphp

以上がThinkphp の面接の質問と回答の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。