PHPインタビューの質問と回答の2020年最新の編集

1.OOPの概要とOOPの機能

OOPはオブジェクト指向のプログラミングです。オブジェクト指向のプログラミングはコンピュータプログラミングアーキテクチャです。OOPの基本原則は、コンピュータプログラムが、サブルーチンとして機能できる単一のユニットまたはオブジェクトで構成されていることです。

OOPの機能:

  1. カプセル化:情報の隠蔽とも呼ばれ、クラスの使用と実装を分離し、一部のインターフェイスとメソッドを外部との接続のみに保つか、開発者が使用できるように一部のメソッドのみを公開します。したがって、開発者は特定の実装プロセスではなく、このクラスの使用方法に注意を払うだけで済みます。これにより、MVCの分業を実現し、プログラム間の相互依存を効果的に回避し、コードモジュール間の緩い結合を実現できます。

  2. 継承:つまり、サブクラスはその親クラスのプロパティとメソッドを自動的に継承し、新しいプロパティとメソッドを追加したり、一部のプロパティとメソッドを書き換えたりすることができます。継承により、コードの再利用性が向上します。PHPは単一の継承のみをサポートします。つまり、子クラスは1つの親クラスしか持つことができません。

  3. 多態性:サブクラスは親クラスからプロパティとメソッドを継承し、いくつかのメソッドを書き換えます。したがって、複数のサブクラスが同じメソッドを持っていても、これらのサブクラスによってインスタンス化されたオブジェクトは、これらの同じメソッドを呼び出した後、まったく異なる結果を取得できます。この手法は多態性です。多形性は、ソフトウェアの柔軟性を高めます。

第二に、laravelの特徴

laravelフレームワークは、ファサード、依存関係の注入、Iocモード、およびさまざまな設計パターンを導入します。さらに、laravelの特徴は次のとおりです。

  1. 強力なレストルーター:簡単なコールバック関数で呼び出すことができ、コントローラーとルーターをすばやくバインドできます

  2. 職人:コマンドラインツール、多くの手動タスクが自動化されています

  3. ビューの開発と管理を簡素化する継承可能なテンプレート

  4. ブレードテンプレート:より高速なレンダリング

  5. ORM運用データベース

  6. 移行:データベースとバージョン管理を管理する

  7. テスト機能も非常に強力です

  8. 作曲家もハイライトです

3つ目は、データベース最適化のいくつかの側面について簡単に説明することです。

データベースの最適化は、次の4つの側面から最適化できます。

  1. 構造層から:Webサーバーは負荷分散サーバーを採用し、mysqlサーバーはマスタースレーブレプリケーション、読み取り/書き込み分離を採用します。

  2. ストレージレイヤーから:適切なストレージエンジンを採用し、3つのパラダイムを採用します。

  3. 設計レベルから:適切なフィールド属性、適切な逆パラダイム、およびオープンmysqlキャッシングを使用して、パーティション分割とサブテーブル、インデックス、およびテーブルフィールドを使用します。

  4. SQLステートメントレイヤー:同じ結果の場合は、高効率で高速でリソースを節約するSQLステートメントの実行を使用します。

第四に、権限管理(RBAC)の実現

  1. 最初にユーザーテーブルを作成します:id name auto(保存形式:controller-method)

  2. 次に、バックグラウンドで基本クラスコントローラーを作成し、コントローラーに構築メソッドをカプセル化します。ユーザーが正常にログインしたら、TPフレームワークにカプセル化されたセッション関数を使用してサーバーに格納されているセッションIDを取得し、ユーザーを介してモデルをインスタンス化します。 idは、データテーブルに格納されている認証データを取得し、explode関数を使用して取得したデータを分割し、配列を使用して保存します。次に、TPフレームワークでカプセル化された定数を使用して現在のコントローラーとメソッドを取得し、それらを文字列にアセンブルします。 、in_array関数を使用して、アレイに現在取得されているコントローラーとメソッドが含まれているかどうかを判断します。含まれていない場合は、許可がないことをユーザーに確認します。許可されている場合は、次の手順に進みます。

