- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- hege8888: Retro Kocka Kuckó 3
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- gerner1
- gban: Ingyen kellene, de tegnapra
- Meggyi001: RTX 5060 - Az új népkártya?
Hirdetés
Köszönjük a sok biztatást, támogatást! Egy rövid ideig még féláron tudsz hirdetni, előfizetni!
Ú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
- Építő/felújító topik
- Motoros topic
- Kerékpárosok, bringások ide!
- Vezetékes FEJhallgatók
- A fociról könnyedén, egy baráti társaságban
- E-roller topik
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Milyen billentyűzetet vegyek?
- Bestbuy játékok
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- További aktív témák...
- HP 250 G10 Intel Core i5-1335U processzorral, Angol lokalizációval eladó!
- ASUS Zenbook S 13 Intel Core Ultra 7 processzoros notebook eladó
- Lorier Hyperion SII Új, automata, hordatlan, fóliás állapotban
- Azonnali készpénzes AMD Radeon RX 7000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Akció! Paidashu 10600MAH / 20700MAH Powerbank olcsón!
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
- HP ZBook Studio G7 i7-10850H 32GB 1000GB Nvidia Quadro T1000 15.6" FHD 1 év garancia
- Asus ROG X13 Flow 2in1 Touch WUXGA 120Hz Ryzen9 5900HS 16GB 1TB SSD Nvidia RTX 3050Ti Win11 Garancia
- MacBook Pro 16 2021 M1 Pro 32GB 512GB 1 év garancia
Állásajánlatok
Cég: FOTC
Város: Budapest