Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 42 ] Choď na stránku: predchádzajúca 1, 2
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
OOP v PHP

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 23.11.2009 10:31

Tak ako pise stenley. Objektove programovanie ma vyznam hlavne vtedy, ak vyuzijes specialne vlastnosti tried a objektov (teda spominanu dedicnost atd).

Ak si niekto vytvory objekt pre pracu s databazou ktory ma napr 6 metod, tak to moze mat kludne 6 funkcii a vlastnosti triedy nahradit globalnymi premennymi :) Nebude to sice az take "pekne", ale ak to bude mat v zvlastnom zdrojaku tak to nebude ani "skarede". Tieto 2 riesenia budu ronako dobre.

Ak sa v PHP pre zaciatok vyhnes OOP, nic nepokazis. Vsetci co programuju viac nez par rokov totiz tiez zacinali na procedurach.







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 24.11.2009 12:11

Výhoda je asi taká. Predstav si že by si mal programovať križovatku (nemusí to byť v PHP, ale všobecne). Na križovatku prídu autá, a každé musí niekde chcieť ísť, a každé sa musí správať podľa predpisov. Urobiť toto proceduralnym spôsobom je niekoľko násobne ťažšie, než cez OOP. Prečo?
Lebo v OOP by si naprogramoval všeobecné spravanie každého auta, zatiaľ čo cez procedúry by si musel riešiť každé auto.


Offline

Užívateľ
Užívateľ
OOP v PHP

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 25.11.2009 16:26

Prečo? Dal by som auto($suradnice-z, $suradnice-kam) a vo funkcií by som zaznamenal predpisy pre každé auto.


Offline

Užívateľ
Užívateľ
OOP v PHP

Registrovaný: 10.02.08
Prihlásený: 15.05.17
Príspevky: 2264
Témy: 48
Bydlisko: Nitra
Príspevok NapísalOffline : 25.11.2009 16:47

Bože flety :D Proste OOP je vhodné na väčšie projekty a veci kde je kód prehladnejší a rýchlejší a lepší ako procedurálny :D Nikto ti neprikazuje používať OOP a vymazať funkcie :D Veď aj taká trieda by bola vlastne bez funkcií stratená...







_________________
WYSIWYMGIYRRLAAGW: What You See Is What You Might Get If You’re Really Really Lucky And All Goes Well.
Offline

Užívateľ
Užívateľ
OOP v PHP

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 25.11.2009 17:23

Flety píše:
Prečo? Dal by som auto($suradnice-z, $suradnice-kam) a vo funkcií by som zaznamenal predpisy pre každé auto.


A co by si spravil ak b ysa tam zdrazu objavila motorka, ktora ma dajme tomu troskicku ine predpisy?


Offline

Užívateľ
Užívateľ
OOP v PHP

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 27.11.2009 18:50

Čo by si spravil v triede, čo by som nemohol spraviť vo funkcií?

Svolo, nechcem sa hádať, možno je lepšie to OOP ale zatiaľ ma nikto o tom nepresvedčil. Bol by som rád, aby ste si tento názor obhájili tak, aby som videl, že to OOP je vážne výhodnejšie a oplatí sa študovať tento spôsob myslenia a programovania.


Offline

Čestný člen
Čestný člen
OOP v PHP

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 27.11.2009 20:11

Pointa, preco OOP pouzivam ja, je ta, ze trieda moze mat aj metody, aj cleny. Funkcie s premennymi nedas dokopy, pokial si nechces zababrat kod globalnymi premennymi. Ak zoberieme priklad s autom, vytvorim si triedu Auto, ktora bude mat cleny x a y ako suradnice a metody hore(), dole(), doprava(), dolava(), pricom mozem si povytvarat desat aut a vsetky budu mat metody a cleny nezavisle od seba. Ako by si toto chcel riesit bez OOP? Vytvoris si polia vsetkych X a Y suradnic? Alebo si vytvoris jednotlive auta ako polia s X a Y suradnicou a budes pouzivat funkcie na posun, kde parameter bude musiet byt aj auto? Obe moznosti su na hlavu postavene.
Porovnaj si zapis
Kód:
$xml = new XMLWriter();
$xml->openURI('subor.xml');
$xml->startDocument('1.0', 'UTF-8');
$xml->endDocument();
a
Kód:
$xml = xmlwriter_open_uri('subor.xml');
xmlwriter_start_document($xml, '1.0', 'UTF-8');
xmlwriter_end_document($xml);
Na troch riadkoch sa to mozno nezda, ale ta prehladnost v OOP vitazi.
Dalo by sa hovorit o dedicnosti, abstrakcii a inych srandach, ale najprv treba prist na chut zakladom OOP.


Offline

Užívateľ
Užívateľ
OOP v PHP

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 27.11.2009 20:48

Teda pokiaľ správne chápem, tak trieda má kvázi podfunkcie, ktoré voláš tou šípkou(zrejme sú to tie metódy) a parametre sa zadávajú ako do funkcií. Je tak? Myslím, že začínam chápať načo to je dobré. Ale myslím, že učiť sa to ešte nebudem. V reálnom programovaní PHPčkom nevidím až také uplatnenie. A možno sa raz dostanem aj k tomu a ani nebudem vedieť ako.


Offline

Skúsený užívateľ
Skúsený užívateľ
OOP v PHP

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 27.11.2009 20:52

Ak dovolíte, niečo k tomu poviem aj ja.

Obhajovať použitie OOP v nejakom projekte, pretože má krajšiu syntax je úplná kravina. Syntax môže byť krajšia či škaredšia, ale na základe syntaxe sa nedá povedať, že tento prístup/jazyk je lepší ako druhý (aj brainfuck je Turing-complete, ale dôvod prečo v ňom nebudete písať riadenie križovatky nie je to, že jeho príkazy sú ničnehovoriace symboly < > + - . , [ ], ale to, že ich je len 8!). Navyše:
Ďuri píše:
Alebo si vytvoris jednotlive auta ako polia s X a Y suradnicou a budes pouzivat funkcie na posun, kde parameter bude musiet byt aj auto?
Toto je len vecou syntaxe, väčšina jazykov s OOP prístupom pri volaní nestatickej metódy používa inštanciu objektu ako akýsi implicitný parameter, nie však Python. Z pohľadu syntaxe používa Python rovnaký prístup, ako ten, čo Ďuri vysmial. Sémanticky však de o dve úplne zásadne sa odlišujúce veci a sémantika je to čo sa počíta.

Ten pravý dôvod, prečo niekde použiť OOP a inde nie je vysvetlený napr. tu. V konečnom dôsledku odpoveď na otázku
Flety píše:
Čo by si spravil v triede, čo by som nemohol spraviť vo funkcií?
je nič; ale prakticky naozaj zložitejšie veci v OOP spravíš skôr, lepšie, kvalitnejšie a sémanticky prehľadnejšie vďaka intenzívnemu využívaniu vecí ako dedičnosť, polymorfizmus, zapuzdrenie atď...







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
OOP v PHP

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 27.11.2009 20:59

OK, takže keď sa začnem strácať vo svojich projektoch alebo uvidím, že funkciami to proste nejde tak začnem s OOP ale keďže OOP nedokáže z pohľadu funkčnosti nič viac ako procedúry/funkcie ostávam zatiaľ pri nich.


Offline

Čestný člen
Čestný člen
OOP v PHP

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.11.2009 1:14

Ja sa tiež vo svojich osobných projektoch vyhýbam OOP, stále je pre mňa jednoduchšie urobiť si funkcie ako vytvárať nové a nové triedy. Ale napriek tomu som už pre určité zjednodušenie svojej práce dokončil niekoľko tried, ktoré neustále "recyklujem". A na toto sa práve OOP hodí, recyklovanie jednotlivých postupov - nemusíš vytvárať niečo, čo si už vytvoril. Aj keď rovnako dobre môžeš použiť nejakú hotovú funkciu, alebo časť kódu, častejšie sa mi tam objavovali chyby.

Tiež si musíš uvedomiť, že veľa moderných jazykov sú od základu objektovo orientované. Teraz sa venuješ PHP, ak sa začneš venovať objektom, budeš mať výhodu do budúcnosti. Napríklad ako ja - práca ma prinútila robiť v .NET a keďže som už predtým mal vedomosti o OOP (práve v php), tak to nie je pre mňa úplná španielska dedina.

Ale aby som to uzavrel, neber OOP ako všeliek a jedinú správnu cestu. Časom budeš sám vedieť rozpoznať, kedy sa ti oplatí napísať pár funkcií a tie spojiť dokopy, alebo si vytvoriť jednu veľkú triedu a tú použiť na stránke. Líši sa to od projektu a od tvojich potrieb.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 28.11.2009 16:01

Ja to vidím tak, že OOP nevytláča funkcie. Funkcie sú dobré na jednu jednuchú záležitosť, previsť dátum z timestamp v DB do času priateľného pre človeka. Tam dávať OOP by bolo nezmyselné, lebo nevyužiješ jeho výhody, iba sa viac napíšeš. Alebo si pozri stenleyho funkcie v často používaných scriptoch -> Pekné URL -> jednoduchá, jednoúčelová funkcie.

OOP používam vtedy ak sa na jednu vec viažiu dve a viac vecí, alebo rieši jednu zložitú vec. Napríklad: vytvorenie, kontrola a vymazanie tokenu alebo samotný template parser ( z iných tried viď. známy PHPmailer).


Odpovedať na tému [ Príspevkov: 42 ] Choď na stránku: predchádzajúca 1, 2


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. PHP OOP

v PHP, ASP

3

293

18.02.2013 7:20

DeiForm Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP PHP

v PHP, ASP

1

493

29.04.2010 17:32

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP v PHP

v PHP, ASP

1

858

02.06.2009 11:02

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [PHP] OOP diskusia

v PHP, ASP

7

2452

30.03.2015 12:59

majky358 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP PHP problémy začiatočníka

v PHP, ASP

11

471

13.11.2014 13:29

Mego Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. database class, oop php

v PHP, ASP

10

783

16.02.2010 15:12

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP OOP MYSQLi Class

v PHP, ASP

6

654

08.04.2012 15:42

lolexc Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. oop php - vyuzitie, vyhody

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

32

2337

24.05.2008 15:04

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. oop v php - predavanie udajov

v PHP, ASP

1

349

16.02.2010 19:06

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP

v PHP, ASP

20

1387

29.02.2008 20:24

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP kniha

v Assembler, C, C++, Pascal, Java

3

541

02.12.2011 21:36

matwej Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Java OOP

v Assembler, C, C++, Pascal, Java

2

432

12.01.2018 14:33

camarovk19 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP, premenna

v PHP, ASP

1

621

26.10.2009 21:44

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Lazarus OOP smernik

v Delphi, Visual Basic

0

522

30.03.2014 1:56

F3RY Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasovanie, chyba, oop

v PHP, ASP

6

570

03.03.2011 14:52

janik366 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OOP a konstruktor

v PHP, ASP

8

578

01.04.2008 17:06

vl4kn0 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra