Ostatnio przymierzam się do napisania własnego frameworka.
Część problemów już rozgryzłem, trochę pewnie pojawi się przy pisaniu, ale nie w tym rzecz.
1. Od czego najlepiej zacząć?
Czy zacząć pisanie od jakiegoś elementu całego systemu, czy też najpierw najlepiej zaprojektować całą podstawową strukturę na papierze? Chodzi mi szczególnie o to, że przy pisaniu może się okazać, że jedna klasa kożysta kolejnej, ta z jeszcze innej, itd. i utworzy się błędne koło, czago chcę uniknąć.
2. Do jakich elementów przywiązać szczególną uwagę?
Planuję zastosować wzorzec MVP (Model-View-Presenter - różni się nieco od MVC). Do tego kombinuję nad jakimś logicznym systemem routingu i obsługiwaniu http request i response, a co za tym idzie URI, parametry URL, itd. Auto-loading chyba oczywisty, konfigurację chcę oprzeć na wzorcu Registry. Na co uważać?
3. Wywoływanie kontrolerów
Przez funkcję call_user_func_array(), "manualnie" przez $obiekt->$metoda(), czy funkcją podobną do call_user_func(), znajdującą się w klasie-rodzicu?
4. Modułowość klas
Chodzi o to, że chcę, aby istniała np. klasa DB, która korzystałaby z innych klas-sterowników dla różnych baz danych, np. mysql, postgresql, czy sqlite.
Czy wczytywać sterowniki przez parametr konstruktora klasy DB, czy też przekazywać je jako obiekty?
5. Namespace i hierarchiczny system plików
Czy to dobry pomysł? Planuję zrobić to tak, że np. klasa znajduje się w katalogu: /base/classes/db/mysql.php i wtedy stosować dla niej namespace db (nazwa katalogu w którym się znajduje). Wydaje mi się, że byłoby to dobrym rozwiązaniem dla auto-loadingu, a może nie?
I to byłoby chyba tyle na tę chwilę. Jeśli będę miał jeszcze więcej pytań, to będę je zadawał w tym temacie, żeby nie śmiecić za bardzo.
Z góry dziękuję za wszystkie odpowiedzi.