IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 4. diel - Zlé spôsoby odovzdávania závislostí - Statika

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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

 
Odpovedať
21.6.2019 13:37
Avatar
Odpovedá 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í.

Odpovedať
21.6.2019 14:26
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá 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?

 
Odpovedať
21.6.2019 16:11
Avatar
Odpovedá 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?

Editované 21.6.2019 17:24
 
Odpovedať
21.6.2019 17:22
Avatar
Odpovedá 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.

Odpovedať
21.6.2019 22:14
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá 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?

 
Odpovedať
22.6.2019 13:59
Avatar
Odpovedá 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.

Odpovedať
22.6.2019 16:12
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!