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

Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();

[es] :: PHP :: Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();

[ Pregleda: 3381 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Lacke

Član broj: 174570
Poruke: 58
*.dynamic.isp.telekom.rs.



+7 Profil

icon Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();28.07.2013. u 17:14 - pre 130 meseci
Moze li neko da mi pojasni koja je razlika izmedju $CI = & get_instance(); i self::$CI = & get_instance();

Znam da $CI = & get_instance(); koristim kada pisem svoje helpere i libs u CodeIgniteru, ali ne znam cemu sluzi to self::
 
Odgovor na temu

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.sbb.rs.



+7 Profil

icon Re: Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();30.07.2013. u 08:38 - pre 130 meseci
Staticki property.
http://php.net/manual/en/language.oop5.static.php

Code:

class Car {
   private static $CI = null;


     public function __construct() {
         self::$CI =& getInstace();
     }

  // Smesta singleton u CI promenljivu i posle je preuzima po referenci samo.

 static function getInstance() {
        if(!isset(self::$instance))
            self::$instance = new __CLASS__;

        return self:$instance;
    }
}


Da je property public onda bi bilo $this <pokazivac na objekat> $this->CI =& getInstance().

Drugo pitanje za $CI = & get_instance();

Koristi se kada pravis svoju biblioteku MY_LOGIN.php npr

Zasto bi ti sada pisao novu konekciju sa bazom, sessije itd. Kada mozes sve to da koristis iz CI jezgra bez ekstendovanja.

Eo npr...
Code:

Class My_Login {
     public $CI;

     function __construct(){
           $this->CI =& get_instance();   // Preuzeo si instacu po referenci sada mozes sa CI prpertijem da koristis sve dostupne biblioteke

            // U kontrolerima si pozivao bazu sa $this pokazivacem a posto si ovde preuzeo po referenci tvoj pokazivac je $CI.

           $CI->load->database();   // sto je u kontroleru $this->load->database();

            // Isto tako i dispach
           $CI->load->view("índex'', $data);    // sto bi bilo $this->load->view("índex'', $data); 

         
     }
}

Tvoja kasa ne extenduje nista a i ne bi trebala zato sto njihov base controller u konstruktoru pravi super objekat koji instancira sve klase a na tebi je samo da ga preuzmes po referenci.

Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

Lacke

Član broj: 174570
Poruke: 58
*.dynamic.isp.telekom.rs.



+7 Profil

icon Re: Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();31.07.2013. u 15:43 - pre 130 meseci
Hvala mnogo na odgovoru.
Znaci, koliko sam razumeo, u ovim slucaju se to self:: koristi samo zbog statickog propertija...

Razumem self, parent,... kada su u pitanju funkcije, metode u klasa i nacin pozivanja ali me ovde to bunilo...

Jos jednom, HVALA!
 
Odgovor na temu

verodostojan

Član broj: 252511
Poruke: 110
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();31.07.2013. u 21:06 - pre 130 meseci
@alfa-pro

Mozes li malo objasniti u kojim se konkretnijim primerima i za sta npr. koristi staticki property?
Za public property mi je jasno jer sam vec radio sa pagination,

Code:
$this->CI = &get_instance();

$config['total_rows'] = $this->CI->db->get('database')->num_rows();


Hvala unapred.
 
Odgovor na temu

[es] :: PHP :: Codeigniter Razlika izmedju self::$CI = & get_instance(); I $CI = & get_instance();

[ Pregleda: 3381 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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