Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PHP OOP aplikacija???

[es] :: PHP :: PHP OOP aplikacija???

[ Pregleda: 5448 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milosijaa
Milos djordjevic
PHP Developer
srbija

Član broj: 88371
Poruke: 135
*.dialup.neobee.net.



Profil

icon PHP OOP aplikacija???05.10.2006. u 15:55 - pre 213 meseci
Pozdrav,

interesuje me da li neko zna gde se moze iskopati skolski primer razvoja PHP OOP aplikacije(nebitno sta radi ) koja ukljucuje sesije, template, MySql.

Bio bih Vam stvarno zahvalan da me neko uputi na nesto konkretno.

Googlao sam do besvesti i ono sto sam nasao je ili suvise jednostavno i ne ukljucuje navedene elemente, ili su aplikacije toliko velike i preskromno dokumentovane da ih je tesko razumeti.

unapred hvala
 
Odgovor na temu

_BloB_
Slobodan Pavkov
www.aspdotnetfaq.com
Kula, Serbia

Član broj: 35144
Poruke: 108
62.108.111.*

Sajt: www.aspdotnetfaq.com


Profil

icon Re: PHP OOP aplikacija???09.12.2006. u 15:09 - pre 211 meseci
Ma nije taj OOP nikakav vudu veruj mi.

koncentrisi se na pojedinacne klase:

1. DB klasa
2. klasa za autentikaciju korisnika (login)
3. klasa za podesavanja aplikacije (config - u fajlu ili u MySql bazi)
4. klasa za prikazivanje html templejta

itd itd..

nadji primere takvih pojedinacnih klasa, pregledaj kod, provali kako rade, probaj da napravis svoje, prostije verzije
takvih klasa, da sadrze samo one stvari koje TEBI trebaju...

jednu po jednu...

i onda posle samo kombinujes te klase u tvojim php skriptama/stranicama...

to je po meni sustina...

kada to savladas, i pocnes da koristis te klase u svakodnevnom radu, onda se desi 'klik' i pocnu da ti padaju
ideje za nove klase, nove upotrebe tih klasa, nasledjivanje...

tad mozes da se pozabavis sa MVC (Model View Controller) ili Design Pattern-ima....

znaci : korak po korak... ne mozes OOP skontati odjednom u celosti... to se znanje uci postepeno...

(makar je tako kod mene to bilo)...

e sad ako ti ovo pomaze super, ako ne... onda googlaj
 
Odgovor na temu

milosijaa
Milos djordjevic
PHP Developer
srbija

Član broj: 88371
Poruke: 135
*.dialup.neobee.net.



Profil

icon Re: PHP OOP aplikacija???12.12.2006. u 19:44 - pre 211 meseci
Ja sam ovaj moj Topic vec otpisao posto mesecima niko da bilo sta napise :(..

U svakom slucaju hvala na savetima...

Kako sam se smorio od googlanja , skontao sam da je jedini nacin onaj koji si ti opisao. Tako da sam zasukao rukave i .... Nastao je neki WEB mail client, ne bas optimizvan ali radi :)) Jos uvek se radi na njemu..




 
Odgovor na temu

_BloB_
Slobodan Pavkov
www.aspdotnetfaq.com
Kula, Serbia

Član broj: 35144
Poruke: 108
82.208.195.*

Sajt: www.aspdotnetfaq.com


Profil

icon Re: PHP OOP aplikacija???12.12.2006. u 22:42 - pre 211 meseci
pa super je cuti da se nesto radi...

ajd kad budes imao sta pokazati - ti pokazi !

i podeli iskustva ujedno...

pozdrav
Blob
 
Odgovor na temu

djordje
Novi Sad

Član broj: 3704
Poruke: 1725
*.dynamic.sbb.co.yu.



+3 Profil

icon Re: PHP OOP aplikacija?18.12.2006. u 04:29 - pre 211 meseci
Mozete li da date primere nekih svojih klasa, reicmo za mysql konekciju. Ovo je neka moja koja nije ni dovrsena, ali nisam siguran da je uopste dobro koncipirana. Voleo bih da cujem komentare iskusnijih.

Code:
<?php

class MySQL_connection{

