Autor Zpráva
watchick
Profil
Zdravím, mohl by mi prosím někdo osvětlit v čem je výhoda používání class v php? Ptal jsem se pár lidí, a jejich názor byl, že jsou více méně k ničemu, a jsou ještě pomalejší než normální funkce, protože jsou to objekty, jaký je váš názor?

S pozdravem
Watchick
Nox
Profil
Objekt != funkce

Dřív jsem je taky nechtěl moc používat ... nějak extra moc třídám nerozumím, ale líbí se mi na nich to, že je to takové přehlednější,
máš sdružené proměnné a funkce podle kontextu a začínám je čím dál víc používat

A alespoň u mě to bylo tak, že jsem je velmi málo chápal (po stránce užití a výhod) pouze čtením a názory,
teprve až sem je sám začal používat

Tedy pořádně sem zatím udělal jen jednu, třídu pro trochu větší abstrakci práce s mysql, klasika, ale...
Alphard
Profil
Je to často řešené téma, jen hledejte OOP místo class. Docela dobrý přehled poskytuje Objektově orientované programování na wikipedii, Seriál PHP v objetí objektů na rootu nebo OOP od Timyho.

Hodně debat lze nalézt i tady na fóru, můžete se v nich i ptát na upřesnění.
AM_
Profil
Ti lidé, co tvrdí, že objekty jsou pomalejší, než normální funkce, o problematice zřejmě nic neví - krom toho, že není pravda, že v objektovém programování jsou programy pomalejší, tak objekt je entita zcela jiného charakteru než funkce, takže to takto ani nejde srovnávat.

Jinak stručně řečeno - objektové programování je jiná filosofie programování než klasické procedurální; je o něco složitější ho pochopit (nejlepší je nejdříve se naučit procedurální a pak zkoumat objektové), ale výsledkem je programovací logika, která má mnohem větší potenciál, než procerudální, především pro složitější projekty: celý program je velice dobře organizovaný, protože každý elementární problém je reprezentován jednou třídou a pokud jsou třídy dobře napsané, i komunikace mezi nimi je přehledná a jasná, a také se do takovýchto programů snáze dopisují nové věci dalšími lidmi - dobře napsaná třída je chráněna nejen proti chybám uživatele programu, ale i proti chybám programátora, který s třídou zvenku pracuje.
fopen
Profil *
Môžem len potvrdiť, že je to veľmi prehľadne programovanie a dosť mi pre pochopenie pomohlo toto: Objektově orientované programování (OOP) v PHP
Mastodont
Profil
AM_
Například Larry Ullman v knize PHP and MySQL for Dynamic Websites píše zcela jasně:
I would generally say that procedural code is faster to execute and requires less memory, as there's less overhead

Z hlediska rychlosti kód to samozřejmě srovnávat jde a taky to bylo mnohokrát provedeno. Otázka filosofie je něco zcela jiného.
pEeLL
Profil
watchick
ja bych hlavní výhodu videl v lepší přehlednosti kodu. hlavne kdyz snim po tobe bude pracovat jeste nekdo dalsi.

ale pokud bys funce vhodne pojmenovaval (vcetne prefixu pro urcite skupiny funkci a promenych) a seskupoval do souboru tak bych vtom nevidel problem. nekdy lepsi hezky napsane funkce nez doprasene tridy.

problem rychlosti bych zde urcite neresil.
Alphard
Profil
ale pokud bys funce vhodne pojmenovaval (vcetne prefixu pro urcite skupiny funkci a promenych) a seskupoval do souboru tak bych vtom nevidel problem
No nevím, viditelnost proměnných, dědičnost, zapouzdření a spoustu dalších věcí to nevyřeší. V tomhle cestu nevidím.
pEeLL
Profil
Alphard
ne viditelnost to neřeší. dedicnost jde pomoci funkci simulovat. a zapozdreni - vlastne jiz samotna funkce je zapouzdreni.

rozhodne nechci tvrdit ze to s oop neni lepsi, vetsinou samozrejme je (uzitecnost oop pak imho roste s velikosti projektu a poctem spolupracovniku). ale myslim ze na mensich projektech se ale casto zadna vyhoda neobjevi.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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