![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
jako że zawodowo od kilku lat zajmuje się PHP od czasu do czasu siadam do czegoś, od tak dla poszerzenia wiedzy z zakresu programowania. Od kilku lat planowałem napisać framework w i końcu się przemogłem przy okazji chciałem poznać torchę NAMESPACE. Framework tworzę raczej dla swoich potrzeb. I tutaj pytania do was: 1) Co sądzicie na temat mojego "dzieła"? 2) Co sądzicie na temat architektury? 3) Co byście zmienili? 4) Czy łatwo się w nim połapać? Celowo dodaje framework z okrojoną dokumentacją kodu, poztym jest on w bardzo wczesnej fazie rozwoju dlatego nie ma tam zbyt wiele chciałbym usłyszeć opinię na temat samego mechanizmu (w przyszłości będzie wdrożony ORM, Twig i kilka bibliotek pomocniczych np. do wysyłania maili). Framework polecam odpalić s kilkoma parametrami http://adres/test/test1?get=1 (dla wypełnienia tablicy routing i get). Na tyle ile mogłem starałem się uciec od podobieństw do Synfony. Pozdrawiam i z niecierpliwością czekam na ocenę. http://speedy.sh/rg9wu/se-0.4.zip |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 306 Pomógł: 42 Dołączył: 25.03.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Od kilku lat planowałem napisać framework w i końcu się przemogłem przy okazji chciałem poznać torchę NAMESPACE. I to się chwali, tylko uważaj, zaraz zlecą się mapety z tekstem "po co, skoro już jest". A jeśli chcesz bardziej poznać NS, bo np. nie masz pojęcia dlaczego działają one w PHP tak a nie inaczej, popatrz jak to jest zrobione w GTK+ (przejrzyj tylko dokumentacje, nie musisz się zagłębiać), a wszytko się wyjaśni i stwierdzisz że PHP ma najprostszy mechanizm (IMG:style_emoticons/default/biggrin.gif) Cytat Na tyle ile mogłem starałem się uciec od podobieństw do Synfony. Pozdrawiam i z niecierpliwością czekam na ocenę. Z powodu? Cytat Framework polecam odpalić s kilkoma parametrami http://adres/test/test1?get=1 (dla wypełnienia tablicy routing i get). Nigdy nie lubiłem mieszania, w ogóle używania getów... dlatego we własnym FW całkowicie z tego zrezygnowałem. Jak określasz routing? Wrzuć to w wersji online + źródła na github. ps. jest jakaś wersja online github np. lite? Czasami przeglądanie źródłem jest strasznie spowolnione (opcja wyłączenia JS już nie działa). Ten post edytował !*! 26.09.2012, 07:43:56 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A skąd pomysł na JSON ?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
JSON wybrałem z powodu prostoty, pozatym trąbi się dookoła że niedługo wszystko na JSON-ie będzie bo odchodzą od XML-a (głównie w przypadku małych rozwiązań). A uciekałem od symfony żeby nie mnożyć schematu. Ok wrzucę na githuba jak tylko znajdę chwilę czasu.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak już będzisz rozwijał swoj FW to postaraj się zrobić kilka driverów do obsługi różnych typów configu. (patrz. Zend)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jak już będzisz rozwijał swoj FW to postaraj się zrobić kilka driverów do obsługi różnych typów configu. (patrz. Zend) Myślałem o tym żeby w przyszłości obsługiwał też XML-e i YML-e podobnie jak w przypadku innych FW. Github: http://github.com/nivius/SparcEngine podgląd: http://marcin.webframe.pl/ przypominam że nie ma tam za wiele. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
- nie musisz kodu klasy obejmować w klamry{} gdy tworzysz namespace, wystarczy domknięcie
Przejrzałem kilka plików, trzymasz się PSR-0/1/2? I szczerze mówiąc to... nie widzę tam FW. - korzystaj z spl loadera, a nie __autoload - pliki konfiguracyjne zapisuj jako PHP. mysql.json zostanie odczytany jako plik tekstowy.
Tak ma wyglądać plik każdej aplikacji? Nie nazwałbym tego FW, ale pracuj dalej. I popracuj też nad nazwami zmiennych, plików itd. W powyższym kodzie, nic mi nie mówi zmienna/klasa $index a rzekomo wczytuje CFG. Ten post edytował !*! 26.09.2012, 10:03:40 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
- nie musisz kodu klasy obejmować w klamry{} gdy tworzysz namespace, wystarczy domknięcie
Przejrzałem kilka plików, trzymasz się PSR-0/1/2? I szczerze mówiąc to... nie widzę tam FW. - korzystaj z spl loadera, a nie __autoload - pliki konfiguracyjne zapisuj jako PHP. mysql.json zostanie odczytany jako plik tekstowy.
Tak ma wyglądać plik każdej aplikacji? Nie nazwałbym tego FW, ale pracuj dalej. I popracuj też nad nazwami zmiennych, plików itd. W powyższym kodzie, nic mi nie mówi zmienna/klasa $index a rzekomo wczytuje CFG. Nie aplikacje będą bardzo podobne do klas zawartych /core/, i będą one wywoływane na podstawie routingu. Tak zamierzam zrezygnować z autoload, a jesli chodzi o pliki json, to nie otworzysz ich ponieważ htaccess nie pozwala. Klasa index jest raczej przykładowa (dla potrzeb pokazania struktury ) Ten post edytował nivius 26.09.2012, 10:10:20 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
a jesli chodzi o pliki json, to nie otworzysz ich ponieważ htaccess nie pozwala Czasami są przypadki gdzie takiego pliku nie ma i/lub nie może zostać utworzony, co wtedy? Narysuj główny trzon FW na kartce, i rób do niego dodatki, ale nie opieraj całego FW o nie same. Ten post edytował !*! 26.09.2012, 10:14:50 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Zamiast __autoload daj spl_autoload_register()
namespace Core\Data\Common bez sensu, get i post w niczym nie pomagają. session_name('SparcEngine'); session_start(); Gdzie jakiekolwiek zabezpieczenie sesji? Masa pustych folderów, trudno tu coś oceniać. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
W pliku Init.inc.php masz costakiego:
Zamiast echo rzuć wyjatek. No właśnie nie mam pomysłu jak obsługiwać błędy czy osobno w każdej klasie czy w tylko wyrzucać wyjątek i obsługiwać go w indeksie? I czy spotkał się ktoś z was z czymś takim że jak się popełni błąd np. składni żeby obsłużyć go samemu a nie żeby się skrypt wysypywał? Zamiast __autoload daj spl_autoload_register() namespace Core\Data\Common bez sensu, get i post w niczym nie pomagają. session_name('SparcEngine'); session_start(); Gdzie jakiekolwiek zabezpieczenie sesji? Masa pustych folderów, trudno tu coś oceniać. No pisałem wyżej żę to bardzo wczesna wersja. Docelowa klasa get i post mają przechowywać zabezpieczone dane żeby uniknąć np. "wstrzyknięć". A co do pustych folderów wraz z rozwojem będę aktualizoswał na GH. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Na powyższym przykładzie:
Hehe nie do końca o to mi chodziło. To jedna z opcji druga to taka że nie ma bloku try catch, tylko jest samo throw new Exception, a index posiada blok try catch |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Żeby oceniać architekturę przydałyby się jakieś diagramy, schematy, nie będziemy przecież po źródłach patrzeć (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Ja tam nic nie widzę, 2 klasy z 1,2 metodami (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 1 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja tam nic nie widzę, 2 klasy z 1,2 metodami (IMG:style_emoticons/default/smile.gif) No wyżej napisane że to dopiero początek. Wstawiłem nowego gita, ten będzie aktualizowany: https://github.com/nivius/SparcEngine-0.4 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 20:13 |