PHP Manual
/
テスト

Netteの基礎知識を問うテスト

22. 08. 2019

合格基準点:15点

*1問正解するごとに1ポイント加算されます。不正解の場合、何も得られません。解答が部分的にしかない場合(それを元にプログラミングすることができない場合)、その問題は不正解としてカウントされます(半分のポイントを得ることはできません)。 解答にセキュリティバグや、コードのタイプミスが含まれている場合、実行できないため不正解として扱われます※。


1 「for」ループ、「while」ループ、「foreach」ループの違いについて説明しなさい。それぞれについて、その主な利点を明確に示す具体的な使用例を1つずつ挙げてください。

2.ほとんど何も知らない(名前だけ知っている)変数があります。その中身を見るにはどうしたらいいのでしょうか?例えば、$dataと呼ばれるものです。

3.Gitリポジトリを操作するために、以下のコマンドを記述します。

  • サーバーから最新の変更点をダウンロードする
  • タグを付けます。
  • プロジェクト内のすべてのファイルにタグを付ける
  • cron` ディレクトリにあるすべてのファイルにタグを付けます。
  • 変更を "My commit "のメッセージとともにコミットする。
  • サーバへのコミット送信

4.変数に文字列を入れてみましょう。チェックサムを計算する関数の例を挙げよ。

5.アイテムIDを整数値で受け取り、指定されたIDに従ってquestionテーブルから行を削除するdeleteアクションをPresenterに作成するコードスニペットを書いてください。削除に成功すると、"Question deleted" というメッセージが表示され、list アクションにリダイレクトされます。

追加点のための質問中。何らかの理由で削除に失敗した場合、致命的なエラーは投げないが、メッセージ(フラッシュメッセージ)でそのことをユーザーに知らせることもできる。

6.ネッテフォームを作成すると、コンポーネントとなる。ネッテコンポーネントとは?

7.質問リストを含む question テーブルにレコードを挿入するための簡単な Nette フォームを作成する必要があります。テーブルの構成は

コラム|プロパティ
id|int(8)、unsigned、自動インクリメント||。
質問|varchar(255)|?
is_active

このテーブルに新しい行を挿入するための適切なフォームフィールドを作成します。レコードを挿入したら、レコードの挿入が成功したことを通知するFlashMessageを発行し、レコードの編集(editアクション)にリダイレクトする必要があります。

  • フォームフィールドに入力されたことを確認するバリデーション
  • テーブル構造に従って、質問文がvarcharに収まるかどうかのバリデーション
  • このテキストを含む質問がもう存在しないことを検証する
  • グループに関する情報を格納するために、別のカスタム group テーブルを定義します。質問を作成する際に、その質問がどのグループに属しているかを判断することができるようになります。テーブル間のセッションを設定する必要があります(どのように行われ、どのように設定されるかを記述します)。
  • テンプレートにフォームをレンダリングする(デフォルトのレンダリング)には、どのようなラテマクロを使用すればよいのでしょうか?

8.コンポーネントとして作成されたPresenterに、編集フォームを作成してみましょう。データベースにあるものからデフォルトの値を渡したい、つまり、何らかの便利な方法でテーブルからデータを取得する必要があるのです。

  • どのように進めていくのか、コードのどのような要素が必要なのか。
  • 現在編集中の項目の識別子を、どのようにフォームに渡すのか?
  • form 要素をデフォルト値に設定するには?
  • ユーザーがデータベースに存在しない項目を編集しようとしていることを確認し、そのことを適切に伝えるにはどうしたらよいでしょうか。

9 データベースから取得した次のデータについて考える(通常のネッテデータベースを使用)。

$questions = $this->db->questions()->fetchAll();

  • 全質問の本文を箇条書きにするには?

  • テーブルからラテのテンプレートにデータを渡すにはどうしたらいいのでしょうか?

  • 出品する際に必要なラテマクロは?idname` のカラムをフォーマットでリストアップする具体的な実装を挙げてください。

    *1024: How are you ? *1025: 今日のお昼は何を食べましたか?

10.フォームに書かれたフィールドのうち、少なくとも3種類の例を挙げてください。

$form->add(tady bude příklad);

そして、それぞれについて、何に使うのか、どんな出力を返すのか(データ型+例)を説明してください。

