2008-10-20 13 views
31

Pracuję nad niestandardowym CMSem na własny użytek i zastanawiałem się nad wdrożeniem systemu wtyczek, dzięki czemu mogłem nieco rozszerzyć kod. Mam jednak problem z koncepcją architektury i układu.zbudować system wtyczek z php

Wiem, że mogłem przejść przez kilka programów o otwartym kodzie źródłowym, które implementują podobne funkcje, ale jest to akurat akademickie w tym momencie, więc naprawdę nie chcę spędzać zbyt wiele czasu na wykryciu obcego kodu.

Czy ktoś ma jakieś dobre pomysły, jak postępować? Jeśli ktoś mógłby nakreślić, że niektóre z bardziej popularnych programów to będą idealne.

+0

Czy możesz podać własne spostrzeżenia dotyczące tego pytania? Minęło trochę czasu, odkąd zadałeś to pytanie i chciałbym wiedzieć, jakie są najważniejsze aspekty, których nauczyłeś się na podstawie własnych doświadczeń pisania niestandardowych CMSów php. –

Odpowiedz

31
  1. Zdefiniuj funkcjonalność chcesz wtyczki do podłączenia do (czyli to, co będą robić i na co)
  2. Definiowanie hierarchii klas, na których wtyczki pasował, podobnie jak wszystkie artykuł maglowania wtyczek powinny dziedziczyć ArticleMangler
  3. Zdefiniuj fizycznej lokalizacji dla wtyczek, jak/plugins
  4. importu wszystkich wtyczek obecnych w miejscu
  5. użyć jednej Decorator lub Observer wzorce do wstrzyknąć zachowanie wtyczki lub do powiadamiania wtyczek z występowaniem zdarzeń. Strategy może również mieć zastosowanie w niektórych przypadkach.

PHP sprawia, że ​​jest to dość łatwe z potencjalnymi kosztami robienia bałaganu, jeśli nie jesteś ostrożny. Podoba mi się metoda Observer, w której wtyczki rejestrują się w menedżerze wtyczek, który powiadamia ich o tym, co się stało i czeka na ich działanie.

Jeśli nie ufasz wtyczkom, musisz dodać kontrolę nad zdarzeniami, na które chcesz zezwolić.

+0

Dla osób zainteresowanych, tutaj jest [lista najczęściej używanych wzorców projektowych] (https://github.com/domnikl/DesignPatternsPHP). – tleb