ホームページ  >  記事  >  バックエンド開発  >  PHP 面接の質問における Thinkphp の質問のまとめ

PHP 面接の質問における Thinkphp の質問のまとめ

黄舟
黄舟オリジナル
2017-11-09 13:33:3019103ブラウズ

ここ数年、私たちが仕事に応募するために企業に行くたびに、面接官は 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题目!

相关推荐:

  1. 2017最全的php面试题目及答案总结

  2. 2017招聘季:PHP面试题超强总结!

  3. 11个提问频率最高的php面试题

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。