Jako, że głównie programowałem w C lub posługiwałem się gotowymi Frameworkami JS/PHP, to postanowiłem się nauczyć rdzenia PHP. W tym celu wybrałem sobie za cel stworzenie bardzo małego systemu CMS. Zacząłem od własnego Frameworka, by sobie zadanie nieco utrudnić. By nie marnować czasu na wymyślanie koła na nowo, bo i tak pewnie nie zrobię tego lepiej, to postanowiłem wzorować się na SilverStripe.
Jeszcze inna kwestia. Kiedyś chciałem stworzyć możliwość uruchamiania kodu PHP po stronie przeglądarki. Nie starczyło mi czasu i samozaparcia. Okazało się, że ktoś zrobił to za mnie, a łatka, by wszystko działało jest niesamowicie krótka! Tak więc postanowiłem, że mój Framework umożliwi posługiwanie się specjalnymi klasami, które będą wysyłać kod PHP do wykonania po stronie przeglądarki, a więc programista nie będzie musieć uczyć się JS! Tak dla zabawy, bo skoro jest NodeJS, to czemu nie spopularyzować PIB (PHP in Browser)? Napiszę np. klasę o nazwie document, która będzie singletonem i będzie udostępniać metodę __get, a po jej wywołaniu będzie zwracany specjalny obiekt o unikalnym numerze i posiadający metody __get i __call. Wywołanie __call także będzie coś robić, a potem taki stos będzie lecieć do przeglądarki. Tak przynajmniej planuję.
Jako, iż mój systemik obecnie dostarcza tylko podstawowy mechanizm ładowania kontrolerów, klas i podstawowy mechanizm szablonów. to czekam na ocenę - większy system trudniej będzie oceniać. Zacząłem się uczyć rdzenia PHP i te parę poświęconych dni czeka na ocenę ich pracy... a raczej ja czekam na ocenę mojej pracy.
Kod obecnie jest na GPLv3, bo uznałem, że nie mam czasu na zapoznawanie się z każdą licencją OpenSource, a jako iż w PHP tworzyłem komercyjne projekty, a w C, głównie dla zabawy, otwarto źródłowe, to wybrałem licencję, którą znałem. Nie mniej, jeżeli komuś zależy, to mogę ją zmienić.
Kod jest na GitHub-ie:
https://github.com/nintyfan/PHP-PIB-DemonicCMS