5、thinkPHPフレームワークの利点は何ですか

thinkPHPフレームワークは、中国の人々によって開発されたフレームワークであり、比較的完全な種類の資料があり、より国内で使用されています。シンプルで便利で、無料でオープンソースです。

第六に、thinkPHPの特徴は何ですか

  1. マルチテーブルクエリは非常に便利です。モデル内の数行のコードで、マルチテーブルの関連操作を完了できます。

  2. スマートテンプレートを組み込んでフロントエンドとバックエンドを分離

  3. 複数のキャッシングテクノロジーをサポートします。特にmemcacheテクノロジーのサポートは非​​常に優れています。

  4. 命名規則、モデル、ビュー、およびコントローラーは、命名規則と命名による1対1の対応に厳密に従います。

  5. 複数のURLモードをサポート

  6. xml、json、htmlなどを含む組み込みのajaxreturnメソッド。

  7. アプリケーション拡張、クラスライブラリ拡張、ドライバ拡張などをサポートします。

7.クッキーとクッキーの特徴を簡単に説明する

Cookieは、サーバーによって生成され、クライアントに保存される情報の一部です。Webサーバーがクライアントに情報を保存して返すメカニズムを定義します。Cookieファイルには、サーバーによって設定されたドメイン、パス、有効期間、および変数値が含まれています。今後、ユーザーが同じWebサーバーにアクセスすると、ブラウザーはCookieをサーバーにそのまま送信します。サーバーが以前にクライアントに保存した情報を読み取れるようにすることで、Webサイトは、オンライントランザクション中にユーザーのIDを識別したり、ユーザーが名前とパスワードを再入力するのを回避したり、セキュリティ要件が高くない場合にポータルWebサイトのホームページを表示したりするなど、視聴者に一連の便利さを提供できます。カスタマイズされた、ターゲットを絞った広告など。Cookieの特性を利用して、WEBアプリケーションの機能を大幅に拡張し、サーバーとクライアント間の接続を確立できるだけでなく、サーバーでCookieをカスタマイズできるため、ショッピング情報で生成されたCookie値をクライアントに保存して、ショッピングカートを実現することもできます。特徴。Cookieベースの方法を使用して、サーバーとブラウザーの間にセッションまたはショッピングカートを実装することには、次の特徴があります。

  1. Cookieはクライアントに保存され、使用するリソースはごくわずかです。ブラウザでは300個のCookieを保存できます。各Cookieのサイズは4KBで、ショッピングカートの要件を満たすのに十分であり、サーバーの負荷も軽減されます。

  2. クッキーはブラウザに組み込まれており、使いやすいです。ユーザーが誤ってブラウザウィンドウを閉じた場合でも、Cookieが有効期間を定義している限り、ショッピングカート内の情報が失われることはありません。

  3. Cookieは実行可能なファイルではないため、実行されないため、ウイルスをもたらしたり、ユーザーのシステムを攻撃したりすることはありません。

  4. Cookieベースのショッピングカートでは、ユーザーのブラウザがCookieをサポートし、有効に設定されている必要があります。そうでない場合、ショッピングカートは無効になります。

  5. 訪問者のプライバシーを侵害するクッキーについては論争があるため、一部のユーザーはこのマシンのクッキー機能を禁止します。

8.セッションとセッションの特徴を簡単に説明します

