ここ数年、私たちが仕事に応募するために企業に行くたびに、面接官は PHP の面接の質問で thinkphp について質問しました。なぜなら、thinkphp は近年多くの企業やプログラマーに好まれているからです。私たちの php 中国語 Web サイトでは、今日の php の面接でよく出題される thinkphp の質問の概要を紹介します。お役に立てば幸いです。
Thinkphp トピック:
1. 一般的な PHP フレームワーク
答え: thinkPHP
yii
ZendFramework
CakePhp
sy
関連トピックの推奨: 2020 thinkphp インタビューの質問と回答 (完了)
2. TP の単一エントリ ファイルを理解するにはどうすればよいですか?
回答: ThinkPHP は、プロジェクトのデプロイメントとアクセスに単一の入り口モードを採用しており、どの機能が完了しても、プロジェクトには統一された (ただし唯一であるとは限りません) 入り口があります。すべてのプロジェクトはエントリ ファイルから始まり、すべてのプロジェクトのエントリ ファイルは主に次の内容を含みます:
フレームワーク パス、プロジェクト パス、およびプロジェクト名の定義 (オプション)
定義 デバッグ モード および実行モードの関連定数 (オプション)
フレームワーク エントリ ファイルのロード (必須)
3. ThinkPHP の MVC 階層化とは何ですか? (理解)
回答: MVC は、アプリケーションの論理層とプレゼンテーション層を分離する方法です。 ThinkPHP も MVCデザインパターンに基づいています。 MVC は単なる抽象的な概念であり、特に明確な規定はありません。 ThinkPHP における MVC の階層化は、大まかに以下に反映されています。
Model (M): モデルの定義は Model クラスによって完了します。
コントローラー (C): アプリケーション コントローラー (コア コントローラー アプリ クラス) とアクション コントローラーは両方ともコントローラーの役割を引き受けます。アクション コントローラーはビジネス プロセスの制御を完了し、アプリケーション コントローラーはスケジュール制御を担当します。
View (V): View クラスとテンプレート ファイルで構成されており、テンプレートは 100% 分離されており、個別にプレビューおよび作成できます。
しかし実際には、ThinkPHP は M や V に依存していないため、モデルやビューがなくても動作します。 C にも依存しません。これは、ThinkPHP には、Action の上にマスター コントローラー、つまりアプリケーション全体のスケジューリングを担当する App コントローラーがあるためです。 C が存在しない場合、ビュー V が存在する必要があります。存在しない場合、ビュー V は完全なアプリケーションではなくなります。
つまり、ThinkPHP の MVC モデルは、MVC 自体に固執するのではなく、アジャイル開発の手段を提供するだけです。
4. ThinkPHP はどのように SQL インジェクションを防止しますか? (理解)
答え: (1) より安全な方法である配列をクエリ条件に使用してみてください
(2) 文字列クエリ条件を使用する必要がある場合は、前処理メカニズムを使用してください
(3)。データ フィールド タイプの検証をオンにすると、数値 データ タイプ の変換を強制できます (フィールド タイプの検証はバージョン 3.1 以降必須になりました)
(4) 自動検証および 自動補完 メカニズムを使用してアプリケーションをカスタマイズします
(5) フィールドタイプチェック、自動検証、自動補完メカニズムを使用して、悪意のあるデータの入力を回避します。
5. デバッグモードを有効にするにはどうすればよいですか?デバッグモードの利点は何ですか?
答え: デバッグ モードをオンにするのは非常に簡単です。開発フェーズを完了して運用環境にデプロイした後、定数定義コードの行をエントリ ファイルに追加するだけです。の場合は、デバッグ モードの定義コードを削除するだけで、デプロイメント モードに切り替えることができます。デバッグ モードをオンにすると、システムはまずシステムのデフォルトのデバッグ
構成ファイルをロードし、次にプロジェクトのデバッグ コンフィギュレーション ファイルをロードします。デバッグ モードの利点は次のとおりです: ログ、および エラー メッセージ
とデバッグ情報が有効になります。詳細に記録されます。テンプレートのキャッシュをオフにすると、テンプレートの変更がすぐに有効になります。
フィールドのキャッシュをオフにすると、データ テーブルのフィールドの変更はキャッシュの影響を受けません。 ; ファイルの大文字と小文字を厳密にチェックして (Windows プラットフォームであっても)、Linux 導入の問題を事前に発見するのに役立ちます。 は、開発、テスト、デモンストレーションなど、開発プロセスのさまざまな段階で便利に使用できます。さまざまなアプリケーション モードに合わせて構成できます。
6. TP の URL パターンは何ですか?デフォルトはどれですか?
答:ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。
默认模式为:PATHINFO模式,设置URL_MODEL 为1
7、TP中系统变量有哪些?如何获取系统变量?
答:获取系统变量的方法:
只需要在Action中调用下面方法:
$this->方法名("变量名",["过滤方法"],["默认值"])
8、ThinkPHP框架中D函数与M函数的区别是什么?
答:M方法实例化模型无需用户为每个数据表定义模型类,D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会自动调用M方法去实例化Model基类。同时对于已实例化过的模型,不会重复去实例化(单例模式)。
总结:
在php面试题中还有关于很多的thinkphp的题目、在这里我们就不一一列举出来了,这给大家介绍的是在面试中比较常被问的thinkphp题目!
相关推荐:
以上がPHP 面接の質問における Thinkphp の質問のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。