Autor Zpráva
Treska90
Profil *
Obracim se na vas s dotazem...
Mam za ukol naprogramovat jednoduchy katalog knih. Uz jsem naprogramoval spoustu programu, ale nikdy nic v OOP. Zadani programu j:

"zadani aplikace musi byt v PHO a buď:
- musi vyuzivat aspon jednu komponentu PEAR
- nebo vyuzivat PECL PDO pro pristup k databazi
- nebo cela aplikace musi byt v OOP
- nebo vyuzivat jinou knihovnu, jiny OOP framework
"

Chci se vyhnout OOP, nevite pri tomto vyberu jak? Tzn. co to znamena vyuzivat jednu komponentu Pear nebo vyuzivat Pecl pdo pristup k databazi.. (tim bych se OOP vyhnul?)

Diky za kazdou radu, velmi ji potrebuji.
Jan Tvrdík
Profil
Treska90:
Ačkoliv to není to, co chceš slyšet, tak ti dám radu – nevyhýbej se OOP. Časem se ti bude hodit.
mckay
Profil
Treska90:
PEAR je myslím také nějaká OOP knihovna (jestli si ji nepletu s něčím jiným). OOP se nevyhýbej, neboť je to o ničem. Geniální článek, ve kterém vše pochopíš je tady. Jak už tu Jan řekl, nevyhýbej se tomu. ;-)
DoubleThink
Profil *
Treska90:
musi vyuzivat aspon jednu komponentu PEAR
To je dost vágní definice. Použij třeba PHP_Compat a máš to z krku.

Jinak OOP v PHP lze díky jeho stupiditě vstřebat za jedno odpoledne.
Treska90
Profil *
vyborne! Ted mi jenom prosim, pane DoubleThink , poradte, jak ji pouzit (PHP Compat), hledam jako blazen ...

