![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam dość nietypowy problem.
Stworzyłem sobie rozszerzenie głównego kontrolera Controller we własnej klasie MY_Controller.php która jest umieszczona tak jak to mówi dokumentacja application/libraries. Klasa wygląda tak: Kod <?php class Controller extends Controller_Core { protected $db; public function __construct() { parent::__construct(); $this->db = Database::instance(); } /* * Prepare page content and show it on page */ public function prepare_page() { $view = new View('template'); $view->render(TRUE); } } ?> I teraz pytanie. po stworzeniu np. klasy main w folderze /controllers/main.php w pewnym momencie wywołuję metodę prepare_page(); Załóżmy, że klasa wygląda tylko tak (aby jak najprościej zademonstrować mój problem): Kod <?php defined('SYSPATH') or die('No direct script access.'); class Main_Controller extends Controller { public function index() { $this->prepare_page(); } } ?> Wynikiem tego jest wyświetlenie się strony view/template.php. I tak jest na trzech serverach, 2 windowsy i 1 openBSD. W czwartym, dystrybucyjnym (debian) jest problem, gdyż framework wyrzuca mi błąd że strona main nieistnieje. Jakby klasa main, nie potrafiła dziedziczyć. Co więcej.. Jeżeli przekopiuje z application/libraries/MY_Controller.php metodę prepare_page() do mojej klasy /controllers/main.php to wszystko działa jak należy. Nie mam pojęcia co się dzieję. Zaznaczę, że serwer ma najnowszą wersję php Kod wasyl@foch:~$ php --version PHP 5.2.8-0.dotdeb.1 with Suhosin-Patch 0.9.6.3 (cli) (built: Dec 11 2008 22:57:19) Czyli jeżeli klasa main wyglądać będzie jak poniżej, wszystko działa. Kod <?php defined('SYSPATH') or die('No direct script access.'); class Main_Controller extends Controller { public function index() { $this->prepare_page(); } /* * Prepare page content and show it on page */ public function prepare_page() { $view = new View('template'); $view->render(TRUE); } ?> Nie chcę za każdym razem, przy tworzeniu nowej klasy umieszczać w niej prepare_page(), chce aby ta metoda byla w glownym kontrolerze i byla dziedziczona. HELP Ten post edytował bfcior 8.01.2009, 23:32:27 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przecież tak zrobiłem. Jest to jasno i wyraźnie opisane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Można usunąć post, moje maluuuuuuuuuuuuuuuczkie niedopatrzenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował bfcior 26.01.2009, 23:24:27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 06:34 |