[ Príspevkov: 59 ] 1, 2
AutorSpráva
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 20.10.08
Prihlásený: 18.01.14
Príspevky: 2626
Témy: 31 | 31
Bydlisko: Bratislava
NapísalOffline : 22.12.2010 10:17 | PHP Objekty

Duri ked si vezmes, ze od PHP 3 sa tam stale viac a viac lepia objektove ficury, je dost mozne, ze raz z neho bude plnohodnotny objektovy jazyk. Mozno horizont piatich rokov (vtedy uz aj tak budu vsetci pouzivat nejaky framework takze je to mozno aj jedno). Samozrejme vysledok bude stat za :shit: :)


_________________
Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 22.12.2010 10:35 | PHP Objekty

Nechcem sa vám objektovím miešať do diskusie a podrypovať, keď viem len procedurálne a o OOP ani neuvažujem. Ale neznamená objektové náhodou to, že mám nejaký objekt, napríklad element v DOM(JS) alebo auto v hre a použijem naňho nejakú metódu, napríklad, .hide(), alebo .destroy()? Ak áno, tak potom načo nám je ku textom objektové správanie? Chápem, že je jednoduchší zápis ale načo meniť texty na "hmatateľné objekty"?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Čestný člen
Čestný člen
PHP Objekty

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 22.12.2010 11:15 | PHP Objekty

No vsak prave kvoli tomu jednoduchsiemu a logickejsiemu zapisu. Stringy nemusia byt hmatatelnymi objektami, v JS to funguje tak, ze retazec, pokial nad nim zavolas metodu, sa interne pretypuje na objekt a hned potom sa pretypuje nazad na string. Tak programator ani nemusi vediet, ze robi s nejakymi objektami.
Ty ak robis v jQuery, mozno sa az tak nestretavas s cistym Javascriptom, lebo framework robi vsetko za teba, ale JS naozaj ponuka uzasnu vyhodu oproti PHPcku (aj ked je to dost blbe porovnavat) prave v tychto objektoch.


Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 06.01.2011 22:12 | PHP Objekty

Keďže pri mojom CMS ma sprdli, že nepoužívam OOP tak som sa v tom začal vŕtať. Vcelku rozumiem čo to OOP znamená: mám objekt, jemu môžem nastavovať vlastnosti, pýtať sa na jeho vlastnosti a manipulovať s nimi. Lenže nemôžem pochopiť aký by to malo prínos pre moje CMS, čo by som mohol spraviť pomocou tohto OOP. Čo by boli objekty, aké by mali metódy?
Pozeral som aj nejaké weby ale nič schopn som sa nedočítal.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 28.12.10
Prihlásený: 10.05.11
Príspevky: 22
Témy: 3 | 3
NapísalOffline : 06.01.2011 23:15 | PHP Objekty

Co z toho robis vedu, metody mas zapuzdrene funkcie v nejakej triede. Snad nechces robit tisic funkcii samostatne, opakovat podobne funkcie a pod. Ked to mas v triede mas to prehladne atd atd atd atd... vyhody mas na kazdom webe, naco to vypisovat.


Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 07.01.2011 14:40 | PHP Objekty

Dlho som nechápal čo by malo to OOP robiť v PHP ale po zadaní do Googlu "vyhoda oop php" mi vypľuvlo tému odtiaľto a príspevok http://www.pcforum.sk/oop-php-vyuzitie- ... tml#365656 (aj ten pred ním) a pochopil som: ide o to, že počas celého kódu môžem upravovať jedinú "funkciu", ktorú potom použijem.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 343
Témy: 0 | 0
NapísalOffline : 07.01.2011 14:47 | PHP Objekty

Kup knihu, poskusaj ... pochopis


Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 07.01.2011 15:09 | PHP Objekty

Nejaké tipy?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Čestný člen
Čestný člen
PHP Objekty

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1757
Témy: 17 | 17
NapísalOffline : 08.01.2011 17:35 | PHP Objekty

pozri napriklad toto http://www.martinus.sk/?uItem=32262


_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 343
Témy: 0 | 0
NapísalOffline : 08.01.2011 19:06 | PHP Objekty

tym by som na 100% nezacinal

navrhove vzory su pokrocila cast objektoveho programovnia, nevhodne pre zaciatocnikov

Ku knihe -> Neviem, nevyznam sa do PHP literatury :P


Offline

Čestný člen
Čestný člen
PHP Objekty

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 08.01.2011 19:18 | PHP Objekty

http://www.grada.cz/php-objektove-orien ... a/katalog/


Offline

