ugrás a tartalomhoz

Laravel 4 – simple website with backend tutorial – Part 1

gyuby92 · 2013. Jún. 3. (H), 15.36
Egy alkalmazás készítése
 
1

sok static

blacksonic · 2013. Jún. 4. (K), 16.05
Engem még mindig ráz a hideg a Laravel tutorialokban a static hívások mennyiségétől
2

Miért?

Hidvégi Gábor · 2013. Jún. 4. (K), 16.13
Miért?
3

Csak tipp...

vbence · 2013. Jún. 4. (K), 16.40
de korszerű OOPben illik paraméterben kapni minden kontextust amivel az adott kód kommunikál. Ez leginkább a "dependency injection" témaköre (globális állapot eliminálása). Jobb minőségű, tesztelhetőbb kódot eredményez.
4

Facade

Wabbitseason · 2013. Jún. 4. (K), 16.46
Azt mondják, Laravel esetében a Facade pattern ad magyarázatot ezekre a statikus hívásokra.

Azt viszont nem tudom, mi magyarázza, hogy az alaptelepítés (amiben tényleg csak az alapok vannak) 40-valahány mega -- de úgy látszik, ez a divat, hogy egy "hello world"-höz is saját szerver kell.
13

Ez így van,

bonga · 2013. Jún. 7. (P), 11.09
ezek nem igazi statikus hívások, csak annak látszanak.
Részletesebb magyarázatért ajánlom ezt a videót: http://t.co/dVOLY4BgIJ
Ezen belül 14:25-től kezdi magyarázni az "ál"-statikus hívásokat.
Röviden például ez:

Input::get('email');
Ezt hajtja végre:

$app->make('request')->get('email');
14

Alias

hector · 2013. Jún. 18. (K), 15.56
Sőt, ezek nem is feltétlen igazi osztályok, csak aliasok az autoloadernek.
11

Ki kell próbálni.

gyuby92 · 2013. Jún. 4. (K), 22.29
Szerintem jó az, amit ez az amerikai gyerek kitalált.
5

Ezeket a DB hívásokat nem

Poetro · 2013. Jún. 4. (K), 17.03
Ezeket a DB hívásokat nem értem. Miért nem a users, groups stb. takarít el maga után, miért kell itt direktbe ezeket beírni?
        DB::table('users')->delete();
        DB::table('groups')->delete();
        DB::table('users_groups')->delete();
Szerintem, ha már OOP akkor azt csináljuk rendesen, és minden objektum csak azt manipuláljon, amihez köze van. Ha ez nem teljesül, akkor az OOP nem teljesül.
6

Szerintem teljesen jogos,

MadBence · 2013. Jún. 4. (K), 17.18
Szerintem teljesen jogos, hogy a seed adatokat egy tiszta adatbázisba akarjuk felvinni.
8

De miért ott?

Poetro · 2013. Jún. 4. (K), 18.01
De miért ott van a DB hívás, miért nem a User, Group stb. objektumban, ahol a helye lenne? Miért a Seed takarít helyettük, miért nem ők teszik?
9

A User

vbence · 2013. Jún. 4. (K), 18.40
A User objektum egyetlen usert testesít meg, és nem a userek kollekcióját. Az ezen hívott delete metódus az adott rekordot törli, mi viszont a táblát szeretnénk kitisztítani (DELETE * FROM User). (Legalább is én így értelemzem a kódot).

Persze lehetne egy default kollekció, mondjuk Users néven, ami rövidítés a DB::table('users') -re, de ez már személyi preferencia kérdése.

Elelne szól például, hogy a globális névteret szennyezzük, amikor adott esetben a DB jöhetne paraméterben (eltekintve attól, hogy itt statikus).
10

Mi köze?

Poetro · 2013. Jún. 4. (K), 22.05
De most komolyan, mi köze a Seed-nek ahhoz, hogy a User hol, és miként tárolja az adatait? Még egy User::deleteAll() is szimpatikusabb, minthogy túrkáljunk egy táblában, amihez egyébként semmi közünk, mivel nem is mi fogjuk adattal feltölteni, hanem egy másik osztály.

Vegyünk csak egy egyszerű példát. Korábban adatbázisban tároltam a felhasználókat, de a jobb skálázódás érdekében megváltoztatom a tárolást, mondjuk egy felhő szolgáltatásra, aminek ugye van egy API-ja, amit szépen implementálok is a User-ben, hogy azt használja. Ekkor ha jól csináltam a dolgomat, akkor sehol máshol nem kell változtatnom, elvégre a User felelős önmagáért. Viszont a DB-vel való szoros összefonodás más, a User-től független osztályban csak nehézségek árán tenné lehetővé, hogy megváltoztassam azt, ahogy a User tárolódik.
12

Valóban nem szerencsés,

MadBence · 2013. Jún. 4. (K), 22.40
Valóban nem szerencsés, helyette akkor lehet User::all()->delete();. Mondjuk nekem a beépített ORM-je elég fapadosnak tűnik, szóval ez a manuális hekkelés akár bele is férhet.
7

Csak azért raktam fel, hogy érdekes.

gyuby92 · 2013. Jún. 4. (K), 17.41
Amennyiben tudom elmagyarázom.A héten még felrakok egy ismertetőt.