11.投稿されたネッテのフォームを用意しよう。

  • すべてのフィールド(名前と値)を送信するにはどうすればよいですか?
  • 質問`という名前のフィールドを出力する例を挙げてください。
  • 値とキーの配列を走査して、キーと値の合計リストを含む単一の文字列を返すコードの具体的な実装を提供し、例えばこの文字列をデータベースに保存したり、電子メールで送信したりできるようにする(保存と送信は課題の対象ではないので評価されない)。

12.それぞれの条件について、結果が「真」であるか「偽」であるかを判断してください。

  • 1 > 0
  • 1 == 1
  • 1 == "1"
  • 1 === "1"
  • 1 == true`
  • 1 ===真`の場合
  • 1 === false`
  • 1 == "1" && 1=== true`.

13.PHPでおなじみのデータ型は何でしょうか?

  • データ型名の例を5つ以上挙げる
  • 各例について、データ型に格納できる可能性のある値を少なくとも3つリストアップする(データ型がそれだけの値を格納できない場合は、その旨を記述する)。
  • 各データ型について、その典型的な使用例(実際に何が格納されているか)を挙げてください。
  • 2等分の==と3等分の===の条件の違いは何ですか?
  • 条件付きで == を使うことのデメリットと、具体的に == がどのようにこの問題を解決するのかを説明する(== が失敗する可能性があり、== がその状況を救う例)

14.2人の間のすべてのコーディネートを一覧できるコーディネートテーブル(coordination table)を用意しよう。一人がコーディネートを主催し、もう一人がゲストとして参加する。私を含むコーディネートを持つすべての行を返すデータベース選択を書きなさい(私はコーディネートの主催者であるか、または私はコーディネートのゲストであるか)。テーブルには、id, id_user_organizer (主催者ID), id_user_quest (ゲストID) のカラムがあります。私のIDは通常の方法でPresenterに格納されています。

15.ラテに関する質問グループ

  • ラテとは?
  • variable, macro, filter, n:attribute` の違いは何ですか?何がどこに使われているのか?
  • DashboardPresenterの参照をdefault` アクションに作成するにはどうすればよいですか?
  • 質問のテーブルをリストアップし、現在リストアップされている質問のIDを渡すために、質問の特定の編集(QuestionPresentereditアクション)へのリンクを生成するにはどうすればよいですか?具体的なラテコードを書き込む。

シンボリックに書かれている(PHPのサンプル、Latteに翻訳してください)。

foreach ($questions as $question) {
echo $question->id; // 質問ID
echo $question->question; // 質問文
}

  • HTMLの固定スペースはどのように書くのですか?

16.ネッテのサービスって何に使うの?

  • どのようにインスタンス化するのですか?
  • サービスって、何をすれば使ってもらえるの?
  • Presenterにサービスを読み込むにはどうしたらいいですか?
  • 例えば、StatisticManager サービスを考えてみましょう。このサービスには、パラメータを受け取らないパブリックメソッド getStatistics() があります。Presenter でこのサービスをロードし、デフォルトのアクションでパブリックメソッド getStatistics() を呼び出し、結果をテンプレートに渡すにはどうすればよいですか?
  • オブジェクトクラスサービス`の違いは何ですか?
  • モデル、エンティティ、バリューオブジェクトとは何ですか?
  • すべてのサービスには、それを知るマスターマネージャーが存在し、そのマネージャーでピックアップすることができる。このマネージャーの名前は?新しいサービスを登録するにはどうしたらいいですか?

17.ネオン

  • ネオンファイルとは?
  • どのような種類があり、どのような基準で分類されているのでしょうか?
  • Neonファイルには何が入っているのですか?どのようなデータが保存されているのか?
  • 次のフィールド(レシピはPHPで書かれているので、翻訳する必要があります)をパラメータとして使用できるように登録する方法を例示してください。

$imageGenerator = [
"点" => [
480: [910, 30, 1845, 1150],
600: [875, 95, 1710, 910],
768: [975, 130, 1743, 660]
]
];

  • Neonにサービスを登録する際、前のタスクで登録した imageGenerator パラメータを渡し、コンストラクタで受け取ってサービスで使えるようにする例を挙げてください(設定の意味で)。このサービスでは,最初の入力パラメータが配列のデータ型として扱われるように,コンストラクタの実装例を示してください.

18.オブジェクト全般

  • メソッド、プロパティ、定数`とは何ですか?両者の違いは何でしょうか?
  • メソッドとプロパティには、3つの基本的なアクセス状態(public, private, protected )がありますが、その違いと、誰がいつ何を見ることができるのか、具体的な使用例について説明します。
  • クラス course にプライベートプロパティ currentCourse があり、そこに現在のコースが保存されています。プロパティを読み取り専用にして、外部から書き込めないようにするにはどうしたらよいでしょうか。

19.論理的に関連するテーブルをデータベース内に作成する場合(例えば、ユーザー用のテーブルとそのユーザーの記事用のテーブル)、データが正しくリンクされるように処理する必要があります。

  • テーブル内のデータがデータベース内で正しくリンクされていることを保証するものは何ですか?
  • 参照整合性とは何か、データベースにおけるその役割とは?
  • どのようなセッションがあるのでしょうか?各タイプの目的は何ですか?
  • データの削除や変更をさまざまな方法で処理するために、セッションにどのようなパラメータを設定するか。3つの例と具体的な使い方+仕組みの説明をしてください。

20.ファクトリー(OOPデザインパターン)の目的は何ですか?

  • 使用例を挙げてください。
  • ネッテのサービスは工場ですか?
  • 依存性注入の目的は何ですか?
  • DIDIC`の違いは何ですか?

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
Status:
All systems normal.
2024