        var $conid;
        var $result; //Rezultat upita se smesta u ovu promenljivu
        var $host;
        var $username;
        var $password;
        var $dbname;
        var $error;
        var $debug; //ako je "1" prikazi greshke
        
        
////////////////////////////////////////////////////////////////////////////////
        function MySQL_connection($host_par = "127.0.0.1", $user_par = "root", $pass_par = "aaaaaaaa", $database, $display_errors = 0){ //constructor
                $this->debug = $display_errors;
                $this->host = $host_par;
                $this->username = $user_par;
                $this->password = $pass_par;
                $this->dbname = $database;
                
                $this->connect();
                $this->select_db($this->dbname);
        }
////////////////////////////////////////////////////////////////////////////////       
        function error_occurred($good_or_bad = 0){       //displays error depending on $debug variable, and stops entire script, 1 is bad, 0 is good
                if($good_or_bad==1){
                        if($this->debug == 0){
                                die();
                        }else{
                                die($this->error);
                        }
                }else{
                        if($this->debug == 1){
                                echo $this->error;
                        }
                }
        }      
////////////////////////////////////////////////////////////////////////////////
        function connect(){     //creates connection to database
                if(!($this->conid = @mysql_connect($this->host, $this->username, $this->password))){
                        $this->error = mysql_error();
                        $this->error_occurred(1);
                }else{
                        $this->error = "We are connected!! <br>";
                        $this->error_occurred(0);
                }
        }
////////////////////////////////////////////////////////////////////////////////
        function select_db($dbname_par){
                if(!@mysql_select_db($dbname_par, $this->conid)){
                        $this->error = mysql_error();
                        $this->error_occurred(1);
                }else{
                        $this->error = "Database $dbname_par is selected !!<br>";
                        $this->error_occurred(0);
                }
        }
////////////////////////////////////////////////////////////////////////////////
        function disconnect(){
                if(!@mysql_close($this->conid)){
                        $this->error = mysql_error();
                        $this->error_occurred(1);
                }else{
                        $this->conid = 0;
                        $this->error = "Connection closed!!<br>";
                        $this->error_occurred(0);
                }
        }
////////////////////////////////////////////////////////////////////////////////
        function query($sql){
                if(!$this->result = @mysql_query($sql, $this->conid)){
                        $this->error = mysql_error();
                        $this->error_occurred(1);
                }else{
                        $this->error = "Query executed!! <br>";
                        $this->error_occurred(0);
                }
        }
////////////////////////////////////////////////////////////////////////////////
        function fetch_row(){
                if(!$row = @mysql_fetch_row($this->result)){
                        return false;
                }else{
                        $this->error = "Row fetched!! <br>";
                        $this->error_occurred(0);
                        return $row;
                }
        }
////////////////////////////////////////////////////////////////////////////////
        function rows_affected(){
                return mysql_affected_rows($this->conid);
        }
};


?>



[Ovu poruku je menjao djordje dana 18.12.2006. u 18:54 GMT+1]
 
Odgovor na temu

_BloB_
Slobodan Pavkov
www.aspdotnetfaq.com
Kula, Serbia

Član broj: 35144
Poruke: 108
*.nspoint.net.

Sajt: www.aspdotnetfaq.com


Profil

icon Re: PHP OOP aplikacija???18.12.2006. u 07:28 - pre 211 meseci
pa nije lose uopste, mada ja bih odvojio Connection u posebnu klasu od DBLayera...
jer DBConnection ti moze zatrebati za razne klase...

napravis DBConnectionClass i onda nju ubacis u svaku klasu koja se bavi bazama.
(ja trenutno imam 3 klase koje koriste DBCOnnection clasu)
MyDbLayer
MyDbPagingLayer
MyDbActiveRecordClass

a imam i MyDbResult

e sad sve te klase primaju u konstruktoru instancu MyDbConnection i koriste je za svu komunikaciju sa serverom...

a da ne bude da krijem kod evo saljem: (doduse php5)
Code:


  class MyDBConnection
  {
    protected  $host = null;
    protected  $username = null;
    protected  $password = null;
    protected  $database = null;

    protected  $link = false;


    public function __construct($params = array())
    {
      set_magic_quotes_runtime(false);
      $this->parseConnectionParameters($params);
      $this->connect();
    }

    function __destruct()
    {
      //print(__CLASS__."destructor<br>.");
      //if ($this->isReady())
      //  @mysql_close($this->link);
    }


    public function connect($params = array())
    {
      $this->parseConnectionParameters($params);

      $this->link = @mysql_connect($this->host,$this->username,$this->password);

      if (!$this->isReady())
      {
        throw new Exception("Cannot connect to DB server.");
      }

      if (!is_null($this->database))
        {
          $this->selectDatabase();
        }

    }

    private function parseConnectionParameters($params)
    {
      if (!is_array($params))
        return;

      if ( (isset($params['host'])) && (!is_null($params['host'])) )
        $this->host = $params['host'];

      if ( (isset($params['username'])) && (!is_null($params['username']))  )
        $this->username = $params['username'];

      if ( (isset($params['password'])) && (!is_null($params['password'])) )
        $this->password = $params['password'];

      if ( (isset($params['database'])) && (!is_null($params['database'])) )
        $this->database = $params['database'];
    }

    public function selectDatabase($dbname = null)
    {
      if (!is_null($dbname))
        $this->database = $dbname;

      if (strlen(trim($this->database)) <= 0)
        throw new Exception("Cannot open database if desired DB name is not supplied.");

      if (!$this->isReady())
        throw new Exception("Cannot open database because not connected to DB server.");

      if (!mysql_select_db($this->database, $this->link))
      {
        throw new Exception("Cannot open database `$this->database` on DB server.");
      }
      else
        return true;
    }

    public function isReady()
    {
      if ( (!isset($this->link)) || (!$this->link) || (!is_resource($this->link)) )
        return false;
      else
        return true;
    }

    public function getLink()
    {
      if (!$this->isReady())
        throw new Exception("No valid DB link identifier to return.");
      else
        return $this->link;
    }


  }



ako te zanimaju i ostale klase moze i to...

