Moje moduły dla Kohana 3 i Koseven Framework

Kilka lat temu, podczas pracy nad aplikacjami internetowymi opartymi o Kohana Framework 3.3, stworzyłem zestaw modułów rozwiązujących problemy, z którymi regularnie spotykałem się w codziennej pracy. Zamiast implementować te same mechanizmy od nowa w każdym projekcie, postanowiłem wydzielić je do osobnych bibliotek i udostępnić jako otwarte oprogramowanie na GitHubie.
Choć Kohana Framework od wielu lat nie jest już rozwijany, jego społeczność stworzyła projekt Koseven Framework, który kontynuuje rozwój i utrzymanie frameworka. Większość poniższych modułów powinna działać również z Koseven, dzięki czemu nadal mogą znaleźć zastosowanie w istniejących projektach oraz podczas utrzymywania starszych aplikacji.
Poniżej znajduje się lista modułów, które stworzyłem.
| Nazwa | Opis | Repozytorium |
|---|---|---|
| regexp | Rozbudowana obsługa wyrażeń regularnych ułatwiająca pracę z tekstem i walidacją danych. | https://github.com/dariuszrorat/regexp |
| filtration | System filtrowania i transformacji danych według zdefiniowanych reguł. | https://github.com/dariuszrorat/filtration |
| oauth | Logowanie użytkowników za pomocą OAuth (Facebook oraz Steam). | https://github.com/dariuszrorat/oauth |
| sentinel | Prosty strażnik bezpieczeństwa wykrywający podejrzane lub zainfekowane pliki PHP. | https://github.com/dariuszrorat/sentinel |
| ko3-cache | Dodatkowe sterowniki cache wykorzystujące MongoDB, Redis oraz SSDB. | https://github.com/dariuszrorat/ko3-cache |
| Eksport danych i generowanie dokumentów PDF. | https://github.com/dariuszrorat/pdf | |
| orm | Alternatywny moduł ORM oparty na encjach, ułatwiający pracę z bazą danych. | https://github.com/dariuszrorat/orm |
| antiflood | Ochrona aplikacji przed atakami typu Flood i prostymi formami spamu. | https://github.com/dariuszrorat/antiflood |
| ko3-session | Obsługa sesji z wykorzystaniem plików, Redis oraz SSDB. | https://github.com/dariuszrorat/ko3-session |
| scraper | Biblioteka do pobierania i analizowania danych ze stron internetowych (web scraping). | https://github.com/dariuszrorat/scraper |
| ocr | Rozpoznawanie tekstu na obrazach (OCR). | https://github.com/dariuszrorat/ocr |
| ko3-error-report | Automatyczne wysyłanie raportów o błędach aplikacji na adres e-mail administratora. | https://github.com/dariuszrorat/ko3-error-report |
| mongo | Moduł integrujący aplikację z bazą danych MongoDB. | https://github.com/dariuszrorat/mongo |
Dlaczego powstały te moduły?
Większość z nich powstała jako odpowiedź na konkretne potrzeby rozwijanych przeze mnie projektów. Zależało mi przede wszystkim na prostocie integracji, możliwości ponownego wykorzystania kodu oraz łatwej rozbudowie. Dzięki temu nowe funkcjonalności można było dodawać do kolejnych aplikacji praktycznie bez dodatkowej pracy.
Znajdują się tutaj zarówno niewielkie biblioteki ułatwiające codzienne programowanie, jak i bardziej rozbudowane komponenty odpowiedzialne za bezpieczeństwo, komunikację z bazami danych, autoryzację użytkowników czy generowanie dokumentów.
Kohana nadal żyje
Choć oficjalny rozwój Kohana Framework zakończył się wiele lat temu, framework nie zniknął całkowicie. Jego duch jest kontynuowany przez projekt Koseven Framework, rozwijany przez niewielką, ale zaangażowaną grupę programistów. W praktyce oznacza to, że osoby utrzymujące starsze aplikacje nadal mogą korzystać z nowoczesnych wersji PHP i rozwijać swoje projekty bez konieczności pełnej migracji do innego frameworka.
Ekosystem Koseven jest znacznie mniejszy niż w czasach świetności Kohany, dlatego wiele potrzebnych komponentów trzeba tworzyć samodzielnie. Właśnie z tego powodu zdecydowałem się udostępnić własne moduły jako projekty open source.
Mam nadzieję, że choć część z nich okaże się przydatna osobom, które nadal rozwijają aplikacje oparte na Kohanie lub Koseven. Jeśli któryś z modułów ułatwi komuś pracę albo stanie się inspiracją do stworzenia własnego rozwiązania, to będzie to dla mnie najlepsza nagroda za ich opublikowanie.