Witajcie,

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:
  1. # /app/controllers/controller_home.php
  2. var $components = array('Sidebar');
  3.  
  4. $this->Sidebar->count_articles();


Komponent:
  1. # /app/controllers/components/sidebar.php
  2. class SidebarComponent extends object {
  3. function startup(&$controller) {
  4. $this->controller = $controller; // Stores reference Controller in the component
  5. }
  6.  
  7. function count_articles() {
  8. $totalArticles= ClassRegistry::init('Articles')->count_total();
  9. $this->controller->set(compact('totalArticles'));
  10. }
  11. }


Model:
  1. class Articles extends AppModel {
  2.  
  3. var $useTable = 'articles';
  4.  
  5. function count_articles() {
  6. return $this->find('count');
  7. }
  8.  
  9. }



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.