Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [framework] oparty MVC
Forum PHP.pl > Inne > Oceny
splatch
Będę wdzięczny za oceny, opinie i uwagi odnośnie kodu frameworka - http://framework.dywicki.pl (przykładowy webapp w katalogu Example).
sf
Kod ładny. Teraz pytanie jak się sprawdzi przy pisaniu aplikacji winksmiley.jpg
splatch
Któryś raz z kolei widzę taką odpowiedź.. smile.gif, problem w tym, że kod jest mocno rozgrzebany (mimo, że być może bardzo tego nie widać), co uniemożliwia napisanie aplikacji, do tej pory nie rozwiązałem też problemu z widokami, a jeszcze większym destruktorem kodu jest pojawianie się nowych koncepcji. smile.gif
sf
Tu też pojawia się problem z analizą. Np. przydałyby się jakieś schematy UML.

Np. w DatabaseManage widzę coś takiego w konstruktorze jak : ServiceLocator - nie umiem tego znaleźć, gdzie to jest zdefiniowane, albo ReflectionClass.

DatabaseManager ma przechowywać obiekty klasy PDODatabase? Jeśli nie to jaki jest jego cel?

Osobiście wolałbym stworzyć PDODatabase jako singleton dziedziczący po PDO. W metodzie getInstance jako argument podawałoby się DSN. Aktualnie zwracasz obiekt PDO... gdybś to zrobił tak jak ja podałem mógłbyś np. dodać obsługę logowania wykonywanych zapytań, albo liczenie czasu wykonania poszczególnego zapytania.

Co do widoku.. kiedyś chciałem to zrobić globalnie, ale w pewnym momencie zdecydowałem się, że klasa odpowiedzialna za widok jest tworzona w samej akcji.. to akcja decyduje co i w jaki sposób zostanie wyświetlone. Jest to dość elastyczna metoda.
splatch
DatabaseManager pełni funkcję fabryki tzn - tworzy obiekty, nie ważne jakiego drivera, czy PDO czy AdoDB czy czegoś innego. Moim celem nie jest pisanie kolejnej abstrakcji. DatabaseManager nie interesuje się implementacją, logowaniem etc. ponieważ jest niezależny od ado. Mam na to troszkę inną koncepcję, ale postaram się to rozważyć i przemyśleć.

Akcja decyduje tylko połowicznie o widoku. Chcę rozwiązać problem tak by można było zmieniać format outputu bez ingerencji w kod akcji. Jestem na dobrej drodze by to zaimplementować, gdy to zrobię uporządkuję, udokumentuję kod i wydam wersję stable.. z przykładami smile.gif

Przykład zmiany outputu:
http://foo.bar/Module/Action.form - zwykły html
http://foo.bar/Module/Action.form.pdf - pdf
http://foo.bar/Module/Action.form.xsl - excel
Dla niestandardowych typów wyników trzeba oczywiście dopisać klasy pośredniczące, ale wystarczy dorzucić plik z tą klasą i framework automatycznie dopuszcza możliwość wygenerowania powiedzmy PDFa, bez niepotrzebnego tworzenia i powielania akcji.
sf
Właśnie sam miałem problem w przypadku gdy chciałem zmienić rodzaj outputu np. na plik pdf. Do dziś nie wiem jak to ładnie zrealizować, dlatego zrobiłem tworzenie widoku w akcji..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.