vec dugo radim na ovome i sto puta sam vec pisao iznova sve ove klase...
trenutno mi se cini da je ovo najbolji pristup (nekada nisam odvajao DBConnection u klasu) mada ko zna u buducnosti
na sta ce sve to da izadje

ajd poz
UncleBlob
 
Odgovor na temu

djordje
Novi Sad

Član broj: 3704
Poruke: 1725
*.dynamic.sbb.co.yu.



+3 Profil

icon Re: PHP OOP aplikacija???18.12.2006. u 18:18 - pre 211 meseci
E sad, kako razdvajate dizajn od programiranja? Mislim na vas kod a ne na smarty i slicno. Dakle neki vasi primeri template engine-a ali OO. Meni su ta dva sloja previse povezana, pa bih voleo da vidim kako vi to razdvajate
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
89.216.201.*



+2 Profil

icon Re: PHP OOP aplikacija???27.04.2007. u 00:11 - pre 206 meseci
Izvini nisam ranije video ovu temu. Jedno pitanje za pocetak da li znas OOP?
ako neznas iluzorno je da ti bilo ko daje skolski primer, prvo dobro savladaj oop. Posveti mu duznu paznju.
Ako znas bar osnove oop bicu vrlo rad da ti napisem sam skolski primer, kroz koji zajedno mozemo da prodjemo.
Pozdrav
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

djordje
Novi Sad

Član broj: 3704
Poruke: 1725
*.dynamic.sbb.co.yu.



+3 Profil

icon Re: PHP OOP aplikacija???27.04.2007. u 00:41 - pre 206 meseci
Sam koncept OOP mi je veoma blizak, ali u C++. Za nijansu drugaciji nacin razmisljanja je potreban za web programiranje. MEdjutim, u medjuvremenu sam napisao svoju template parser klasu koju koristim za potpuno razdvajanje dizajna od logike. Sada mi vise pomoc nije toliko potrebna, ali svakako bi bilo fino da izneses svoja znanja i iskustva ovde ako nisu tajna ;)

Ja ne zelim da iznesem jos uvek svoju template parser klasu ovde jer je trenutno prilicno neoptimizovana, i verovatno sporija od mnogih koje se na netu mogu naci.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
89.216.201.*



+2 Profil

icon Re: PHP OOP aplikacija???27.04.2007. u 01:05 - pre 206 meseci
Mogli bi smo zajedno da napisemo jedan skolski primer koriscenja klasa? Pa da ga okacimo. Svidja mi se ideja posto bi radili nezavisno. Recimo da napravimo jednostavan log in/out i prikaz toga u tabeli nista vise. Mislim da bi primer bio dobar i dovoljan.

oftopic:
@djordje
sry djordje post je bio upucen milosiju. Inace ne pravim template ako bas ne moram. Volim da sve odradim ispocetka, ako nista dobijam na brzini, pored toga sto uvidim i milion propratnih gresaka u kodu i nacina da se nesto optimizuje.
Sto se tice template parser klase. Time se jos nisam opterecivao. U php-u programiram tek neko neznatno vreme, otprilike 10 meseci.
Slazem se da je koncept OOP u webu znatno izmenjen. Jos uvek i sam pokusavam da shvatim na koji nacin da koristim OOP u web programiranju a da bude najoptimalnije. Vise volim c++, to mi je ipak prva ljubav :)
Inace koristim smarty, smatram da je sasvim ok. Imam par ideja kako bih napisao svoj ali trenutno se time nebavim. Vise pokusavam da realizujem dobar forum. :)


---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

milosijaa
Milos djordjevic
PHP Developer
srbija

Član broj: 88371
Poruke: 135
*.dialup.neobee.net.



Profil

icon Re: PHP OOP aplikacija???02.05.2007. u 11:16 - pre 206 meseci
@ boris

Izvini nisam ranije video ovu temu.Pa gde gledas covece?? :)just kidding Jedno pitanje za pocetak da li znas OOP?Uglavnom sam ga sazvakao radeci u JAVI, a sada sam ga dokusurio u PHP-u
ako neznas iluzorno je da ti bilo ko daje skolski primer, prvo dobro savladaj oop. Posveti mu duznu paznju.
Ako znas bar osnove oop bicu vrlo rad da ti napisem sam skolski primer, kroz koji zajedno mozemo da prodjemo. Ovo je bas prijatno iznenadjenje. Lepo je znati da ima ljudi poput tebe, ali ne hvala nije potrebno. Resio sam svoj problem:)


Pozdrav
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
89.216.201.*



+2 Profil

icon Re: PHP OOP aplikacija???02.05.2007. u 12:18 - pre 206 meseci
Znam oop jako dobro :)
Al sam mnogo dobar pa sam hteo da malo pomognem i drugima, meni je to mizerija utrosenog vremena, a nekom znaci mnogo. Kad sam imao problema i nisam mogao da nadjem nikoga ko zna da ih resi, KOLIKI je to bio cim. Sad ti problemi izgledaju mizerno :D.
Te ako znam nesto rado cu da pomognem :)

---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

[es] :: PHP :: PHP OOP aplikacija???

[ Pregleda: 5448 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.