Pro ostatni, rad bych umel OOP, ale deadline je brzy a radeji bych se to pokusil udelat co nejrychleji :) Avsak za odkaz velmi dekuji, vypada nadejne :)
Jan Tvrdík
Profil
Treska90:
http://pear.php.net/package/PHP_Compat/docs
AM_
Profil
DoubleThink:
Jinak OOP v PHP lze díky jeho stupiditě vstřebat za jedno odpoledne.
naučit se v něm napsat nějaký helloworld možná, ale naučit se v něm psát efektivně a používat rozumně objekty, to trvá velmi dlouho.
Jinými slovy, objektový model PHP se opravdu naučí člověk rychle, ale objektové programování a filosofie psaní v něm se opravdu za odpoledne pochopit nedá.
Lamicz
Profil
DoubleThink:
OOP neni to, ze z funkce udelam metodu...
DoubleThink
Profil *
Lamicz:
OOP neni to, ze z funkce udelam metodu...
V PHP? Proč ne?
OOP v PHP je jen doplnění další jmenné úrovně nad funkcemi. Jinak nic, žádné události, žádné listenery, parodie na dědičnost, parodie na jmenné prostory, parodie na interface, parodie na accessory.
Mastodont
Profil
Proč by v kódu vytvářejícím stránku s dobou běhu do pár sekund měly být listenery?
Majkl578
Profil
[#9] DoubleThink
Myslím, že objektový model PHP5.3 už není tak příšerný.
Dá se na tom postavit slušná "aplikace", viz třeba framework Nette.
Rozhodně si nemyslím, že třída je skladiště funkcí (metod).
Jmenné prostory už v PHP 5.3 jsou a celkem se s nimi dá pracovat.
Carrot
Profil *
Majkl578:
Dá se na tom postavit slušná "aplikace", viz třeba framework Nette.
I v céčku jde napsat slušná aplikace. To, že je framework potřeba k zajištění i základních objektových funkčností je spíš důkaz nekvality OOP v PHP.
Majkl578
Profil
Carrot:
To, že je framework potřeba k zajištění i základních objektových funkčností je spíš důkaz nekvality OOP v PHP.
Nic takového jsem nikdy nikde neřekl. Řekl jsem pravý opak - že v PHP jde napsat i poměrně kvalitní aplikace a jako důkaz jsem uvedl právě Nette.
Carrot
Profil *
Co jde a co nejde v daném jazyce napsat, nesvědčí o jeho kvalitách. V případě frameworku je to dokonce naopak - že je framework vůbec potřeba, že ho lidé poptávají i na základní webové aplikace, je jasný signál o špatné kvalitě OOP v PHP.
Mastodont
Profil
Carrot:
Je .NET Framework signálem špatné kvality C# ??
Manny
Profil *
Jinak OOP v PHP lze díky jeho stupiditě vstřebat za jedno odpoledne.

bože můj... auto se dá naučit řídit taky za jedno odpoledne a jak to pak vypadá!

ale abych nebyl OT - z těch možností, co máš na výběr je to phpčkové OOP skutečně asi to nejmenší zlo
Nedávno jsem se začínal učit OOP (věčný začátečník) a dost mi pomohli anglické tutoriály - ty české byly tak nějak kostrbatě napsané nebo popisované pro PHP4 (a když má člověk v ruce PHP5 od Koska a s OOP začíná, tak někdy skutečně valí oči)...

Dost mi pomohlo k pochopení principu toto.
Lamicz
Profil
Abyste se z toho Nette nepo... Kdyz se zabyvam tvorbou WWW stranek v PHP, tak uz mam davno udelany nejaky jednoduchy "framework", ktery pouzivam. Me se hrozne libi, jak vsichni maji pocit, ze se pise stylem PHP 3 spagetti kodu a pak konecne prislo uzasny Nette a zacali jsme delat v OOP. Prdlajz. Kdyz me to zajima, pisu v OOP i bez Nette. Napr. mne tam pulka veci chybi a druha pulka co tam je, mi prijde uplne zbytecna. Napr. Nette/Image uz mam velmi podobne davno napsanou, ale s vice moznostmi, ktere tam nejsou, takze bych to stejne musel psat znovu. Tak nevim, co by me ten FW mel pomoct (navic je tam pytel trid jako final, to je uzasny FW). Treba zase sablony nejsou spatny (pouzivam Smarty), ale znovu - vse je pripraveny na jQuery, takze kvuli kazde blbince tam bude sedet jQuery nejlepe s UI. Naco?...
Lamicz
Profil
Jeste jedna vec k Nette - na co je chytre vymysleny load-on-demand, kdyz minifikovana verze je doprcic cely FW v jednom file a ten udelam include. Jsem asi blby, ale tohle jsem nepochopil (mimo toho, ze pres FTP prenasim misto x souboru jednoho, coz netvrdim, ze neni pekny).
P.S. jak pisu vsude - v zasade nic proti Nette nemam, pisu, co se mi nelibi.
v6ak
Profil
Tak třeba u Image chápu, že máš něco dokonalejšího... Ale co ti brání používat jak Nette tam, kde je lepší (tipuju: např: formuláře, MVP) a tvůj framework, kde je ten lepší (třeba to Image)?

druha pulka co tam je, mi prijde uplne zbytecna
Co třeba?

Lamicz:
(navic je tam pytel trid jako final, to je uzasny FW)
Takže všechno má být non-final a private metody a fieldy mají být protected aby v tom šlo udělat pěkný bordel?

Treba zase sablony nejsou spatny (pouzivam Smarty)
Myslím, že šablony v Nette budou asi mnohem lepší než Smatry. A navíc, ještě jsem tam nenašel přímou vazbu na JQuery.

na co je chytre vymysleny load-on-demand, kdyz minifikovana verze je doprcic cely FW v jednom file a ten udelam include.
Aby sis mohl vybrat...
jansmitka
Profil
Lamicz:
Jeste jedna vec k Nette - na co je chytre vymysleny load-on-demand, kdyz minifikovana verze je doprcic cely FW v jednom file a ten udelam include. Jsem asi blby, ale tohle jsem nepochopil (mimo toho, ze pres FTP prenasim misto x souboru jednoho, coz netvrdim, ze neni pekny).
Ono se v zásadě předpokládá, že kromě Nette bude aplikace obsahovat ještě nějaké vlastní třídy s vlastním kódem. I když použiji minifikovanou verzi a framework si tak natáhnu sakumprásk, stejně bych si nějak musel řešit načítání těch vlastních tříd, což by u mnohých projektů mohlo znamenat spoustu require_once "...";... A právě na tyto třídy je ten chytře vymyšlený load-on-demand, který dokáže načítat nejen samotné Nette (pokud je to potřeba), ale i jakoukoliv další knihovnu a jakýkoliv vlastní kód.

Jinak minified verze má sice o něco málo vyšší nároky na paměť, ale stejně je její načtení mnohem rychlejší (řádově desítky %), než chytře vymyšlený autoloading - na jednom starším serveru mi při použití minifikované verze spadla doba generování stránky z 80ms na nějakých 30ms.
Petr ZZZ
Profil
[#18] Lamicz
prenasim misto x souboru jednoho

Této větě bych asi nerozuměl, ani kdybych o PHP něco věděl.
v6ak
Profil
Ještě dodám, pokud máš třeba lepší knihovnu na obrázky, není problém se s ní pochlubit a třeba ji dát i k dispozici na začlenění do Nette.
Mastodont
Profil
třeba ji dát i k dispozici na začlenění do Nette
A proč by to měl proboha dělat?
v6ak
Profil
Neříkám, že musí, ale, pokud mu to nebude vadit (nebude to prodávat apod.), pak by to mohlo pomoct Nette. U open-source je postup "toto je lepší" nebo "tady toto by se tam ještě hodilo, tady máš kód" IMHO běžný.
Lamicz
Profil
Diky za reakce, jsem rad, ze to bylo pochopeno spravne, nechci zadny flame.
jansmitka: nemam nette a nemam pytel require_once, vzdyt to je jenom o promyslenem autoloadingu.
v6ak: zbytecne mi napr. prijde i samotne MVC(P) s routerem a vlastnim parsovani URL. Neni to spatny napr. na public casti kde to muze nahradit SEO URL. Ale napr. v administraci nevim - proc?. Ono i nastaveni toho routeru jak se divam neni nic jednoducheho (na Nette forum chodim jako host pravidelne a divam se co je noveho). Prijde mi to zkratka cele jako kdyz delam nejakou aplikaci, ne script. Jeden extrem je neprehledny spagetti kod a druhy mi prijde prave nejaky MVC FW. Ja spise volim stredni cestu, je to porad scriptovaci jazyk na weby. Sofistikovane OOP proc ne, ale aby to melo smysl musela by na to byt nejaka cache, v momente, kdy se delaji kazdym requestem znovu instance je takovy mno... nepekny (snad PHP6?).
To o tech sablonach jsem myslel jako ze v Nette jsou prave velmi zajimave ;)
BTW o Nette se mluvi hodne jako o komponentovem FW, kde se da temer kazda cast pouzit samostatne, ale nikde na to neni rozumny popis JAK to udelat - ze si stahnu minified verzi a tu udelam include, to teda fakt nee.
jansmitka
Profil
Lamicz:
jansmitka: nemam nette a nemam pytel require_once, vzdyt to je jenom o promyslenem autoloadingu.
A ten v Nette máš a nemusíš se o něj vůbec starat, takže nějak nevím, co konkrétně Ti vadí.

zbytecne mi napr. prijde i samotne MVC(P) s routerem a vlastnim parsovani URL. Neni to spatny napr. na public casti kde to muze nahradit SEO URL. Ale napr. v administraci nevim - proc?.
Na celou administraci Ti stačí klidně i jedna jediná výchozí routa. Jinými slovy: když chceš URL přesně podle Tvých představ, tak si s tím musíš trochu pohrát. Když je Ti jedno, jaké URL dostaneš, tak stačí Ctrl+C z příkladů. Jinak z vlastní zkušenosti mohu říct, že po troše hraní stavba vlastních rout není problém.

BTW o Nette se mluvi hodne jako o komponentovem FW, kde se da temer kazda cast pouzit samostatne, ale nikde na to neni rozumny popis JAK to udelat - ze si stahnu minified verzi a tu udelam include, to teda fakt nee.
Stáhneš si celou distribuci a příslušné třídy si vytáhneš a použiješ je. Jen musíš dávat pozor na to, aby jsi vzal vše potřebné, ale když Ti něco chybí, tak se to většinou dozvíš z chybových hlášek. A když náhodou ne, tak se stačí zeptat na fóru či v jabber místnosti, většinou se najde někdo ochotný, kdo Ti poradí.
v6ak
Profil
Když člověku nazáleží na URL, tak s tím prostě nic nedělá a Nette si URL nějak vyřeší.

S Nette Presentery to máš zhruba tak, že část kódu dáš do šablony, což už děláš, a zbytek můžeš buď dát přímo do Presenteru (pokud nechceš MVP), nebo si to tam rozvrstvíš jak chceš.

BTW: Cache je použita na šablony, které jsou kompilovány do PHP. Cacheovat instanci Presenteru ale dost samozřejmě dobře nejde. Instance jako takové se možná necachují nikde, spíš definice tříd. To možná umí řešit nějaký accelerator.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: