Я работаю над пользовательской платформой и у меня есть пара вопросов о создании родительских классов в дочерних классах.
Я вставлю некоторые фрагменты кода, а затем перейду к вопросам
class CFrameWork {
private $applicationName = "Application Name";
function __construct($instance = "development") {
echo "Hello, I am the Parent and I have been constructed<BR />";
}
public
function startApplication() {
$this->checkMaintenanceMode();
if (!isset($_GET['query'])) {
$this->intialize();
} else {
// Call the appropriate controller
// Method and function are pulled from the query
// Code not displayed
// EDITS BELOW
if (method_exists($method, $function)) {
try {
call_user_func(array(new $method, $function), $this);
} catch (CFException $exp) {
$this->show404();
exit;
}
} else {
$this->show404();
exit;
}
}
}
}
Далее у нас есть класс контроллера
class childController extends CFrameWork {
function index() {
echo "Index Controller";
}
function register() {
echo "Registration Controller";
}
}
Теперь в index.php у меня есть
$application = new CFrameWork();
$application->startApplication();
Способ, которым эта платформа интерпретирует запросы:
localhost / childController / index - вызывает функцию index () в классе childController
localhost / childController / register - вызывает функцию register () в классе childController
и так далее ...
Так что вот моя забота. Родительский класс в этой среде создается дважды каждый раз, когда вызывается метод контроллера. Один раз - index.php (где создается исходное приложение), а затем контроллером, когда оно расширяется. Другими словами, CFrameWork :: __ construct () создается снова каждый раз, когда достигается метод контроллера.
Мои вопросы:
1) Имеет ли это какое-либо вредное влияние?
2) Можно ли этого избежать?
3) Любые предложения о том, как бы вы сделали это по-другому?