セッションは、ショッピングカートを実装するもう1つの方法です。セッションは、ユーザーのステータス情報を保存および追跡する機能を提供します。これにより、セッションで現在のユーザーが定義した変数とオブジェクトをページ間で共有できますが、アプリケーションの他のユーザーはアクセスできません。セッションとCookieの最も重要な違いは次のとおりです。 、Sessionは、セッション中にユーザーの個人情報をサーバー側に保存します。これにより、セキュリティが向上します。サーバーがセッションを生成した後、クライアントはセッションID識別番号を生成し、サーバーとの同期を維持するためにそれをクライアントに保存します。このセッションIDは読み取り専用です。クライアントがCookie機能を無効にした場合、セッションはURLにパラメーターを追加するか、フォームで暗黙的に送信することにより、ページ間で転送されます。したがって、セッションを使用してユーザー管理を実装する方が安全で効果的です。

同様に、セッションを使用してショッピングカートを実装することもできます。この方法の特徴は次のとおりです。

  1. セッションは、クライアントの設定に関係なく、新しいメカニズムを使用してクライアントとの同期を維持します。

  2. クッキーと比較して、セッションはサーバー側に保存される情報であるため、より安全です。したがって、識別やショッピングなどの情報をセッションに保存できます。

  3. セッションはサーバーリソースを占有し、サーバー側の負荷を増加させます。特に、同時ユーザーが多い場合は、多数のセッションが生成され、サーバーのパフォーマンスに影響します。

  4. セッションに保存される情報はより機密性が高く、ファイルの形式でサーバーに保存されるため、依然として隠れたセキュリティリスクがあります。

9、thinkPHPフレームワークの大きな文字関数

  • U:URLのアセンブリ
  • A:コントローラーを内部的にインスタンス化します
  • S:キャッシュ処理
  • R:特定のコントローラーの操作メソッドを呼び出す
  • D:カスタムモデルクラスをインスタンス化します
  • M:基本モデルクラスをインスタンス化します
  • I:パラメータを取得する
  • L:現在の言語を設定または取得します
  • C:設定または取得、構成の保存

10、インターフェースの定義方法

インターフェイスには2つのタイプがあります。1つはデータインターフェイスで、もう1つはアプリケーションインターフェイスです。

データタイプインターフェイス:これは、抽象クラスよりも抽象的な特定の「構造」です。実際にはクラスではなく、クラスのような特定の文法構造です。これは、一般に、クラスを定義する形式を規制する構造仕様です。チームが比較的大きく、ブランチが多い場合に使用します。

アプリケーションインターフェイス:API(アプリケーションインターフェイス)データへの外部アクセスのエントリポイント

私は主にAPP開発のインターフェースの準備に携わっています。クライアントが必要とするデータの種類、対応するデータをクライアントに提供し、データは対応するインターフェースドキュメントとともにjson / xml形式で返されます。

注意してください、迷子にならないでください

さて、みなさん、上記はこの記事の全内容です。ここで見ることができるのはすべて才能です。さっきも言ったように、PHPには技術的なポイントがたくさんあります。多すぎるので、書くのは本当に不可能で、書いた後はあまり読まないので、必要に応じてここでPDFとドキュメントに整理します。できる

クリックしてシークレットコードを入力してください:PHP +「プラットフォーム」

ここに写真の説明を挿入

ここに写真の説明を挿入


学習内容の詳細については、[Comparative Standard Factory]の優れたPHPアーキテクトチュートリアルカタログをご覧ください。給与が確実に上がるように読むことができます(継続的な更新)

上記のコンテンツは、すべての人に役立つことを願っています。多くのPHP担当者は、上級者になると常に問題やボトルネックに直面します。ビジネスコードを書きすぎると、方向性がわかりません。どこから改善を始めればよいかわかりません。これに関する情報をまとめました。ただし、これらに限定されません。分散アーキテクチャ、高スケーラビリティ、高パフォーマンス、高同時実行性、サーバーパフォーマンスチューニング、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql最適化、シェルスクリプト、Docker、マイクロサービス、Nginxなど。多くの知識ポイント、高度な高度な乾物は、誰とでも無料で共有でき、必要な人は私のPHPテクノロジー交換グループに参加できます

おすすめ

転載: blog.csdn.net/weixin_49163826/article/details/108868471