Netteの基礎知識を問うテスト
合格基準点: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 | tinyint(1)、符号なし、デフォルト値: 1 |。
このテーブルに新しい行を挿入するための適切なフォームフィールドを作成します。レコードを挿入したら、レコードの挿入が成功したことを通知するFlashMessageを発行し、レコードの編集(editアクション)にリダイレクトする必要があります。
- フォームフィールドに入力されたことを確認するバリデーション
- テーブル構造に従って、質問文がvarcharに収まるかどうかのバリデーション
- このテキストを含む質問がもう存在しないことを検証する
- グループに関する情報を格納するために、別のカスタム
groupテーブルを定義します。質問を作成する際に、その質問がどのグループに属しているかを判断することができるようになります。テーブル間のセッションを設定する必要があります(どのように行われ、どのように設定されるかを記述します)。 - テンプレートにフォームをレンダリングする(デフォルトのレンダリング)には、どのようなラテマクロを使用すればよいのでしょうか?
8.コンポーネントとして作成されたPresenterに、編集フォームを作成してみましょう。データベースにあるものからデフォルトの値を渡したい、つまり、何らかの便利な方法でテーブルからデータを取得する必要があるのです。
- どのように進めていくのか、コードのどのような要素が必要なのか。
- 現在編集中の項目の識別子を、どのようにフォームに渡すのか?
- form 要素をデフォルト値に設定するには?
- ユーザーがデータベースに存在しない項目を編集しようとしていることを確認し、そのことを適切に伝えるにはどうしたらよいでしょうか。
9 データベースから取得した次のデータについて考える(通常のネッテデータベースを使用)。
$questions = $this->db->questions()->fetchAll();
- 全質問の本文を箇条書きにするには?
- テーブルからラテのテンプレートにデータを渡すにはどうしたらいいのでしょうか?
- 出品する際に必要なラテマクロは?id
とname` のカラムをフォーマットでリストアップする具体的な実装を挙げてください。
*1024: How are you ? *1025: 今日のお昼は何を食べましたか?
10.フォームに書かれたフィールドのうち、少なくとも3種類の例を挙げてください。
$form->add(tady bude příklad);
そして、それぞれについて、何に使うのか、どんな出力を返すのか(データ型+例)を説明してください。
11.投稿されたネッテのフォームを用意しよう。
- すべてのフィールド(名前と値)を送信するにはどうすればよいですか?
- 質問`という名前のフィールドを出力する例を挙げてください。
- 値とキーの配列を走査して、キーと値の合計リストを含む単一の文字列を返すコードの具体的な実装を提供し、例えばこの文字列をデータベースに保存したり、電子メールで送信したりできるようにする(保存と送信は課題の対象ではないので評価されない)。
12.それぞれの条件について、結果が「真」であるか「偽」であるかを判断してください。
1 > 01 == 11 == "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を渡すために、質問の特定の編集(
QuestionPresenter、editアクション)へのリンクを生成するにはどうすればよいですか?具体的なラテコードを書き込む。
シンボリックに書かれている(PHPのサンプル、Latteに翻訳してください)。
foreach ($questions as $question) {echo $question->id; // 質問IDecho $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デザインパターン)の目的は何ですか?
- 使用例を挙げてください。
- ネッテのサービスは工場ですか?
- 依存性注入の目的は何ですか?
- DI
とDIC`の違いは何ですか?