Wrzuciłem do Przedszkola, bo chyba tutaj się taki temat nadaje.
Rozpocząłem naukę CakePHP (Zend będzie potem, nie wiem czemu nie mogę się przekonać do Symfony). No i standardowo, mam pytania. Kilka ich, ale najważniejsze jest istotą tego tematu. No to jedziem.
Mam layout, który składa się z trzech kolumn, w bocznych kolumnach są bloki (statystyki, etc.), generalnie, generowane przez dane z bazy danych. Kolumny te, są widoczne na każdej postronie.
Więc, żeby nie powtarzać kodu wymyśliłem coś takiego (Sidebar to nazwa komponentu): stworzyłem komponent o wspomnianej nzwie Sidebar, w nim inicjuję potrzebne modele i ich funkcje, czyli generalnie modele pobierają dane przekazują je do tego komponentu a ten umieszcza je w widoku. Dla pewności, trochę kodu:
Kontroler:
# /app/controllers/controller_home.php $this->Sidebar->count_articles();
Komponent:
# /app/controllers/components/sidebar.php class SidebarComponent extends object { function startup(&$controller) { $this->controller = $controller; // Stores reference Controller in the component } function count_articles() { $totalArticles= ClassRegistry::init('Articles')->count_total(); } }
Model:
class Articles extends AppModel { var $useTable = 'articles'; function count_articles() { return $this->find('count'); } }
Pytanie moje jest powiązane z fragmentem kodu w kontrolerze. Mam juz tych bloków trochę i w kontrolerze już troche linijek. Czy przyjąłem dobrą metodę? Czy jest może jakaś prostsza, bardziej ergonomiczna, wydajna?
Pozdrawiam
A.