Skúsený užívateľ
Skúsený užívateľ
PHP Objekty

Registrovaný: 24.09.06
Prihlásený: 29.05.15
Príspevky: 1431
Témy: 37 | 37
Bydlisko: Bratislava
NapísalOffline : 08.01.2011 19:35 | PHP Objekty

Úvod do OOP a návrhových vzorov je celkom dobre a stručne popísaný tu.
http://www.amazon.com/PHP-Objects-Patte ... 1590599098


Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 11.01.2011 15:21 | PHP Objekty

Ešte ma zaujíma, či je správne/vhodné/dobré pre každý riadok z databázy vytvoriť jeden objekt a či môže byť objekt zapísaný aj v poli.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 20.10.08
Prihlásený: 18.01.14
Príspevky: 2626
Témy: 31 | 31
Bydlisko: Bratislava
NapísalOffline : 11.01.2011 15:30 | PHP Objekty

Flety robil som take mensie porovnavanie v codeignitery, ci je lepsie tahat veci z databazy do pola, alebo do objektu a praca s objektom bola rychlejsia.


_________________
Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 12.01.2011 15:11 | PHP Objekty

Super, to by som si vedel potom aj nejako predstaviť využitie OOP. A môže byť objekt zapísaný aj v poli teda $pole['key'] = new objekt();?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Správca fóra
Správca fóra
PHP Objekty

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 12.01.2011 17:48 | PHP Objekty

Flety, to si az tak lenivy, ze sa radsej spytas na fore, nez by si si to sam vyskusal? vytvorit nejaky primitivny priklad by ti zabralo par sekund...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 31.07.07
Prihlásený: 11.12.17
Príspevky: 317
Témy: 82 | 82
Bydlisko: Humenné
NapísalOffline : 15.01.2011 19:20 | PHP Objekty

Keď tak čítam vašu diskusiu tak si myslím, že by bolo načase aby som aj ja viac začal použivať objekty. Pravdupovediac ich teraz použivam minimálne priam vôbec a asi aj preto mám dosť problémy v JS programovať asi nemám to objektové zmyšľanie.


Offline

Skúsený užívateľ
Skúsený užívateľ
PHP Objekty

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 15.01.2011 19:34 | PHP Objekty

a tvoj konštruktívny príspevok do diskusie? :) alebo si nám to len chcel oznámiť?
samozrejme, že keď nevieš vôbec oop, viacero vecí ide ťažšie..


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 30.01.2011 17:31 | PHP Objekty

Tak jemne obzerám OOP a vidím, že často sa používa :: čo to je ako to využívať?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Čestný člen
Čestný člen
PHP Objekty

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 30.01.2011 17:38 | PHP Objekty

http://sk.php.net/manual/en/language.oo ... otayim.php


Offline

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

Registrovaný: 21.03.10
Prihlásený: 18.10.16
Príspevky: 60
Témy: 19 | 19
Bydlisko: BratislavA
NapísalOffline : 13.03.2011 23:34 | PHP Objekty

Este som si nedocital celu tuto diskusiu ale niekedy to snad urobim :D V php som uz isty cas nieco porobil potom si si dal dlhu pauzu a zrazu viem ze uz niec nepoznam :D dost veci sa tu pomenilo a OOP je mi relativne novinky. Zatial som otom cital len v jedna knizke o PHP kde sa este pouziva PHP 4. Princip chapem vytvorena instancia vola konstruktor triedy, ktory vykonava nejake tie prikazy a do toho vola uzivatelom doplnene funkcie v triede. Vsetko je tu verejne takze ked uz vytvorim instanciu mozem volat hocico a hocikde. V tych pojmoch mam gulas ale tusim co je naco. Ale dost by ma zaujimalo ako presne funguje ta DEDICNOST pri rozsireni triedy. Skusal som spravit maly skriptik.

class.php
Kód:
/* class.php */
<?php
class mysql {

    var $dbserver = "localhost";
    var $dblogin = "root";
    var $dbpass = "";
    var $databaza = "test";
    var $spojenie;

    function __construct() {

        $this->spojenie = @mysql_connect($this->dbserver, $this->dblogin, $this->dbpass);

        if(!$this->spojenie) {
            echo 'Chyba :: mysql_connect';
            exit;
        }

   if(!@mysql_select_db($this->databaza)) {
   @mysql_close($this->spojenie);
   echo 'Chyba :: mysql_select_db';
   exit;
   }

    }
}

class select extends mysql {

    var $sql;
    var $query;
    var $in;
    var $out;

