Нужно ли е ООП в PHP?
9 отговора
664 прегледа
Нужно ли е ООП в 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 - защо го използва и как това го улеснява?
<?
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 - защо го използва и как това го улеснява?
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
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
Re: Нужно ли е ООП в PHP?
От около година и половина се занимавам професионално с РНР/MySQL. Нямам опит с други езици като С/C++
Никога не съм използвал ООР, дори за този период съм написал една единствена функция. Вградените функции са ми предостатъчни, дори не съм използвал голяма част от тях.
Никога не съм използвал ООР, дори за този период съм написал една единствена функция. Вградените функции са ми предостатъчни, дори не съм използвал голяма част от тях.
Re: Нужно ли е ООП в PHP?
Аз се занимавам от 84-та с програмиране и по специално със С. Досега оцелявах без ООП, ама като гледам, май доста спестява. Иначе голяма боза ми се струва и не знам дали ще мога да се оправя:(
Re: Нужно ли е ООП в PHP?
Аз не се занимавам с програмиране .... ( или поне не отдавна ). Преминаването от прав код към подпрограми (BASIC - около 86-88 г.) ми се стори много лесно и удачно решение на много проблеми и спестяващо много код решение. После като намерих функциите (CLIPPER - 92-93 ) просто се родих :-)))))
другите на които не съм писал много просто не си заслужава да споменавам - нямам достатъчно експириенсе !
CLIPPER започна да поддържа псевдо обекти, които доста улесняваха работата в много случаи ( в някой не).
В РНР използвам немалко обекти (всеки обект в отделен файл и си ги копирам и си ги ползвам методите вътре както аз си знам :-)))
ООП-то е хубаво нещо, НО не и ако ЗАДЪЛЖИТЕЛНО трябва да го използваш. Има неща които се решават с прав код по-бързо и лесно, както и обратното. НО тенденциите са всичко и всички да минат към ООП. Така че братя и сестри захващайте се да учите ООП :-))))))
Обектите в РНР в момента не са най-доброто което може да се направи ..., но вършат работа .... И на мене ми харесват.
E tuk ni6to niama :[линк]
другите на които не съм писал много просто не си заслужава да споменавам - нямам достатъчно експириенсе !
CLIPPER започна да поддържа псевдо обекти, които доста улесняваха работата в много случаи ( в някой не).
В РНР използвам немалко обекти (всеки обект в отделен файл и си ги копирам и си ги ползвам методите вътре както аз си знам :-)))
ООП-то е хубаво нещо, НО не и ако ЗАДЪЛЖИТЕЛНО трябва да го използваш. Има неща които се решават с прав код по-бързо и лесно, както и обратното. НО тенденциите са всичко и всички да минат към ООП. Така че братя и сестри захващайте се да учите ООП :-))))))
Обектите в РНР в момента не са най-доброто което може да се направи ..., но вършат работа .... И на мене ми харесват.
E tuk ni6to niama :[линк]
да
Достатъчно е написано по въпроса за ООП, но ще отговоря на въпроса ти: да, нужно е да имаш свободата да пишеш по какъвто начин сметнеш за добре.
А за някои неща, най-добрият начин е ОО.
"Преводът е като жената - ако е хубав не е верен, а ако е верен не е хубав."
А за някои неща, най-добрият начин е ОО.
"Преводът е като жената - ако е хубав не е верен, а ако е верен не е хубав."
Re: да
Много зависи от целите, който гониш.
PEAR е изцяло обкетно ориентиран - разширения за PHP...
Лично аз съм с 2 ръце и един крак "за" употребата на ООП в PHP, макар и някои от леките спънки (предаването на класове по стойност, вместо като референс) - не спират ентусиазЪма да се стремя да капсулирам и пренасям код през различните проекти именно като класове. Унаследяването например за мен е един от най добрите начини за изграждане на комплексни и гъвкави решения на проблемите. Освен това Обектите позволяват пакетиране на данни и работата с тях (Properties and Methods или Съществителни и глаголи на едно място дет' са вика)
Има много мнения по въпроса, скоро бях попаднал на един сайт, който брутално оплюваше оопето и лансираше "таблично" програмиране, така и не разбрах какво беше точно.
PEAR е изцяло обкетно ориентиран - разширения за PHP...
Лично аз съм с 2 ръце и един крак "за" употребата на ООП в PHP, макар и някои от леките спънки (предаването на класове по стойност, вместо като референс) - не спират ентусиазЪма да се стремя да капсулирам и пренасям код през различните проекти именно като класове. Унаследяването например за мен е един от най добрите начини за изграждане на комплексни и гъвкави решения на проблемите. Освен това Обектите позволяват пакетиране на данни и работата с тях (Properties and Methods или Съществителни и глаголи на едно място дет' са вика)
Има много мнения по въпроса, скоро бях попаднал на един сайт, който брутално оплюваше оопето и лансираше "таблично" програмиране, така и не разбрах какво беше точно.
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.
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.
Re: Нужно ли е ООП в PHP?
Аз съм професионалист от 10 години. Винаги има риск, използвайте това, което владеете най-добре. ООП е идеално когато работят няколко човека по един проект, ако си вълк единак и проекта е малък, ще се справиш само с функции ... Но ООП е призната и наложена технология, в PHP 5 ще е наблегнато изцяло на ООП-то, така че учете, не се жалете ...
Re: Нужно ли е ООП в PHP?
Здравейте,
Аз не съм PHP програмист, имам зад гърба си Pascal, Aсемблер, C, C++, но темата ми се вижда интересна, та ето какво си мисля:
Разбира се, че е добре да го има. Дали ще се използва процедурно програмиране или ООП, това не е проблем на езика, а на проектирането на софтуера. Така че зависи какъв е проекта, може да се избере дали да се проектира обектна или процедурна реализация на задачата. ООП е много по-мощно средство за проектиране.
По-лесно се моделират обектите от обкръжаващия свят. Аз за себе си и когато някой ме пита имам следното обяснение: при процедурното програмиране имаме променливи (скаларни или съставни) и процедури. Променливите са складове за информация и нищо повече - мъртви са. Процедурите въздействат върху тях, като ги променят или използват съдържанието им. При ООП обектите могат да се сравнят със живи същества. Те имат памет и съзнание - това са членовете на класа, и могат да извършват разни неща - за това имат методи. При процедурното програмиране (по-точно моделиране) между данните и процедурите няма връзка. Може да бъде изпълнена неподходяща процедура върху дадени данни и нещата да се оплескат. В ООП обекта събира заедно информацията и методите да действие с нея.
Когато искаме в процедурна програма да направим нещо с някакви данни ние викаме процедура, която да го свърши, и тя трябва да знае как да го направи. Когато искаме същото нещо в ООП, ние просто казваме на съответния обект да свърши съответната работа, без много да се интересуваме как ще я свърши; вместо това разчитаме, че обекта знае как да си върши работата. Когато имаме много обекти и им казваме на всеки от тях - примерно отпечати си данните на принтер, сме сигурни че всеки обект знае какво да направи. При процедурното програмиране наша е отговорността в частта на програмата, където се използват данните да "вържем" конкретните данни със съответната им процедура.
След 5-6 години писане на C аз успях да докарам дотам, че си правех обекти на C. Разбира се с ограниченията на езика - няма наследяване, няма други неща... А C++ изведнъж разширява възможностите. Та в заключение, щом PHP има обектно програмиране, това е добре, и е добре да се използва - не защото го има, а защото с него по-добре се решават реални задачи от обкръжаващия ни свят.
Прави каквото трябва пък да става каквото ще.
Аз не съм PHP програмист, имам зад гърба си Pascal, Aсемблер, C, C++, но темата ми се вижда интересна, та ето какво си мисля:
Разбира се, че е добре да го има. Дали ще се използва процедурно програмиране или ООП, това не е проблем на езика, а на проектирането на софтуера. Така че зависи какъв е проекта, може да се избере дали да се проектира обектна или процедурна реализация на задачата. ООП е много по-мощно средство за проектиране.
По-лесно се моделират обектите от обкръжаващия свят. Аз за себе си и когато някой ме пита имам следното обяснение: при процедурното програмиране имаме променливи (скаларни или съставни) и процедури. Променливите са складове за информация и нищо повече - мъртви са. Процедурите въздействат върху тях, като ги променят или използват съдържанието им. При ООП обектите могат да се сравнят със живи същества. Те имат памет и съзнание - това са членовете на класа, и могат да извършват разни неща - за това имат методи. При процедурното програмиране (по-точно моделиране) между данните и процедурите няма връзка. Може да бъде изпълнена неподходяща процедура върху дадени данни и нещата да се оплескат. В ООП обекта събира заедно информацията и методите да действие с нея.
Когато искаме в процедурна програма да направим нещо с някакви данни ние викаме процедура, която да го свърши, и тя трябва да знае как да го направи. Когато искаме същото нещо в ООП, ние просто казваме на съответния обект да свърши съответната работа, без много да се интересуваме как ще я свърши; вместо това разчитаме, че обекта знае как да си върши работата. Когато имаме много обекти и им казваме на всеки от тях - примерно отпечати си данните на принтер, сме сигурни че всеки обект знае какво да направи. При процедурното програмиране наша е отговорността в частта на програмата, където се използват данните да "вържем" конкретните данни със съответната им процедура.
След 5-6 години писане на C аз успях да докарам дотам, че си правех обекти на C. Разбира се с ограниченията на езика - няма наследяване, няма други неща... А C++ изведнъж разширява възможностите. Та в заключение, щом PHP има обектно програмиране, това е добре, и е добре да се използва - не защото го има, а защото с него по-добре се решават реални задачи от обкръжаващия ни свят.
Прави каквото трябва пък да става каквото ще.