ostatnio grzebie sobie w php i napotkałem mały problem.
Zrobiłem sobie plik główny który odpowiada za ładowanie podstron i podstawianie do szablonu (Smarty). Działa okej, ale pliki podstron są .php i w nich odwołuje się do klasy. Problem w tym, że w każdym pliku podstrony muszę znowu deklarować moją klasę i wczytać jej pliki.
Core.php
<?php require_once('libs/Smarty.class.php'); class Core extends Smarty{ function __construct() { parent::__construct(); } function pageDefine(){ return true; } function sprawdzCzyIstniejeStrona($nazwaStrony){ return true; } else { return false; } } function loadPage($nazwaStrony){ if($this->sprawdzCzyIstniejeStrona($nazwaStrony)){ $this->pageDefine(); require_once('page/'.$nazwaStrony.'..php'); $this->display($nazwaStrony.'.tpl'); }else{ $this->display('error404.tpl'); } } function add($nazwa, $param){ return $this->assign($nazwa, $param); } } ?>
index.php
<?php require('system/Core.class.php'); $Core = new Core; //$Core>force_compile = true; $Core->debugging = true; $Core->caching = false; $Core->cache_lifetime = 120; $stronaDoWczytania = 'glowna'; $Core->loadPage($stronaDoWczytania); ?>
stronaA.php
<?php require_once('system/Core.class.php'); // <--- o to chodzi, na każdej podstronie muszę to dodawać. $Core = new Core; if(PAGE_DEFINE == true && PAGE_ID == 69){ $Core->assign('info', 'dziala'); }else{ } ?>
Czy jest jakiś sposób, abym w każdym pliku podstrony nie musiał dodawać tej deklaracji?