    function select($in) {

        if(!is_numeric($this->in)) { echo 'Chyba :: ID'; exit; }
        $this->sql = "SELECT nazov FROM clanky WHERE id=" . $this->in;

        $this->query = @mysql_query($this->sql, $this->spojenie);
        if(!$this->query) { echo 'ERR : mysql_query'; exit(); }

        $this->out = mysql_result($this->query, 0, "nazov");
        @mysql_free_result();
    }
}
?>


index.php
Kód:
/* index.php*/
<?php
require_once ("class.php");

$instancia = new mysql;

// echo $select->out;

mysql_close($instancia->spojenie);
?>


Prva trieda vola konstruktor spoji sa s mysql a prevedie nejake to overenie, ked je vsetko ok ... tak je vsetko ok.
Rozsirenie by malo zdedit vlastnosti triedy teda spojenie s mysql a vybrat s databazi polozku nazov podla id ktore do funkcie zavolame s index.php

Pre triedu mysql viem spravit instnaciu $instancia = new mysql; ale neviem akoby malo byt naspravnejsie spravit instanciu pre rozsirenie triedy mysql teda triedy new select(IN_ID) tak aby som pomol uz hocikde na index vytlacit vysledok s mysql_result teda hodnotu tej tabulky "nazov", ktoru som vybral v select pod ID... :loony:

Dakujem za akekolvek objasnenie tej tematiky :oops:


_________________
PC1: CPU: Intel Core i7 930 2.8GHz @ 4,0GHz + NOCTUA NH-D14 MB: GIGABYTE X58A-UD3R - X58 DDR: CORSAIR DDR3 3x2048MB 1600MHz GPU: ASUS EAH5870 DDR5 1GB HDD1: INTEL X25-M 80GB SSD SATA II HDD2: WESTERN DIGITAL Caviar Black 1000GB, SATA III PSU: SEASONIC X-750 Gold, 750W CASE: Lian Li PC-A70F B OS: Win 7 Pro 64bit Keyboard: Logitech G15 Mouse: Alienware TactX Maus Screen: Alienware OptX™ AW2310 ( 23" 1920 × 1080 ) 3D Full HD
PC2: CPU: AMD @ 2,2GHz ...
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 14.03.2011 8:42 | PHP Objekty

nechapem presne co chces, elbo sa ponahlam na bus. ale sksual si v treide select spravit konstrkutkor, ktory bude osbahovat
Kód:
parent::__construct()


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 20.10.08
Prihlásený: 18.01.14
Príspevky: 2626
Témy: 31 | 31
Bydlisko: Bratislava
NapísalOffline : 14.03.2011 9:10 | PHP Objekty

viliam22 píše:
Vsetko je tu verejne takze ked uz vytvorim instanciu mozem volat hocico a hocikde.


A preto sa nauc php 5, pretoze mat vsetky vlastnosti a metody verejne, nie je moc najstastnejsi programatorsky pristup.


_________________
Desktop: iMac 21" CPU: i5 2.7GHz RAM: 4 GB DDR3 1333MHz GPU: AMD Radeon HD 6770M 512MB RAM HDD: 1TB 7200 rpm OS: Mac OS X Lion Desktop: CPU: AMD Phenom II x4 BE 955 3.2@3.6GHz 1.35@1.30V CPU Cooler: Gelid Tranquillo rev.2 MB: Gigabyte 880GM-UD2H RAM: 2x2 GB Kingston 1333MHz GPU: MSI HD 6850 Cyclone 1GB PSU: Seasonic S12II-620 620W HDD: Seagate Barracuda 7200.12 1TB Case: CoolerMaster Elite 333 LCD: 22" LG flatron W2261VP Keyboard: Microsoft Comfort Curve 2000 Mouse: Microsoft Wireless Mobile Mouse 4000 OS: Windows 8 Notebook: Macbook Pro 13" CPU: i5 2.4GHz RAM: 4 GB DDR3 1333MHz GPU: Intel HD Graphics 3000 384MB RAM HDD: 500GB 5400 rpm OS: Mac OS X Lion Tablet: iPad 2 64GB 3G Phone: HTC Desire S Phone: iPhone 8GB
Offline

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

Registrovaný: 21.03.10
Prihlásený: 18.10.16
Príspevky: 60
Témy: 19 | 19
Bydlisko: BratislavA
NapísalOffline : 14.03.2011 13:18 | PHP Objekty

tak ako su vsetky funkcie a premennej v php verejne alebo primarne su suktormne? pretoze vydel som uz deklarovat premenne var $prem; a public $prem; a tak isto funkcie function() { } a public function() { }


_________________
PC1: CPU: Intel Core i7 930 2.8GHz @ 4,0GHz + NOCTUA NH-D14 MB: GIGABYTE X58A-UD3R - X58 DDR: CORSAIR DDR3 3x2048MB 1600MHz GPU: ASUS EAH5870 DDR5 1GB HDD1: INTEL X25-M 80GB SSD SATA II HDD2: WESTERN DIGITAL Caviar Black 1000GB, SATA III PSU: SEASONIC X-750 Gold, 750W CASE: Lian Li PC-A70F B OS: Win 7 Pro 64bit Keyboard: Logitech G15 Mouse: Alienware TactX Maus Screen: Alienware OptX™ AW2310 ( 23" 1920 × 1080 ) 3D Full HD
PC2: CPU: AMD @ 2,2GHz ...
Offline

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

Registrovaný: 12.11.08
Prihlásený: 23.06.16
Príspevky: 123
Témy: 29 | 29
Napísal autor témyOffline : 26.04.2011 18:39 | PHP Objekty

zdravim,

tak som tu znova, uz mam to PHP trochu lepsie zmaknute ako pri zakladani temy a vzhladom na to co hovorite, aj tak by som sa to OOP chcel v PHP naucit. teoriu OOP relativne ovladam, viem co je clenska premenna, metoda, dedicnost, polymorfizmus, getter, setter, konstruktor, destruktor, poznam typy metod a viem to vsetko pouzivat. snazil som sa vygooglit nejake priklady, ale vzdy to boli priklady typu zamestanci, auto, macka, pes, vypocet roznych udajov o geometrickych telesach.... tymto veciam vsetkym chapem, viem co ten kod robi, ked sa nanho pozriem, stale ma ale nenapada, ako by som toto vsetko mohol vyuzit pri tvorbe web stranok, napriklad pri nejakom login scripte a pod.

bol by tu niekto ochotny mi to vysvetlit alebo poslat odkaz na nejaky schopnejsi tutorial pripadne uploadnut nejaku jednoduchu web stranku alebo zopar scriptov, kde by som to mohol pochopit?


Offline

Skúsený užívateľ
Skúsený užívateľ
PHP Objekty

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 26.04.2011 18:41 | PHP Objekty

čokoľvek je objektom, kľudne aj gombík pre prihlásenie... najočividnejšími objektami sú ale pravdepodobne samotné položky v databáze. Každý riadok je objekt.


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
PHP Objekty

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 26.04.2011 19:30 | PHP Objekty

Tiež som presne s týmto mal dlho problém, potom mi akosi doplo, ale nie som si istý či dobre. Ja tomu rozumiem takto:

Máš v databáze napríklad uložené články. Vytvoríš si triedu pre článok a táto trieda bude mať členov ako nadpis, autor, text, dátum pridania. Metódy potom bude mať Pridaj článok, Vypíš článok, Uprav článok, Odstráň článok, Vypíš krátku verziu článku.

Pri výpise článku si vyberieš údaje z databázy o tomto článku, vytvoríš nový objekt - článok a nastavíš mu vlastnosti. Potom naň zavoláš metódu vypíš článok.

Pri výpise zoznamu článkov môžeš zavolať metódu "Vypíš krátku verziu článku", ktorá najprv zmení vlastnosť text tým, že ju oreže na 100 slov a zavolá metódu "Vypíš článok". A to všetko zopakuješ pre prvých 10 záznamov v databáze.

Keď budeš upravovať, tak si na editovacej stránke vyberieš článok, vytvoríš objekt a formulár naplníš vlastnosťami tohto objektu. Po odoslaní formuláru nastavíš nové vlastnosti článku a zavoláš metódu "Uprav článok" ktorá môže overiť hodnoty, či sú také ako majú byť, ošetrí vstupy a zapíše do databázy.


Ale ako píšem, tiež som mal tento problém a nie som si stále istý či som to dobre pochopil, keďže na internete som nikde tento postup nevidel ale ani nič iné. Bol by som rád, keby to niekto potvrdil alebo vyvrátil.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Skúsený užívateľ
Skúsený užívateľ
PHP Objekty

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 26.04.2011 20:22 | PHP Objekty

Flety, v podstate... Celá podstata OOP je založená na tých pár znakoch z poučky - znovupoužiteľnosť, zapuzdrovanie, dedičnosť, polymorfizmus...

Celé je to o tom nepozerať na program ako na sled príkazov, ale ako na interakciu medzi objektami. Keď si vezmeš povedzme klasický procedurálny prístup a vyberáš povedzme články z databázy, berieš každý riadok ako nejaký set údajov, ktoré podľa potreby vypíšeš. Pri OOP sa pozeráš na každý riadok ako na samostatný objekt - užívateľ, článok, položka v eshope.., ktorá má nejaké vlastnosti a prípadne metódy (pri užívateľovi povedzme vieme určiť, čo môže na stránke vykonávať).

Samozrejme sa OOP neorientuje len na databázu, ale tam je to myslím pri webstránkach najviac očividné a najjednoduchšie pochopiť.


_________________
C#, PHP, ...
Offline

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

Registrovaný: 12.11.08
Prihlásený: 23.06.16
Príspevky: 123
Témy: 29 | 29
Napísal autor témyOffline : 03.05.2011 17:42 | PHP Objekty

takze nejak takto? vytvorim si napriklad class user a donho pisem metody ako login, autorizaciu, logout a pod?

Kód:
<?PHP
$sessid = $_SESSION['id'];

class user
{
      private $id, $firstname, $surname, $email, $password, $address, $rights, $msg_discount, $msg_newproduct;
/*gettery*/
      function getID()              {
            return $this->id;
                                    }
//...
                                   
      function getMsg_Newproduct()  {
            return $this->msg_newproduct;
                                    }
/*settery*/         
                                   
      function setID($userID)              {
            $this->id = $userID;
                                    }
//...
                                   
      function setMsg_Newproduct($usermsgnewproduct)  {
            $this->msg_newproduct = $usermsgnewproduct;
                                    }
/*metody*/
      public function auth($sessid)
            {
            if ($sessid)          {
                  $authquery = sprintf("SELECT * FROM users WHERE id='%s'", mysql_real_escape_string($sessid));
                  $auth = MySQL_Query($authquery);
                    if (!$auth) 
                    {
                        return 0;
                    }
                  $auth = mysql_fetch_object($auth);
                  if ($auth)  {
                        setID($auth->id);
                        setFirstname($auth->firstname);
                        //.....
                        setMsg_Newproduct($this->msg_newproduct);
                        return 1;
                              }
                  else        {
                        return 0;
                              }
                                          }
                                         
            else                          {
                  return 0;
                                          }
                                         
     
            }
      public function login($email, $password)
      {
            if ($email != "" AND $password != "")
            {
                  $loginquery = sprintf("SELECT id FROM users WHERE email='%s' AND password='%s'", mysql_real_escape_string($email), md5($password));

                  $login = MySQL_Query($loginquery);
                  if (!$login)   {
                        return 0;
                                      }
                  $login = mysql_fetch_object($login);
                  if ($login)   {
                        session_start();
                        $_SESSION['id'] = $login->id;
                        auth($login->id);
                                }
                  else          {
                        return 0;
                                }
            }
            else
            {
                  return 0;
            }
     
      }
}

?>


 [ Príspevkov: 59 ] 1, 2


PHP Objekty



Podobné témy

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

Photoshop objekty

v Grafické programy

4

240

26.08.2011 10:59

nickairsoft

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

Dynamické objekty

v PHP, ASP

25

718

04.01.2010 15:37

Tominator

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

ActiveX objekty

v Ostatné programy

5

581

12.12.2010 0:04

playmaker

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

Objekty ako polia

v PHP, ASP

7

351

03.01.2010 12:49

stenley

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

objekty a polia v SESSION

v PHP, ASP

2

381

24.08.2009 10:15

tomast7

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

PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

814

02.05.2011 12:08

magicmedia

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

Vytvorenie suboru php a vlozenie php scriptu

v PHP, ASP

4

924

07.05.2010 14:02

DeiForm

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

PHP nevie precitat .PHP

v PHP, ASP

8

463

18.03.2011 19:21

camo

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

php ->mysql ->php Help.zoradit

v PHP, ASP

4

322

20.06.2009 12:44

KViki

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

PHP

v PHP, ASP

1

2452

09.06.2005 22:39

johny128

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

PHP

v PHP, ASP

2

137

08.04.2016 20:44

5had0w

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

PHP

v PHP, ASP

1

537

31.05.2007 16:24

kmsa

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

PHP

v PHP, ASP

18

938

01.01.2009 19:22

rooobertek

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

php mail

v PHP, ASP

12

1521

21.07.2009 1:30

Snacker

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

php - diakritika

v PHP, ASP

12

282

29.10.2015 10:31

chrono

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

PHP problem

v PHP, ASP

15

824

30.03.2007 8:19

Punker661



© 2005 - 2017 PCforum, edited by JanoF