Нужно ли е ООП в PHP?

9 отговора 664 прегледа
#1

Нужно ли е ООП в PHP?

Като цяло се занимавам с програмиране от една година, а с PHP от половин година. Имам някакви бегли познания по C/C++ и Pascal. Като сравнявам PHP с тях си изграждам мнението, че това е изключително интелигентен език, не-строг за типовете, с много вградени функции. Мога да кажа, че знам PHP много добре, но не мога да намеря смисъл в едно нещо - обектно-орентираното програмиране. Голям шум се вдига около това как ООП улеснявало живота и се смята за нещо революционно. Може би в език като в C++ това е така, но дали и в PHP? Каква е целта в това да капсулираш кода си в класове с методи вместо в нормални функции? Или за какво този код

<?
class theClass
{
var $oop;

function Enlarge ()
{
$enlarged = strtoupper ($this->oop);
return $enlarged;
}
}

$obj = new theClass;
$obj->oop = 'Is OOP Needed In PHP?';
echo $obj->Enlarge();
?>

да е по-добър от този:

<?

function Enlarge ($arg)
{
$enlarged = strtoupper ($arg);
return $enlarged;
}
echo Enlarge ('Aren\'t normal functions better?')

?>

Ако някой използва ООП в PHP - защо го използва и как това го улеснява?

Отговор
в отговор на Anonymous #2

Re: Нужно ли е ООП в PHP?

prav si kat kazvash 4e moje da se napravi i sas funkcii no predstavi si tfa neshto :
imash edna grupa funkcii koito sa svarzani i spodelqt opredeleni promenlivi. Predavash stoinost na vsqka promenliva vav vseki edin ot argumnetite na vsqka edna ot funkciite - gadno a? 50 reda nai malko moje pak da deklarira6 promenlivite kato globalni naprimer no pak dokato izpolzvash scriptowete trea da si nosi6 "nara4nik na promenlivite v saita mi" ako re6i6 pak da gi polzvash
sas OOP nqmash pr sas obshite imena na promenlivi
sas OOP i nasledqvaneto mojesh da dobavq6 novi svoistwa i metodi kam daden klas bez da pravi6 vsi4ko otnovo i otnovo

Отговор
в отговор на Anonymous #3

Re: Нужно ли е ООП в PHP?

От около година и половина се занимавам професионално с РНР/MySQL. Нямам опит с други езици като С/C++

Никога не съм използвал ООР, дори за този период съм написал една единствена функция. Вградените функции са ми предостатъчни, дори не съм използвал голяма част от тях.

Отговор
в отговор на $burov #4

Re: Нужно ли е ООП в PHP?

Аз се занимавам от 84-та с програмиране и по специално със С. Досега оцелявах без ООП, ама като гледам, май доста спестява. Иначе голяма боза ми се струва и не знам дали ще мога да се оправя:(

Отговор
в отговор на Anonymous #5

Re: Нужно ли е ООП в PHP?

Аз не се занимавам с програмиране .... ( или поне не отдавна ). Преминаването от прав код към подпрограми (BASIC - около 86-88 г.) ми се стори много лесно и удачно решение на много проблеми и спестяващо много код решение. После като намерих функциите (CLIPPER - 92-93 ) просто се родих :-)))))

другите на които не съм писал много просто не си заслужава да споменавам - нямам достатъчно експириенсе !

CLIPPER започна да поддържа псевдо обекти, които доста улесняваха работата в много случаи ( в някой не).


В РНР използвам немалко обекти (всеки обект в отделен файл и си ги копирам и си ги ползвам методите вътре както аз си знам :-)))

ООП-то е хубаво нещо, НО не и ако ЗАДЪЛЖИТЕЛНО трябва да го използваш. Има неща които се решават с прав код по-бързо и лесно, както и обратното. НО тенденциите са всичко и всички да минат към ООП. Така че братя и сестри захващайте се да учите ООП :-))))))

Обектите в РНР в момента не са най-доброто което може да се направи ..., но вършат работа .... И на мене ми харесват.

E tuk ni6to niama :[линк]
Отговор
в отговор на Anonymous #6

да

Достатъчно е написано по въпроса за ООП, но ще отговоря на въпроса ти: да, нужно е да имаш свободата да пишеш по какъвто начин сметнеш за добре.

А за някои неща, най-добрият начин е ОО.

"Преводът е като жената - ако е хубав не е верен, а ако е верен не е хубав."
Отговор
в отговор на Dakota #7

