Tworzę nowy instalator rozszerzeń do systemu CMS, który ma za zadanie instalować, usuwać i aktualizować je. Teraz pytanie, czy:
1. Wprowadzić plik ze strukturą
Przykład: http://www.unit1.pl/pb-911
Plik zawiera informacje na temat tabel i pól, bloków menu, plików konfiguracyjnych... z uwzględnieniem zmian w kolejnych wersjach. Tylko czy w ten sposób nie ograniczę zakresu działań instalatora? Na podstawie tych informacji CMS instaluje, usuwa lub aktualizuje rozszerzenie z uwzględnieniem różnic w bazach danych. Zaletą jest to, że proces instalacji jest pod większą kontrolą.
2. Udostępnić uniwersalne API
Rozszerzenia zawierają 3 funkcje: Install(), Uninstall() i Update(). W CMS-ie są zdefiniowane stałe: DB_TYPE (MySQL lub SQLite), PLUGIN_VERSION (aktualna wersja rozszerzenia)... CMS udostępnia też trochę funkcji, np. do dodawania elementów do menu albo tworzenia plików konfiguracji.
PS. CMS obsługuje MySQL i SQLite