Hirdetés
- Lassacskán fenyőfát állítanak a hardverek
- Tudjuk, de nem tesszük: a magyarok többsége nem törődik adatai védelmével
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- Irodát kért, de gyárat kapott Elon Musk a Samsungtól
- Nyílt forráskódú lett a legegyszerűbben használható AI tartalomgeneráló
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- Épített vízhűtés (nem kompakt) topic
- TCL LCD és LED TV-k
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- Milyen processzort vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen házat vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
PumpkinSeed
#16447
üzenetére
Szerencsére a többiek elég alaposan válaszoltak az érdemi részre.

"Illetve egy függvény, hogy tud több String típust is visszaadni, például egy adatbázisból kiolvasott név és lakcím adatot például?"
Csak a pontosság kedvéért: nincs olyan, hogy "több String típus", string van, és kész, szerintem Te arra gondoltál, hogy mondjuk több string "értéket" szeretnél visszaadni. Tehetsz ilyet összetett típussal, tömbbel vagy objektummal is vissza tudsz térni egy függvényből. Egy függvénynek egy darab visszatérési értéke van.
Szerk.: ja, most látom, disy68 ezt is leírta neked.
Amúgy ilyen, hogy "adatbázisból kiolvasott név és lakcím adat", tipikusan valami objektumhoz kellene, hogy tartozzon ahhoz, hogy ez normálisan kezelhető legyen (ne pedig többdimenziós asszociatív tömbborzalmakat kelljen kezelned), például van egy Person osztályod (most csak a példa kedvéért), és ezt megfelelően példányosítod (példányosítás után lesz belőle objektum). Ha sok személy van, akkor objektumok tömbje is egy jó megoldás lehet (értsd: egy tömbbel térsz vissza, ebben pedig egy vagy több objektum van).(#16451) disy68 :
Szépen összeszedett válasz!
-
fordfairlane
veterán
válasz
PumpkinSeed
#16447
üzenetére
Maga az MVC csak nagy vonalakban ad iránymutatást arra nézve, hogy miféle nyelvi elemeket keverhetsz a kódodban. Az nagyjából oké, hogy a html a megjelenítéshez kapcsolódik, de az adott nézetnek számos egyéb funkciója is lehet.
A manapság bevett gyakorlat nagyjából annyi, hogy az oldal szerkezetét leíró html kód többnyire egy template fájlba kerül, amibe csak a legegyszerűbb php, vagy az adott template kezelő nyelvi elemei kerülnek bele. Pl. blokkdefiniálás, iteráció (foreach), beágyazás (include), csak a legegyszerűbb vezérlési szerkezetek. A többi, az adott nézethez kapcsolódó kódrészek mondjuk egy View objectben kaphatnak helyet, ami tisztán csak php utasításokat tartalmaz.
Én úgy szoktam csinálni, ha az adott rendszerben nincs template kezelő, hogy a nézetben a PHP alternatív nyelvi szintaktikáját használom, ezzel is érzékeltetve, hogy ez egy nézetleíró fájl.
<?php if(): ?>
<?php else: ?>
<?php endif; ?>
<?php foreach(): ?>
<?php endforeach; ?> -
disy68
aktív tag
válasz
PumpkinSeed
#16447
üzenetére
Az MVC pattern, ahogy a neve is indikálja külön kezeli az adatot (model), megjelenítést (view), és a kettőt összefogó irányítást (control) - csak így egyszerűen megfogalmazva. Ez által adott, hogy ezeket a részeket külön kezelve, jellemzően külön fájlokként fogod megoldani - sok esetben ez több ezer külön fájlt is jelenthet. Persze itt számít az mvc keretrendszer működése, felépítése stb. (lehet, hogy a keretrendszer alapja áll csupán pár ezer kisebb fájlból és a számodra ténylegesen készítendő fájlok száma ehhez képest elenyésző).
A php / html keverése sokszor alapvetően adja magát, azonban egy template-kezelő működhet úgy is, hogy magában a template fájlban se html, se php kód nem fog szerepelni - persze ezt is php dolgozza fel, ami behelyettesíti a htmlt a template alapján.
MVC esetében, fontos, hogy a szerepek elkülönüljenek. Ez jelenti azt, hogy a controllereid és modelleid jellemzően nem fognak html kódot tartalmazni, csak php-t, míg a view több, mint valószínű, hogy fog mindkettőt. A lényeg, hogy az adott megvalósítás struktúrája fogja meghatározni, hogy a fájlok mit fognak tartalmazni.
--
Amennyiben kevered a html és php kódokat érdemes figyelni az olvashatóságra (a kód karbantartása miatt).pl. e helyett:
<?php
$menupontok = array('egy','kettő','három','négy');
echo '<ul>';
foreach($menupontok as $menupont){
echo "<li>$menupont</li>";
}
echo '</ul>';
?>könnyebben átlátható ez (alternative syntax használattal):
<?php $menupontok = array('egy','kettő','három','négy'); ?>
<ul>
<?php foreach($menupontok as $menupont): ?>
<li>
<?php echo $menupont ?>
</li>
<?php endforeach; ?>
<ul>
?>--
Egy függvény visszatérési értéke pedig egy darab "érték". Ez az "érték" tartalmát tekintve lehet nagyjából bármi. Ha neked egy darab szöveges érték kell, akkor egy string, ha kettő vagy több, akkor lehet array, ami tartalmazza a két vagy több stringet. Ha valami bonyolultabb struktúra kell, akkor lehet tömbök, tömbje, vagy akár egy objektum is, ami tövábbi logikát is tartalmazhat (metódusok).De először a nyelvi alapokat kell mindenképpen megismerni, és utána érdemes nézelődni a különböző programozási paradigmák, programtervezési eljárások és egyéb best-practice megoldások felé.
-
_ak_
addikt
válasz
PumpkinSeed
#16447
üzenetére
Nem találkoztam sehol, semmi iránymutató értékekkel, szóval szerintem ez nem ennyire konkrét.
Persze törekedni kell a különböző logikák szétválasztására és legfőképp a kódismétlés kerülésére, de ha aránytalanul több munkával járna a szétválasztás, akkor elfogadható.Nagyjából én így vettem le az elméletet, de egyrészt gyakorlatom alig, másrészt szerintem a project típusától is változhat.
Aztán remélem valaki kijavít, hogy ha hülyeséget mondtam.

-
DNReNTi
őstag
válasz
PumpkinSeed
#16447
üzenetére
nagy probléma, ha néhány helyen a HTML részben is vannak PHP kódrészletek?
Én ezt nem értem.
Ha behúzod a PHP-t külső fájlból akkor is lesz php a HTML-ben. (Illetve a pontosság kedvéért HTML lesz a PHP-ban.) Szóval: wat? 
Új hozzászólás Aktív témák
- Windows 10
- Xbox Series X|S
- Íme az új Android Auto!
- Otthoni hálózat és internet megosztás
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- Windows 11
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Mibe tegyem a megtakarításaimat?
- Drón topik
- Nyaralás topik
- További aktív témák...
- Nálam már kapható a jelenlegi leggyorsabb brutál notebook: Samsung Galaxy Book 5 Edge 5G!
- Sony WF-G700 White- INZONE Buds vezeték nélküli zajszűrős(ANC) fülhallgató - Fekete, 2 év gari
- High-End AMD Ryzen 9 9950X3D, ASRock X870E Taichi + Dell AlienWare AW2725DF + ajándékok
- 24,5"-os FullHD Dell Alienware gamer monitor újszerű állapotban AW2518HF
- GAMER LAPTOP - ASUS Rog Zephyrus M16 / Intel i7 12700 / RTX 3060 6gb / 24gb DDR5 / 2TB ssd
- Keresünk iPhone 16/16e/16 Plus/16 Pro/16 Pro Max
- BESZÁMÍTÁS! MSI B450 R5 5600X 32GB DDR4 512GB SSD RTX 3080 10GB Zalman Z1 Plus Cooler Master 750W
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RX 9070 16GB GAMER PC termékbeszámítással
- Shining3D EinScan Pro 2X 3D szkenner
- Samsung Galaxy A16 / 4/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



Ha behúzod a PHP-t külső fájlból akkor is lesz php a HTML-ben. (Illetve a pontosság kedvéért HTML lesz a PHP-ban.) Szóval: wat? 

