Czytam sobie właśnie quickstart'a o ZF i nie rozumiem jednej rzeczy.
Chodzi o index.php i bootstrap.php
Aby lepiej wytłumaczyć o co chodzi wkleję kod index.php i w miejscu includowania boostrapa, od razu też wkleję jego kod. Wyciąłem komentarze co by krócej było.
<?php require_once "Zend/Loader.php"; Zend_Loader::registerAutoload(); try { // require '../application/bootstrap.php'; kod bootstrapa wklejam poniżej // ############################################## $frontController = Zend_Controller_Front::getInstance(); $frontController->setControllerDirectory(APPLICATION_PATH . '/controllers'); $frontController->setParam('env', APPLICATION_ENVIRONMENT); Zend_Layout::startMvc(APPLICATION_PATH . '/layouts/scripts'); $view = Zend_Layout::getMvcInstance()->getView(); $view->doctype('XHTML1_STRICT'); $configuration = new Zend_Config_Ini(APPLICATION_PATH . '/config/app.ini', APPLICATION_ENVIRONMENT); $dbAdapter = Zend_Db::factory($configuration->database); Zend_Db_Table_Abstract::setDefaultAdapter($dbAdapter); $registry = Zend_Registry::getInstance(); $registry->configuration = $configuration; $registry->dbAdapter = $dbAdapter; // ############################################## } catch (Exception $exception) { echo '<html><body><center>' . 'An exception occured while bootstrapping the application.'; . '<div align="left">Stack Trace:' . '<pre>' . $exception->getTraceAsString() . '</pre></div>'; } } Zend_Controller_Front::getInstance()->dispatch(); ?>
W lini 18 tworzymy pierwszy raz Front Controller, robimy na nim dwa ustawienia, katalogu i zmiennej.
Następnie w linii 24 tworzymy obiekt View, też robimy jakieś ustawienia.
Tworzone są jeszcze obiekty konfiguracji i uchwyt do bazy danych.
[pisząc ten tekst powoli zaczynam chyba sam rozumieć, ale kontynuuję dalej co by dostać odpowiedź potwierdzającą czy dobrze rozumiem no i może dla potomnych się przyda]
I teraz obiekty konfiguracji i uchwyt do bazy są dodawane do Rejestru, ale FrontControler oraz View do rejestru dodane nie są, a mimo wszystko też są niszczone :/
Trochę byłem zmieszany tym, ale zacząłem szperać po API no i wymysliłem, że powód dla którego można skasować te obiekty jest taki, że zostały one utworzone na podstawie klas statycznych (Front na pewno).
I teraz czy dobrze sobie to tlumacze, ze z chwila zapoczątkowania przejścia przez aplikację (wchodzimy do index, itd., uruchmiamy parser php i adresowanie pamięci na podstawie kodu) odwołania do klas statycznych przy pomocy "::", bądź za pomocą singeltonowego obiektu takiej klasy i wykonywanie metod, ustawianie właściwości powodują zapisanie tych danych na poziomie klasy, która to ma przydzieloną swoją fizyczną pamięć?
No bo z obiektami normalnych klas, wiadomo, każdy obiekt to inna komórka pamięci. Dobrze to mniej więcej rozumuję

