🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
4 messages
4 total messages Started by jivanmukta Sun, 13 Jul 2014 15:18
parent::__construct() w modelach aplikacji CodeIgniterowych
#230467
Author: jivanmukta
Date: Sun, 13 Jul 2014 15:18
24 lines
1868 bytes
Napisałem tak:

<?php
class Bazowa {
	public function __construct() {
		echo 'Bazowa';
	}
}
class Pochodna extends Bazowa {
}
$obiekt = new Pochodna();		

i wyświetliło się: Bazowa. Czyli konstruktor jest widoczny w klasie Pochodna.
Dlaczego w takim razie w przykładowych aplikacja CodeIgnitera programiści wołają konstruktor klasy bazowej CI_Model:

class Sample_model extends CI_Model {
	public function __construct() {
		parent::__construct();
	}
        ...
}

Przecież konstruktor Sample_model::__construct w ogóle nie jest potrzebny!
Proszę o wytłumaczenie.
Re: parent::__construct() w modelach aplikacji CodeIgniterowych
#230468
Author: Kviat
Date: Sun, 13 Jul 2014 18:29
52 lines
2307 bytes
W dniu 2014-07-13 17:18, jivanmukta@poczta.onet.pl pisze:
> Napisałem tak:
>
> <?php
> class Bazowa {
> 	public function __construct() {
> 		echo 'Bazowa';
> 	}
> }
> class Pochodna extends Bazowa {
> }
> $obiekt = new Pochodna();		
>
> i wyświetliło się: Bazowa. Czyli konstruktor jest widoczny w klasie Pochodna.
> Dlaczego w takim razie w przykładowych aplikacja CodeIgnitera programiści wołają konstruktor klasy bazowej CI_Model:
>
> class Sample_model extends CI_Model {
> 	public function __construct() {
> 		parent::__construct();
> 	}
>          ...
> }
>
> Przecież konstruktor Sample_model::__construct w ogóle nie jest potrzebny!
> Proszę o wytłumaczenie.

Bo możesz zrobić tak:

class Sample_model extends CI_Model {
	public function __construct() {
                 cośtamcośtam....
		parent::__construct();
	}
          ...
}

albo tak:

class Sample_model extends CI_Model {
	public function __construct() {
		parent::__construct();
                 cośtamcośtam....
	}
          ...
}

Czyli w konstruktorze potomka zrobić coś przed wywołaniem konstruktora 
rodzica, albo po.

Pozdrawiam
Piotr
Re: parent::__construct() w modelach aplikacji CodeIgniterowych
#230469
Author: Kviat
Date: Sun, 13 Jul 2014 18:33
14 lines
1604 bytes
W dniu 2014-07-13 17:18, jivanmukta@poczta.onet.pl pisze:

> Przecież konstruktor Sample_model::__construct w ogóle nie jest potrzebny!
> Proszę o wytłumaczenie.

A, i jeszcze jedno.
Zapewne przykład z Sample_model ma służyć początkującym jako "baza" czy 
podstawa szkieletu do własnej zmiany i wtedy takie przykładowe wywołanie 
konstruktora rodzica ma sens ze względów powiedzmy dydaktycznych... :)
Tak strzelam.

Pozdrawiam
Piotr
Re: parent::__construct() w modelach aplikacji CodeIgniterowych
#230470
Author: xantiros
Date: Mon, 14 Jul 2014 09:21
34 lines
2160 bytes
W dniu 2014-07-13 17:18, jivanmukta@poczta.onet.pl pisze:
> Napisałem tak:
>
> <?php
> class Bazowa {
> 	public function __construct() {
> 		echo 'Bazowa';
> 	}
> }
> class Pochodna extends Bazowa {
> }
> $obiekt = new Pochodna();		
>
> i wyświetliło się: Bazowa. Czyli konstruktor jest widoczny w klasie Pochodna.
> Dlaczego w takim razie w przykładowych aplikacja CodeIgnitera programiści wołają konstruktor klasy bazowej CI_Model:
>
> class Sample_model extends CI_Model {
> 	public function __construct() {
> 		parent::__construct();
> 	}
>          ...
> }
>
> Przecież konstruktor Sample_model::__construct w ogóle nie jest potrzebny!
> Proszę o wytłumaczenie.
>

A co tu tłumaczyć,

Każda klasa ma swój konstruktor, tutaj wyraźnie zaznaczono iż jeśli byś 
dziedziczył po CI_Model i chciał mieć własny konstruktor, koniecznie w 
nim musisz wywołać konstruktor CI_Model aby wszystko działało jak należy 
:D, jeśli nie używasz w swojej klasie konstruktora to nie musisz tego 
kodu umieszczać, gdyż domyślnie zostanie wywołany konstruktor rodzica.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads