NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Špatné způsoby předávání závislostí - Statika

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Patrik Pastor:21.6.2019 13:37

nekdo prosim vysvetlit tento kod:
$auta = $spravceAut->vratAuta(); // Proměnná pro šablonu
require('Sablo­ny/auta.phtml')

Jak to, ze promenna typu pole $auta je zahrnuta automaticky v sablone? kde je nejaky kod, kteru ji do te sablony dava, nebo pro muzu napsat jednoduse Sablony/auta.phtml ... auta je prece promenna a ne soubor, dik za vysvetleni

 
Odpovědět
21.6.2019 13:37
Avatar
Odpovídá na Patrik Pastor
Michal Šmahel:21.6.2019 14:26

Ahoj, je to celkem prosté a vychází to právě z principu, jak PHP funguje. Začíná v souboru, který je zahrnut v HTTP požadavku, případně zavolán jeho změnou skrz .htaccess (či konfigurační soubor jiného webserveru). V tomto prvním PHP souboru si můžeš připojovat soubory další - přes require(_once) a include(_once). Zjednodušeně si to můžeš představit tak, jakoby se vzal obsah připojovaného souboru (uvedeného v parametru) a vložil se na místo řádku s jednou ze zmíněných funkcí. Ono se to tak totiž principiálně chová. Potom už ti je určitě jasné, proč se ta proměnná předá do šablony. Pokud bychom to vzali přesně, nepředává se proměnná, ale šablona. Prostě se připojí.

Odpovědět
21.6.2019 14:26
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal Šmahel
Patrik Pastor:21.6.2019 16:11

"jakoby se vzal obsah připojovaného souboru (uvedeného v parametru) a vložil se na místo řádku s jednou ze zmíněných funkcí"

parametr myslis tento: require(parametr) ?, a co potom myslis tim "radku s jednou ze zminenych funkci"? co je radek funkce? chapu, ze tou metodou require vezme vytvorenou sablonu, ale o jakem radku je potom rec?

 
Odpovědět
21.6.2019 16:11
Avatar
Odpovídá na Patrik Pastor
Patrik Pastor:21.6.2019 17:22

precetl jsem to 10 krat a pochopil jsem ze myslis argumeny $auta, ale je to promenna, proto me to matlto, protoze pro me je argument (co jsi napsal) jak argument metody, coz je prave ten "radek" o kterem jsi dale pokracoval. Trosku nazvoslovi a doslo by mi to rychleji. Upravuji otazku tedy: kdyz muze byt promenna zaroven soubor (jinak by nesla prece vlozit do html jako soubor), potom kdy to je promenna s hodnotou jako objekt? Mam na mysli to jsou vsechny promenne, jak tvrdis, soubory? takze bycj mel 100 promennych, 100 souboru? to by byla potom aplikace moc pomala ne?

Editováno 21.6.2019 17:24
 
Odpovědět
21.6.2019 17:22
Avatar
Odpovídá na Patrik Pastor
Michal Šmahel:21.6.2019 22:14

No, asi budu muset trochu více polopaticky a konkrétněji. Tedy zkusím to ukázat na příkladu.

Řídící soubor

// ...
$auta = $spravceAut->vratAuta(); // Proměnná (část dat) do šablony

// require() - funkce pro "načtení" šablony
// "sablona.phtml" - parametr funkce require; soubor, který se má připojit
require("sablona.phtml");

sablona.phtml:

<DOCTYPE html>

<html>
<head>
<!-- ... -->
</head>

<body>
<?php foreach($auta as $auto): ?>
<!-- ... -->
<?php endforeach; ?>
</body>
</html>

Po vykonání funkce require si můžeš představit výsledek zhruba takto:

// ...
$auta = $spravceAut->vratAuta(); // Proměnná (část dat) do šablony

<DOCTYPE html>

<html>
<head>
<!-- ... -->
</head>

<body>
<?php foreach($auta as $auto): ?>
<!-- ... -->
<?php endforeach; ?>
</body>
</html>

Tohle jsem myslel původním komentářem. Máš řídící soubor a šablonu. V řídícím souboru si chceš "načíst" šablonu pomocí funkce require(). Třetí zdrojový kód je přibližným (v praxi to tak opravdu není, ale funguje to podobně) výsledkem po provedení funkce require.

Odpovědět
21.6.2019 22:14
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal Šmahel
Patrik Pastor:22.6.2019 13:59

jo taak, ja nejsem akorat zvykly michani html s nejakym jazykem. Nevedel jsem ze si muzu nacist cely soubor. To je asi jedinecnost PHP. pekne. No a co jsi myslel tim v praxi je to jinak? pokud nactu tuto.sablonu, potom dostanu u tu logiku mezi <php?> tedy i ten cyklus foreach pro ty auta. Co jsi tedy tim myslel?

 
Odpovědět
22.6.2019 13:59
Avatar
Odpovídá na Patrik Pastor
Michal Šmahel:22.6.2019 16:12

Myslel jsem tím, že vnitřní zpracování bude vypadat trochu jinak. To však není tak důležité. Pokud by tě to opravdu zajímalo, odkáži tě na oficiální dokumentaci PHP a zdrojové kódy tohoto jazyka.

Odpovědět
22.6.2019 16:12
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.