Re: да

Много зависи от целите, който гониш.
PEAR е изцяло обкетно ориентиран - разширения за PHP...

Лично аз съм с 2 ръце и един крак "за" употребата на ООП в PHP, макар и някои от леките спънки (предаването на класове по стойност, вместо като референс) - не спират ентусиазЪма да се стремя да капсулирам и пренасям код през различните проекти именно като класове. Унаследяването например за мен е един от най добрите начини за изграждане на комплексни и гъвкави решения на проблемите. Освен това Обектите позволяват пакетиране на данни и работата с тях (Properties and Methods или Съществителни и глаголи на едно място дет' са вика)

Има много мнения по въпроса, скоро бях попаднал на един сайт, който брутално оплюваше оопето и лансираше "таблично" програмиране, така и не разбрах какво беше точно.

Отговор
в отговор на Anonymous #8

Re: Нужно ли е ООП в PHP?

hmmm
moje i tak moje i inache
az sym za OO w PHP ama ne go polzwam :)
pone dosega ne e imalo prichina - ili po skoro me e mryzqlo :)))
na C - opredeleno da - izpolzwal sym go qko edno wreme - na PHP pisal sym golqm shit ama stana taka che za OOP nikoi ne se seti

w kraina smetka wsichko opira do li4no predpo4itanie
ako dosega ne si pisal na "starite" ezici prosto naprawo otiwai kym OOP
ima zasto
mai ...
a moje i da nqma :))) a PEAR e great ama pak pustiq myrzel ...

*******
Go not to the elves for counsel, for they will say both yes and no.
Отговор
в отговор на Anonymous #9

Re: Нужно ли е ООП в PHP?

Аз съм професионалист от 10 години. Винаги има риск, използвайте това, което владеете най-добре. ООП е идеално когато работят няколко човека по един проект, ако си вълк единак и проекта е малък, ще се справиш само с функции ... Но ООП е призната и наложена технология, в PHP 5 ще е наблегнато изцяло на ООП-то, така че учете, не се жалете ...

Отговор
в отговор на Anonymous #10

Re: Нужно ли е ООП в PHP?

Здравейте,

Аз не съм PHP програмист, имам зад гърба си Pascal, Aсемблер, C, C++, но темата ми се вижда интересна, та ето какво си мисля:

Разбира се, че е добре да го има. Дали ще се използва процедурно програмиране или ООП, това не е проблем на езика, а на проектирането на софтуера. Така че зависи какъв е проекта, може да се избере дали да се проектира обектна или процедурна реализация на задачата. ООП е много по-мощно средство за проектиране.

По-лесно се моделират обектите от обкръжаващия свят. Аз за себе си и когато някой ме пита имам следното обяснение: при процедурното програмиране имаме променливи (скаларни или съставни) и процедури. Променливите са складове за информация и нищо повече - мъртви са. Процедурите въздействат върху тях, като ги променят или използват съдържанието им. При ООП обектите могат да се сравнят със живи същества. Те имат памет и съзнание - това са членовете на класа, и могат да извършват разни неща - за това имат методи. При процедурното програмиране (по-точно моделиране) между данните и процедурите няма връзка. Може да бъде изпълнена неподходяща процедура върху дадени данни и нещата да се оплескат. В ООП обекта събира заедно информацията и методите да действие с нея.

Когато искаме в процедурна програма да направим нещо с някакви данни ние викаме процедура, която да го свърши, и тя трябва да знае как да го направи. Когато искаме същото нещо в ООП, ние просто казваме на съответния обект да свърши съответната работа, без много да се интересуваме как ще я свърши; вместо това разчитаме, че обекта знае как да си върши работата. Когато имаме много обекти и им казваме на всеки от тях - примерно отпечати си данните на принтер, сме сигурни че всеки обект знае какво да направи. При процедурното програмиране наша е отговорността в частта на програмата, където се използват данните да "вържем" конкретните данни със съответната им процедура.

След 5-6 години писане на C аз успях да докарам дотам, че си правех обекти на C. Разбира се с ограниченията на езика - няма наследяване, няма други неща... А C++ изведнъж разширява възможностите. Та в заключение, щом PHP има обектно програмиране, това е добре, и е добре да се използва - не защото го има, а защото с него по-добре се решават реални задачи от обкръжаващия ни свят.

Прави каквото трябва пък да става каквото ще.
Отговор