Hranice úspěšnosti: 15 bodů
Za každou správně zodpovězenou otázku získáš 1 bod. Za nesprávně zodpovězenou otázku nic. Pokud je odpověď jen částečná (a nebylo by na základě ní možné věc naprogramovat), tak se otázka počítá jako nesprávná (není možné získat polovinu bodu). Pokud řešení obsahuje bezpečnostní chybu, nebo chybu v kódu, nebo překlep v kódu, je odpověď považována za nesprávnou, protože by nešel spustit.
Vysvětli rozdíl mezi cyklem for
, while
a foreach
. U každého uveď 1 konkrétní příklad využití, na kterém bude jasně vidět jeho hlavní výhoda.
Máme proměnnou o které téměř nic nevíme (známe jen její název). Jak si můžeme prohlédnout její obsah? Jmenuje se například $data
.
Napiš pod sebe následující příkazy pro práci s Gitovým repositářem:
Statistic.php
cron
Mějme v proměnné textový řetězec. Uveď příklad funkce, kterou vypočítáme kontrolní součet.
Napiš úsek kódu, který v Presenteru
vytvoří akci delete
, která bude přijímat ID položky jako integer a bude mazat řádek z tabulky question
podle zadaného ID. Po úspěšném smazání vypíše hlášku "Otázka byla smazána" a přesměruje na akci list
.
Pod otázka za bod navíc: Pokud mazání z nějakého důvodu selže, tak nevyhodí fatální chybu, ale uživatele o tom informuje také hláškou (flash message).
Když vytvářím Nette formulář, tak z něj je komponenta. Co je Nette komponenta?
Potřebuji vytvořt jednoduchý Nette formulář pro vložení záznamu do tabulky question
, která obsahuje seznam otázek. Struktura tabulky je:
Sloupec | Vlastnosti |
---|---|
id | int(8), unsigned, auto increment |
question | varchar(255) |
is_active | tinyint(1), unsigned, defaultní hodnota: 1 |
Vytvoř vhodná formulářová pole pro vložení nového řádku do této tabulky. Po vložení záznamu musí dojít k vyhození FlashMessage informující o úspěšném vložení záznamu + přesměrování na editaci záznamu (akce edit
).
group
, která bude obsahovat informace o skupinách. Při zakládání otázky pak půjde určit, do jaké skupiny otázka patří. Mezi tabulkami bude nutné nastavit relaci (popiš, jak se to dělá a jak bude nastavená).Presenteru
, který je založený jako komponenta. Chceme do něj předat defaultní hodnoty z toho, co je v databázi, tj. data musíme nějakým vhodným způsobem získat z tabulky.$questions = $this->db->questions()->fetchAll();
Jakým způsobem vypíšeme texty všech otázek jako odrážkový seznam?
Jak předáme data z tabulky do Latte šablony?
Jaká Latte makra budeme potřebovat pro výpis položek? Uveď konkrétní implementaci vypsání sloupců id
a name
ve formátu:
1024: Jak se máte? 1025: Co jste měli dnes k obědu?
$form->add(tady bude příklad);
a ke každému vysvětli, k čemu slouží a jaký vrací výstup (datový typ + příklad).
question
.1 > 0
1 == 1
1 == "1"
1 === "1"
1 == true
1 === true
1 === false
1 == "1" && 1=== true
==
(dvě rovnítka) a ===
(tři rovnítka)?==
v podmínkách a jak konkrétně ===
tento problém řeší (příklad, kde může ==
selhat a ===
zachrání situaci)Mějme tabulku koordinací (tabulka coordinations), která obsahuje seznam všech koordinací mezi 2 lidmi. Jedem z nich koordinaci pořádá a druhý je hostem. Napiš databázovou selection, která vrátí všechny řádky s koordinacemi, které se mě týkají (jsem organizátorem koordinace, nebo jsem hostem koordinace). Tabulka má sloupce id
, id_user_organizer
(ID organizátora), id_user_quest
(ID hosta). Moje ID je uloženo běžným způsobem v Presenteru
.
Skupina otázek o Latte:
proměnnou
, makrem
, filtrem
a n:atributem
? Co se používá kde?DashboardPresenter
na akci default
?QuestionPresenter
, akce edit
) otázky tak, abych předal ID aktuálně vypisované otázky? Napiš konkrétní Latte kód.Symbolicky zapsáno (ukázka v PHP, přelož do Latte):
foreach ($questions as $question) {echo $question->id; // ID otázkyecho $question->question; // text otázky}
StatisticManager
, která má veřejnou metodu getStatistics()
, která nepřijímá žádné parametry. Jak tuto službu načtu v Presenteru a v akci default zavolám veřejnou metodu getStatistics()
a výsledek předám do šablony?objektem
, třídou
, službou
?model
, entita
a value object
?$imageGenerator = ["points" => [480: [910, 30, 1845, 1150],600: [875, 95, 1710, 910],768: [975, 130, 1743, 660]]];
imageGenerator
, který jsme registrovali v předchozím úkolu, aby jej služba dostávala v konstruktoru a bylo jej možné ve službě použít (ve smyslu konfigurace). U servisy uveď vzorovou implementaci konstruktoru tak, aby bylo ošetřeno, že prvním vstupním parametrem je datový typ pro pole.metoda
, properties
a konstanta
? Jaký je mezi tím rozdíl?public
, private
, protected
), vysvětli rozdíl a konkrétní příklad využití a kdo může co a kdy vidět.course
ve které je privátní property currentCourse
, ve které je uložen aktuální kurz. Jak zjistit, aby bylo možné property z venku pouze číst a ne zapisovat?OOP design pattern
)?DI
a DIC
?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:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs