Hranica úspešnosti: 15 bodov
Získate 1 bod za každú správne zodpovedanú otázku. Za nesprávne zodpovedanú otázku nedostanete nič. Ak je odpoveď len čiastočná (a nebolo by možné na jej základe vec naprogramovať), otázka sa počíta ako nesprávna (nie je možné získať polovicu bodu). Ak riešenie obsahuje bezpečnostnú chybu alebo preklep v kóde, alebo preklep v kóde, odpoveď sa považuje za nesprávnu, pretože by sa nespustila.
1 Vysvetlite rozdiel medzi cyklami for
, while
a foreach
. Ku každému uveďte 1 konkrétny príklad jeho použitia, ktorý jasne ukazuje jeho hlavnú výhodu.
Máme premennú, o ktorej nevieme takmer nič (poznáme len jej názov). Ako môžeme vidieť jeho obsah? Nazýva sa napríklad $data
.
Napíšte nasledujúce príkazy na prácu s úložiskom Git:
Statistic.php
cron
V premennej majme textový reťazec. Uveďte príklad funkcie na výpočet kontrolného súčtu.
Napíšte úryvok kódu, ktorý vytvorí akciu delete
v programe Presenter
, ktorá prijme ID položky ako celé číslo a odstráni riadok z tabuľky question
podľa zadaného ID. Po úspešnom vymazaní sa vypíše správa "Question deleted" (Otázka vymazaná) a presmeruje sa na akciu list
.
Pod otázkou o bod navyše: Ak sa vymazanie z nejakého dôvodu nepodarí, nevyhodí fatálnu chybu, ale informuje o tom používateľa správou (flash message).
Keď vytvorím formulár Nette, stane sa komponentom. Čo je komponent Nette?
Potrebujem vytvoriť jednoduchý formulár Nette na vloženie záznamu do tabuľky question
, ktorá obsahuje zoznam otázok. Štruktúra tabuľky je:
Stĺpec | Vlastnosti |
---|---|
id | int(8), unsigned, auto increment |
otázka | varchar(255) |
is_active | tinyint(1), unsigned, predvolená hodnota: 1 |
Vytvorte príslušné polia formulára na vloženie nového riadku do tejto tabuľky. Po vložení záznamu musí byť vypísaná správa FlashMessage informujúca o úspešnom vložení záznamu + presmerovanie na editáciu záznamu (akcia edit
).
group
, ktorá bude obsahovať informácie o skupinách. Pri vytváraní otázky bude potom možné určiť, do ktorej skupiny otázka patrí. Budete musieť nastaviť reláciu medzi tabuľkami (opíšte, ako sa to robí a ako sa to nastaví).Presenter
, ktorý je vytvorený ako komponent. Chceme odovzdať predvolené hodnoty z toho, čo je v databáze, t. j. potrebujeme získať údaje z tabuľky nejakým vhodným spôsobom.9 Uvažujme nasledujúce údaje získané z databázy (pomocou bežnej databázy Nette):
$questions = $this->db->questions()->fetchAll();
Ako uvedieme text všetkých otázok ako zoznam s odrážkami?
Ako prenesieme údaje z tabuľky do šablóny Latte?
Aké makrá Latte budeme potrebovať na zoznam položiek? Uveďte konkrétnu implementáciu výpisu stĺpcov id
a name
vo formáte:
*1024: Ako sa máte? *1025: Čo ste mali dnes na obed?
$form->add(tady bude příklad);
a pre každý z nich vysvetlite, na čo sa používa a aký výstup vracia (dátový typ + príklad).
otázka
.1 > 0
1 == 1
1 == "1"
1 === "1"
1 == true
1 === true
1 === false
1 == "1" && 1=== true
==
(dve rovnosti) a ===
(tri rovnosti)?==
v podmienkach a ako konkrétne ==
rieši tento problém (príklad, kedy ==
môže zlyhať a ==
zachráni situáciu)Majme tabuľku koordinácií (coordinations table), ktorá obsahuje zoznam všetkých koordinácií medzi 2 osobami. Jeden z nich organizuje koordináciu a druhý je hosťom. Napíšte databázový výber, ktorý vráti všetky riadky s koordináciami, ktoré sa ma týkajú (som organizátorom koordinácie alebo som hosťom koordinácie). Tabuľka má stĺpce id
, id_user_organizer
(id organizátora), id_user_quest
(id hosťa). Moje ID je uložené obvyklým spôsobom v položke Presenter
.
Skupina otázok o Latte:
variable
, macro
, filter
a n:attribute
? Čo sa kde používa?DashboardPresenter
na akciu default
?QuestionPresenter
, edit
akcia) otázky, aby som odovzdal ID aktuálne uvedenej otázky? Napíšte špecifický kód Latte.Symbolicky napísané (ukážka v PHP, preložiť do Latte):
foreach ($questions as $question) {echo $question->id; // ID otázkyecho $question->question; // text otázky}
StatisticManager
, ktorá má verejnú metódu getStatistics()
, ktorá neprijíma žiadne parametre. Ako načítam túto službu v aplikácii Presenter a zavolám verejnú metódu getStatistics()
v predvolenej akcii a odovzdám výsledok šablóne?objektom
, triedou
a službou
?model
, entita
a hodnotový objekt
?$imageGenerator = ["body" => [480: [910, 30, 1845, 1150],600: [875, 95, 1710, 910],768: [975, 130, 1743, 660]]];
imageGenerator
, ktorý sme zaregistrovali v predchádzajúcej úlohe, aby ho služba dostala v konštruktore a mohla ho použiť v službe (v zmysle konfigurácie). Pre službu uveďte vzorovú implementáciu konštruktora tak, aby sa prvý vstupný parameter považoval za dátový typ poľa.metóda
, vlastnosti
a konštanty
? Aký je medzi nimi rozdiel?public
, private
, protected
), vysvetlite rozdiel a konkrétny príklad použitia a kto a kedy môže čo vidieť.course
, v ktorej je súkromná vlastnosť currentCourse
, v ktorej je uložený aktuálny kurz. Ako zabezpečiť, aby vlastnosť bola len na čítanie a nebolo možné do nej zapisovať zvonku?OOP
)?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:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sk