Struktura folderów Magento

Większość osób z pewnością wie że Magneto jest oprogramowaniem służącym do prowadzenia sklepu internetowego. Jednak nie każdy zadaje sobie sprawę że jest to również potężna zorientowana obiektowo platforma programistyczna bazująca na Zend Framework.

Jednak struktura folderów Magento zupełnie nie przypomina tej z Zend Framework, co więcej jest ona różna od innych znanych z aplikacji MVC. Poniżej przedstawiamy drzewko folderów Magento wraz z jego objaśnieniem:

  • app: chyba najważniejszy folder z głównymi modułami, konfiguracją i tłumaczeniami. Podzielony jest on na:
    • code: folder zawierający moduły aplikacji, dzieli się on na:
      • community: moduły ściągnięte z platformy community,
      • core: główne moduły Magento,
      • local: moduły stworzone specjalnie na potrzeby danego wdrożenia,
    • design: folder zawierający zdefiniowane szablony Magento,
    • locale: folder zawierający tłumaczenia Magento i szablony emaili
    • etc: folder zawiera główną konfigurację jak zdefiniowane połączenie z bazą danych i definicję wszystkich zainstalowanych modułów,
  • js: zawiera wszystkie biblioteki JavaScript jakie wykorzystuje Magento,
  • media: tu składowane są wszystkie obrazki produktów, kategorii jak i pliki wgrywane za pośrednictwem edytora WYSIWYG. Ponadto Magento tworzy tu folder cache gdzie przechowuje wersje przeskalowane obrazków na potrzeby wyświetlania,
  • lib: zawiera biblioteki zewnętrzne, są to między innymi Zend Framework, biblioteki Varien i inne,
  • skin: miejsce w którym znajdują się publiczne pliki szablonów. Są to między innymi style css, i obrazki wykorzystywane w szablonie,
  • var: plik roboczy Magento, tu zapisywana jest między innymi pamięć podręczna systemu, pliki sesji i pliki eksportu i importu danych.

Każdy z modułów nieważne czy znajduje się w głównym folderze core, czy jest pobrany z platformy community czy napisany specjalnie dla sklepu misi mieć strukturę odpowiadającą poniższemu drzewu:

  • nazwa dostawcy
    • nazwa modułu
      • Block: zawiera bloki które wprowadzają w Magento dodatkową warstwę logiki pomiędzy kontrolerem a modelem,
      • Controller: zawiera standardowe kontrolery z modelu MVC
      • controllers: zawiera głównie klasy abstrakcyjne i interfejsy po których dziedziczą klasy kontrolerów,
      • etc: zawiera konfigurację modułu głównie config.xml i system.xml
      • Helper: zawiera helpery znane między innymi z Zend Framework,
      • Model: zawiera modele z modelu MVC
      • sql: zawiera pliki instalacyjne bazy danych każdego z modułów.