![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Witam,
prosił bym o opinie na temat najnowszej wersji mojego FW. Konkretnie interesuje mnie wasze zdanie co byście w nim chcieli jeszcze zobaczyć lub zmienić aby jeszcze przyjemniej się w nim pisało. Jako że zabieram się za pisanie polskiej dokumentacji, interesuje mnie co wydaje wam się niejasne, trudne do zrozumienia w tutorialu na stronie. Wiem że obecnie to bardziej zbiór przykładowych kodów, ale i tak jestem ciekaw czy coś pominąłem co dla osoby która nigdy nie pisała w fw może być niezrozumiałe. http://spawnframework.com/ Tak, wiem, nie ma testów jednostkowych. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Full integrate Spawn Framework with Twitter Bootstrap Co ma TB do FW w PHP? o0 W dokumentacji brakuje podglądu plików (tak wiem, że jest GIThub, ale on zamula). Zamiast phpdoc, polecam http://apigen.org/ I zależy też w jaką grupę celujesz z tym FW. Ten post edytował !*! 27.04.2013, 12:01:13 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Ja jestem podobnego zdania co przedmówca.
Moim zdaniem framework nie powinien dostarczać takich rzeczy jak integracja Twitter Bootstrap. (jeżeli już to np w formie jakiejś usługi) Owszem powinien być dostosowany w ten sposób, aby taka integracja była łatwa i przyjemna ale samą integracją powinien się już zając developer używający frameworka. Mi nie brakuje podglądu plików, github w zupełności wystarcza i w ogóle to lubię githuba i często z niego korzystam. @up Widzę, że nie tylko ja bardziej przepadam za ApiGen niż phpDoc Od siebie dodam, że może warto byłoby pomyśleć o jakimś mechaniźmie modułów / pluginów coś jak moduły zenda lub bundle symfony. Coś co znacznie ułatwi prowadzenie kilku projektów wykorzystując te same / podobne mechanizmy. No i oczywiście to co już sam podkreśliłeś brakuje mi testów jednostkowych Ten post edytował mstraczkowski 27.04.2013, 14:16:19 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Cytat I zależy też w jaką grupę celujesz z tym FW. Małe-średnie projekty. Czyli firmy robiące masowo strony, freelancerzy, firmy z małymi zespołami programistów do wewnętrznych projektów typu crm. Czemu zdecydowałem się w najnowszej wersji zintegrować FW z TB? Aby można było zaraz po pobraniu przystąpić do tworzenia projektu. Większość, jeśli nie każdy fw narzuca własne szablony html i nazewnictwo klas w css. Jednak nie każdy dostarcza sam szablon css (chyba talko yii), przez co zanim ruszmy z programowaniem musimy tracić czas na dostosowanie się do nazewnictwa danego fw. Jako że w Spawn 2 postanowiłem zamiast tworzyć własnych nazw, dostosować szablony pod TB. Uznałem że najlepszym wyjściem będzie też dostarczenie samego TB jako dodatku do fw. ApiGen pobawię się w wolnej chwili, nie korzystałem jeszcze z niego. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zaraz zaraz... który framework narzuca korzystanie z danych reguł CSS O_O ?
// EDIT @Spawnm, celem frameworków raczej jest wygodny sposób na wdrażanie swoich modułów i wygodne korzystanie z już istniejących. Według mnie powinieneś skupić się raczej na stworzeniu możliwości łatwej implementacji takich rzeczy. Wiadomo, że w frameworkach istnieją już gotowe moduły do takich rzeczy jak ACL, routing, kontrolery itp. ale takie rzeczy już w nich są z definicji frameworka i upychanie do funkcjonalności server-side rzeczy należących do client-side jest złym pomysłem (zwłaszcza, że implementacja frameworków CSS / JS itp. to po prostu wrzucenie pliku do folderu i dodanie linijki w szablonie) Ten post edytował pyro 27.04.2013, 16:35:28 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wiem że obecnie to bardziej zbiór przykładowych kodów, ale i tak jestem ciekaw czy coś pominąłem co dla osoby która nigdy nie pisała w fw może być niezrozumiałe. Np Przykładowa aplikacja z wykorzystaniem frontend i backend. |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Przyznam że jestem w szoku że wszyscy się czepili dodania TB aby ułatwić/przyśpieszyć start w szybkim tworzeniu projektów (IMG:style_emoticons/default/biggrin.gif)
Cytat Od siebie dodam, że może warto byłoby pomyśleć o jakimś mechaniźmie modułów / pluginów coś jak moduły zenda lub bundle symfony. Obecnie istnieje coś takiego ja wielopoziomowe kontrolery. Bajer z ładowaniem osobnej architektury mvc jako plugin/moduł za jakiś czas się pojawi. Obecnie zastanawiam się nad najlepszym rozwiązaniem. @memory - dobry pomysł. Czekam na dalsze uwagi (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Skoro już wszyscy są tak na nie dla TB, to ja osobiscie uważam, że tak stwierdził mstraczkowski TB raczej powinno być jako opcja, nie jako standard, bo owszem dla przeciętnego Kowalskiego może i to okazać sie pomocnę, ale chyba nie zakładasz, że tylko wsród nich znajdziesz swoich odbiorców, bo framework ma narzucać jakiś szkielet do budowy projektów, ale front-end jest zupełnie oddzielnym aspektem, którego raczej nie zawiera sie w architekturze frameworka, jednakże nie jestem aż tak na nie jak moi koledzy wyżej, powiem tak ja osobiście na twoim miejscu wypuściłbym np. 2 wersje, jedną bez narzuconej architektury front-endowej i drugą z TB skoro już przygotowałeś pod niego SF (IMG:style_emoticons/default/wink.gif) Wtedy zarówno laik jak i ktos bardziej doświadczony, któremu przykładowo TB nie przypadł do gustu, z niego skorzysta (IMG:style_emoticons/default/wink.gif) Takie rozwiązanie jak zaproponowałem wypuścił np ZF w wersji 2.x, w sekcji do nauki jest TB( https://github.com/zendframework/ZendSkeletonApplication ), ale oficialna wersja jest jednak bez( https://github.com/zendframework/zf2 ) (IMG:style_emoticons/default/wink.gif)
Ten post edytował com 27.04.2013, 20:04:21 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Ciekawa propozycja, przyznam że nie śledzę zf2 i jestem trochę w szoku (IMG:style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Jako użytkownik twojego FW, chciałbym mięć możliwość pre-konfiguracji z możliwością dodania bootstrap i BOILERPLATE
Jak na stronie http://www.initializr.com/ |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Poza głównym tematem, gdy wybierzemy stronę http://spawnframework.com/doc/ a następnie zakładkę "Files" i na przykład plik Arr.php to serwer zwraca 403.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja mogę się przyczepić do... błędów językowych. Angielski kuleje, i to bardzo. Więc na pewno dobrym pomysłem jest to o czym autor wspomniał na początku - polska dokumentacja. Choć i tam, sądząc po błędzie na stronie autora, nie zabraknie choćby literówek.
Poza tym, FW bardzo podobny do mojego autorskiego rozwiązania stosowanego u nas w firmie (i kilku innych) od kilku lat, aczkolwiek moje rozwiązanie stawia na maksymalną prostotę. I nienawidzę namespaces... (IMG:style_emoticons/default/wink.gif) Chyba czas, by swoje "dzieło" też wystawić publicznie... |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat I nienawidzę namespaces Tylko w PHP? To najlepsze co może być w programowaniu obiektowym. @Spawnm - co to w zasadzie jest za klasa "firewall"? Przyczepiłbym się też do nawyków z PHP4, do podkreślnika przy metodach private/protected np. Cytat _setBackground _setText _size Stary, niepotrzebny nawyk ;) rzuć też okiem na PSR-* |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Namespace są fajne, co wy chcecie (IMG:style_emoticons/default/smile.gif)
@!*! - firewall służy do tworzenia prostych zapór dla kontrolerów i akcji. Jeśli tworzysz np. admin panel składający się z 9 kontrolerów, to aby nie musieć w 9 kontrolerach pisać $auth->isValid itd. wystarczy że dodasz jednego seta do firewalla dla 'admin'. Cytat Przyczepiłbym się też do nawyków z PHP4, do podkreślnika przy metodach private/protected Pierwsze słyszę aby to był nawyk z php4, spotkasz ten standard w wielu językach. Dzięki takiemu nazewnictwu kod jest czytelniejszy. @reszta - zachęcam do komentowania samego fw, strona będzie nowa (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pierwsze słyszę aby to był nawyk z php4, spotkasz ten standard w wielu językach. Dzięki takiemu nazewnictwu kod jest czytelniejszy. W php 4 nie było odpowiednich flag dostępu, dlatego ktoś wpadł na pomysł, aby je odróżniać poprzez "_" na początku nazwy metody, tak jeszcze do niedawna działał chociażby router w CI. Dzisiaj jest to zbędne, a nawet niezalecane, to tak jakbyś pisał "var" przy deklaracji zmiennej. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Nie zgadzam się z opinią na temat podkreśleń.
Jest to oznaczenie wizualne dla programisty że ma do czynienia z właściwością/metodą chronioną lub prywatną, bez pomocy IDE oraz bez patrzenia na jej deklaracje. Nie uważam, aby to był zły nawyk z PHP 4, złym nawykiem może być używanie wspomnianego var, lub nie deklarowanie modyfikatorów dostępu przy metodach. To że giganci z tego nie korzystają (Symfony / Zend) nie oznacza, że jest to zły nawyk, nawet pokusiłbym się o stwierdzenie, że jest to lepszy nawyk. Nazewnictwo zmiennych / właściwości jest rzeczą indywidualną dla każdego projektu / programisty i nie wpływa negatywnie na jakość kodu. Pomijając oczywiście fakt debilnego nazywania zmiennych - to może obniżyć jakość kodu. Natomiast znaczek "_" jako oznaczenie że właściwość jest chroniona lub prywatna w żaden sposób nie traktowałbym jako zły nawyk. Nie można także porównywać stosowania starego var do używania w nazewnictwie podkreśleń. I nienawidzę namespaces... (IMG:style_emoticons/default/wink.gif) Proszę rozwiń swoją myśl, bo nie rozumiem dlaczego można czuć niechęć do przestrzeni nazw, skoro wnoszą tyle dobrego.. Zarówno do zarządzania zewnętrznymi zależnościami jak i czytelnego nazewnictwa klas i przechowywania ich w odpowiednich katalogach, bez długich prefixów w stylu Synchronize_Offer_BookstoreNext_Init Ten post edytował mstraczkowski 28.04.2013, 16:18:49 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Odnośnie tych podkreśleń: zdecydowana większość właściwości obiektów jest niepubliczna, stąd wrzucanie tych durnych znaków podkreślenia nie stanowi żadnej wskazówki dla programisty - od tego ma IDE.
Sam projekt, raczej słaby: 1. Brak wsparcia dla Composera; w głównym repozytorium jakieś przykładowe aplikacje - brak możliwości wygodnej aktualizacji FW. 2. Brak jakiejkolwiek współpracy z innymi bibliotekami, poza wspomnianym Bootstrapem Twittera, który nigdy nie powinien się tu znaleźć. Po co wszystko wymyślać koło od nowa, szczególnie gdy jest to kanciaste koło? 3. Kulejący angielski, słabo/nieudokumentowane API. 4. Na pierwszy rzut oka bardzo restrykcyjne wymuszenie szkieletu aplikacji. 5. Kompletnie nieodpowiednie nazewnictwo. Dlaczego w katalogu Bin są zwykłe pliki konfiguracyjne? Klasa Spawn\Math przecież też zbyt wiele wspólnego z biblioteką matematyczną nie ma. Albo klasa Spawn\DI (chyba chodziło o Dependency Injection Container, tak?), która z DICem wiele wspólnego nie ma, a jest zwykłym kontenerem na dane. 6. Nadużywane metod magicznych. 7. Źle używane przestrzenie nazw. Dlaczego klasa Spawn\Acl nie znajduje się w przestrzeni nazw Spawn\Acl? (przy okazji tutaj dobrze widać, dlaczego deweloperzy PHP dali ciała forsując użycie wielkich liter w fragmentach nazw przestrzeni nazw); Zaś sama przestrzeń Spawn to już misz-masz wszystkiego. Dodatkowo mimo wszystko korzystasz z globalnej przestrzeni nazw. 8. Większość "elementów" FW to w zasadzie zwykłe klasy pomocnicze (patrz: Mail, Math, Log, Url, Download itp.) W dodatku większość z nich przez fakt użycia metod statycznych jest mało przydatna. 9. Nie trzymasz się podstawowych reguł tworzenia dobrego kodu, tj. nie korzystasz z interfejsów (interface-based/interface-driven design), nie korzystasz z wstrzykiwania zależności. Przez to praktycznie nie da się ingerować bezkonfliktowo w elementy FW. 10. Nie widzę niczego czym projekt ten miałby wybijać się ponad istniejące rozwiązania (i mówię tutaj raczej o tych z "niższej półki" typu Kohana, CI). Podsumowując: jednak nie "raczej słaby", a po prostu słaby. |
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Cytat Nie widzę niczego czym projekt ten miałby wybijać się ponad istniejące rozwiązania (i mówię tutaj raczej o tych z "niższej półki" typu Kohana, CI). Z "niższej półki" czyli małych jeśli dobrze cię rozumiem. Spawn jest pisany jako konkurencja dla CI/KO które od dawien dawna nie spełniają moich oczekiwań. A wybijać ma się tym że ma PSR-0, ułatwia szybkie tworzenie stron dzięki generowaniu modeli dla orm,form,valid,search,datagrid. Sam fakt że posiada datagridy, firewalle itd też wybija go ponad konkurencję. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jest to oznaczenie wizualne dla programisty że ma do czynienia z właściwością/metodą chronioną lub prywatną, bez pomocy IDE oraz bez patrzenia na jej deklaracje. Tak, bo z reguły jest to takie ważne, a programista jest taki ciemny, że tego nie sprawdzi, tym bardziej że w 90% przypadków i tak wypluje mu błąd, gdy będzie chciał się do takiej metody odwołać. Zresztą, będzie wiedział, że jest prywatna czy chroniona? Bo to przy pisaniu będzie miało większe znaczenie, niż to czy flaga występuje w ogóle, więc Twoim zdaniem jakie powinno być wyróżnienie dla chronionej i osobne dla prywatnej? Dlatego właśnie powstało PSR, aby to regulować i pozbyć się zbędnych śmieci. Ten post edytował !*! 28.04.2013, 20:32:28 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Z "niższej półki" czyli małych jeśli dobrze cię rozumiem. Nie, oznacza to "te słabo napisane". A że większość małych jest przy okazji słaba to się pokrywa.Cytat A wybijać ma się tym że ma PSR-0, ułatwia szybkie tworzenie stron dzięki generowaniu modeli dla orm,form,valid,search,datagrid. PSR-0 jakimś specjalnym osiągnięciem nie jest. Co do reszty z tych komponentów to ORM pracujący na spłaszczonych tablicach (sic!) mówi sam za siebie. Te komponenty nie dają właściwie żadnej elastyczności czy możliwości ingerencji w nie, operują tylko na skranie prostych przypadkach.
|
|
|
![]()
Post
#21
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Cytat Te komponenty nie dają właściwie żadnej elastyczności czy możliwości ingerencji w nie, operują tylko na skranie prostych przypadkach. Jeśli chodzi o szablony html/css do form itd, to wszystko bez problemu da się w łatwy i szybki sposób dostosować do swoich potrzeb. Zauważ Crozin że te z "niższej półki" frameworki są bardzo potrzebne na rynku, i jeśli się nie mylę to posiadają więcej użytkowników niż kobylaste zendy czy symfony które są tworzone do wielkich korporacyjnych projektów, a nie stronek modelki czy prostego crm dla firemki. Symfony jeśli się nie mylę nie jesteś nawet w stanie postawić na hostingu za 40zł. A klient właśnie z takim przyjdzie. Spawn od początku był projektowany jako coś skromnego do prostych projektów i taką rolę spełnia już teraz znakomicie. Jednak jako że zawsze można coś ulepszyć, założyłem temat aby usłyszeć wasze opinie z czym wy często się spotykacie w swoich zleceniach freelancerskich i co warto by zmienić lub dodać do mojego fw. Jestem również ciekaw na co byście chcieli abym zwrócił większą uwagę pisząc nową dokumentację. Jednak zaznaczam, Spawn jest pisany jako alternatywa dla CI w której nie musisz wszystkiego robić ręcznie. Tutaj widok layoutu i contentu sam się załaduje, tutaj nad pisaniem datagrida nie stracisz godziny czasu, a ustawienie acl dla całego serwisu zmieścisz w kilki linijkach firewalla itd. Tutaj podczepisz biblioteki napisane z namespace co w CI może być już problematyczne. Spawn jest pisany z myślą o freelancerach, małych firemkach, agencjach interaktywnych a nie korporacjach. Jeśli więc patrzysz na Spawna przez pryzmat Zend czy Symfony 2 to oczywiście nie jest to cud świata (IMG:style_emoticons/default/wink.gif) Najbardziej jestem ciekaw co o moim fw myślą osoby które dopiero zaczynają zabawę z frameworkami oraz osoby na co dzień pracujące z CI/KO/Spawn. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Najbardziej jestem ciekaw co o moim fw myślą osoby które dopiero zaczynają zabawę z frameworkami Mogą go nie ruszyć, ponieważ... Jest słaba dokumentacja i zwyczajnie nikt go nie zna, więc skąd mieliby o nim wiedzieć? Forum to za mało, a recenzji na blogach żadnych. Popracuj nad tym, kilka wiadomości, do znanych blogerów nie zaszkodzi. |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dobrze by było jak by były jakieś testy do tego, tak by można było po pobraniu odpalić i sprawdzić czy napewno to działa.
I tak jak @crozin napisał interface ów brakuje. Nie ma możliwości dopisania klasy do configa z xml, yml, db a to by się przydało Edit: No i oczywiście angielski Cytat $this -> response = '$_POST["foo"] not isset.'; i formatowanie kodu raz masz
a raz
Ten post edytował skowron-line 29.04.2013, 07:51:05 |
|
|
![]()
Post
#24
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Mogą go nie ruszyć, ponieważ... Jest słaba dokumentacja i zwyczajnie nikt go nie zna, więc skąd mieliby o nim wiedzieć? Forum to za mało, a recenzji na blogach żadnych. Popracuj nad tym, kilka wiadomości, do znanych blogerów nie zaszkodzi. Jak ruszę z nową stroną to tak zrobię. Jest już gdzieś pełna lista blogerów? Bo planeta nadal nie działa. Cytat Dobrze by było jak by były jakieś testy do tego, tak by można było po pobraniu odpalić i sprawdzić czy napewno to działa. I tak jak @crozin napisał interface ów brakuje. Nie ma możliwości dopisania klasy do configa z xml, yml, db a to by się przydało Zwrócę na to uwagę przy kolejnych wydaniach, jeśli masz jakieś propozycje jak według ciebie mogło by to wyglądać to zapraszam na priv. Jednak w wersji podstawowej na 100% tylu kombinacji wprowadzać nie będę. Nie mam zamiaru straszyć ludzi własnymi pseudo językami, tak jak to robi symfony z yamlem itd. Będzie to raczej opcja łatwego dopisania/podpięcia własnych bajerów. Cytat No i oczywiście angielski Wiem, wiem. Za anglika mam zamiar się wziąć porządnie do końca roku. Obecnie korzystam z niego tyle co do czytania i grzebania w sieci. I jak pisałem: Cytat @reszta - zachęcam do komentowania samego fw, strona będzie nowa wink.gif Cytat i formatowanie kodu Przez pierwsze lata pisałem Cytat function x(){ } W PhpStorm jest chyba funkcja do modyfikacji kodu na zgodny z standardami, w wolnej chwili przelecę po wszystkich plikach. |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jak ruszę z nową stroną to tak zrobię. Jest już gdzieś pełna lista blogerów? Bo planeta nadal nie działa. "działa" na localu ;) muszę to w końcu ogarnąć... żeby tylko doba miała więcej godzin... A listy jako takiej, innej niż ta która była z planety nie ma, mogę Ci ewentualnie podesłać na PW listę ze swojego czytnika. |
|
|
![]()
Post
#26
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
To bardzo bym prosił o podesłanie.
Cytat żeby tylko doba miała więcej godzin... Oj żeby miała... jeszcze aby dało się zmęczenie i sen ograniczyć, bo to też problem. Ale lato idzie. Chętniej na spacer będzie się chodziło, a dotlenienie się daje sporego kopa (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jeśli chodzi o szablony html/css do form itd, to wszystko bez problemu da się w łatwy i szybki sposób dostosować do swoich potrzeb. Nie, nie chodzi o HTML/CSS, chociaż i to z tego co widzę daje mocno. Chodzi o możliwość bezkonfliktowej ingerencji w poszczególne komponenty FW (walidacja, formularze, "orm" itd.), ale tego bez interfejsów, normalnego wstrzykiwania zależności (IoC) i zdarzeń właściwie nie da się osiągnąć (tak by miało to ręce i nogi). U Ciebie żadnego z tych elementów nie widzę. Niby jest Spawn\Event ale te zdarzenia odnoszą się jedynie do kilku rzeczy i z tego co widzę nie umożliwiają nawet zmiany danych.Nie zrozum mnie źle, nie chodzi mi o to, że nie jest to kolejne Symfony czy Zend, ale jeżeli masz aspiracje do stworzenia "pełnego frameworka dla aplikacji webowych" nie możesz robić tego w taki sposób. Mam tu na myśli przede wszystkim skrajnie małą możliwość ingerencji w kod przez użytkownika FW. We wspomnianym już Sf2 bez problemu możesz dosłownie wymienić pewnie z 80% implementacji i wszystko nadal będzie działało (włączając w to zewnętrzne biblioteki/bundle innych autorów). Jak to wygląda w przypadku SpawnFrameworka? Nie mogę nawet zmienić implementacji tak prostej klasy jak Spawn\Registry bo cały framework i moją aplikację działającą na nim szlag trafi. Cytat Symfony jeśli się nie mylę nie jesteś nawet w stanie postawić na hostingu za 40zł. A klient właśnie z takim przyjdzie. Pomijając fakt, że postawisz to wybacz ale "klienci z hostingiem nie do ruszenia za 40zł/rok" to strata czasu i pieniędzy. Chyba, że mówimy o zleceniach "całej strony za 120 zł".Cytat Jestem również ciekaw na co byście chcieli abym zwrócił większą uwagę pisząc nową dokumentację. Przede wszystkim napisz ją po polsku i opisz tam dokładniej jak działa FW. Jestem przekonany, że na chwilę obecną ktoś z podstawami PHP i OOP szybciej nauczyłby się korzystania z "kobyły Symfony" niż Twojego skromnego FW właśnie ze względu na dokumentację/społeczność. O Kohanach czy innych CodeIgniterach nie wspominając.Cytat Tutaj widok layoutu i contentu sam się załaduje, tutaj nad pisaniem datagrida nie stracisz godziny czasu, a ustawienie acl dla całego serwisu zmieścisz w kilki linijkach firewalla itd. W Springu czy Symfony również proste przykłady zrobię w kilka minut, ale za to przy bardziej zaawansowanych nie będę miał tylu kłód pod nogami do przeskoczenia. (IMG:style_emoticons/default/wink.gif) Cytat [...] Nie mam zamiaru straszyć ludzi własnymi pseudo językami, tak jak to robi symfony z yamlem itd. Będzie to raczej opcja łatwego dopisania/podpięcia własnych bajerów. Pomijając bezzasadne uprzedzenie do YAMLa (czasami jest nawet wygodniejszy od XMLa) problem ze Spawnem jest taki, że na chwilę obecną nie umożliwia wygodnego podpięcia własnych bajerów - m.in. ze względu na brak wspomnianych wcześniej IoCa i interfejsów.
|
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Hmm framework jak framework ma kilka przydatnych rzeczy, architektore i takie tam...ale np ten datagrid jest ubogi fakt do crud-a moze i wystarczy, ja jakies 2 lata temu robilem podobny projekt nazwalem go Volta form builder / Volta admin generator.
Ten pierwszy tworzy formularze na podstawie danych z bazy danych o jakiejs tabeli + nasze ustawienia. Ten drugi tworzy wlasnie data grid dla rekordow i ich akcji. Jednak wydaje mi sie ze jest bardziej elastyczny i obydwa polaczone oferuja wiecej Jak ktos chce moze zerknac: https://code.google.com/p/form-builider/ P.S pisane prawie 2 lata temu chyba wiec kod nie jest najlepszy, jest tez mala dokumentacja poszczeglnych elemntow niestety nie dokonczona P.S2 prosze nie zwracac na uwage na poczatku gdy stworzylem projekt na google code nazwalem go zle builider zamiast builder i tak juz zostalo, tak samo jak nazwy plikow itp...itd... Ten post edytował marcio 4.05.2013, 17:20:50 |
|
|
![]()
Post
#29
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
W czym Volta_Admin_Generator jest bardziej elastyczny od Spawn DataGrid? Zintegrowany z mysqlem, więc na dzień dobry blokujesz mi wyświetlanie danych które dostanę z innego źródła.
Umieszczone na sztywno w kodzie wartości które programista powinien móc sam edytować:
Datagrid, db, pager i obsługa wejścia(__filter_vars($post = false, $get = false, $cookie = false, $session = false)) w jednym, to jest brak elastyczności. I css na sztywno. Wszystko wyświetlasz na sztywno, nie da się wstrzyknąć lambdy. Dziwi mnie fakt że porównałeś Spawna z voltem. Wiadomo że zawsze coś można ulepszyć, i jeśli widzisz że coś konkretnie cię ogranicza to pisz, ale dokładnie co (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Zintegrowany z mysql bo akurat tylko taki sterownik wtedy napisalem do tego sa tam interfejsy ze moze obsluzyc co chcemy db,xml,json wystarczy sformatowac dobrze dane i tyle (IMG:style_emoticons/default/wink.gif) na dodatek to kod z ponad 1,5 roku temu teraz mam nowe biblioteki napisane pod cmf-a i jak bede mial czas to wlasnie chce je zaimplementowac.
Cytat Datagrid, db, pager i obsługa wejścia(__filter_vars($post = false, $get = false, $cookie = false, $session = false)) w jednym, to jest brak elastyczności. I css na sztywno. Gdybys dobrze przeczytal mojego wczesniejszgo posta to bys wiedzial ze jest tam male wiki(HowToDo) w ktorym jest opisane archaicznie ale jest jak mozna zmienic widoki dla formularzy,datagrid,stronnicowania i jak stworzyc nowe walidatory i pola dla formularzy. Wiec imho daje wiecej swobody wedlug mnie Do tego admin generator potrafi wyswietlic rekordy np news-y a do kazdego news potrafi wyswietlic drugi datagrid ktory pokaze komentarze danego wpisu lub jakies inne relacje(nie za bardzo skomplikowane). Sam admin generator po wyswietleniu obsluguje sam automatycznie takie akcje jak delete,edit,add i mozna tworzyc tez inne akcje jak np: move thread ktora przeniesie nam jakis watek do innej kategorii i tak dalek i tak dalej. Wiec sam oferuje wiecej na sile moznaby oprzec caly panel crud prostej strony o ten projekt(probowalem) i bedzie dzialalo wystarczy napisac tylko wlasne widoki, ustawic wszystko i mamy gotowy Fakt najlepiej bedzie to dzialalo na mysql jednak spokojnie inne bazy danych tez by dzialaly. Ten post edytował marcio 6.05.2013, 19:02:18 |
|
|
![]()
Post
#31
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Śmierdzi boskim obiektem. Błotną bryłą też zalatuje. Wsadziłeś do jednej klasy kilka nie związanych ze sobą algorytmów, odpowiedzialnych za widok oraz logikę i twierdzisz że jest fajnie bo jedna klasa może wszystko. Osobiście po wstępnej analizie kodu Volta_Admin_Generator, wiem że bał bym się go użyć.
New ModeloKontroleroWidok(). |
|
|
![]()
Post
#32
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
@Spawnm skoro tak twierdzisz ufam ci (IMG:style_emoticons/default/wink.gif) ja jedno a ty dalej swoje przeciez pisalem ze kod byl pisany 1.5 roku temu rotfl
Zreszta nie wydaje mi sie zeby byl jeden obiekt, jest tyle obiektow(klas) ile jest potrzebnych skoro ty uwazasz ze rozbijanie wszystkiego na 1k klockow do dobry pomysl to dalej sobie tak mysl kazdy robi jak chce. Poprostu chcialem tylko pokazac ze ten datagrid to zbedna rzecz co innego gdybys rozbudowal moja idee gdzie wszystko dziala samo (IMG:style_emoticons/default/wink.gif) Ja jakos nie widze zebys mial w tej klasie: https://github.com/Spawnm/Spawn-Framework/b...er/DataGrid.php gdzies indziej generowany widok (IMG:style_emoticons/default/wink.gif) nie ma to jak sie przyczepiac do byle czego, tak samo ja jak i ty masz swoj default-owy widok w kodzie klasy z tym ze u mnie mozna tam prawie wszystko zmienic. Cytat wiem że bał bym się go użyć To samo moge powiedziec o twoim fw ;] jak juz cos dajesz do oceny to przynajmniej wysluchaj krytyke! Pozdro |
|
|
![]()
Post
#33
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Dajesz mi do porównania jakiś kod co ma 2lata więc go komentuje. Pokaż aktualny, to skomentuje aktualny (najlepiej jako osobny temat).
Mój datagrid jest modelem odpowiedzialnym za widok, tylko widok. Cytat ... to dalej sobie tak mysl kazdy robi jak chce. Dokładnie (IMG:style_emoticons/default/smile.gif) Pokazałeś swój pomysł, ja pokazałem swój. Mamy różne podejście do tej samej sprawy. |
|
|
![]()
Post
#34
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W końcu znalazłem czas, aby ten FW ściągnąć. Strona 404, to ma tak być na początku?
index.php
Wrzuciłbym to do osobnego pliku, nie trzeba tego powtarzać za każdym razem jak aplikacji na serwerze będzie więcej, a będą działały w różnych środowiskach, strefa czasowa mogłaby być odczytywana z CFG. I ta stała "DIRECTORY_SEPARATOR" jest zbędna, raz że nie działa na każdym serwerze, dwa lepiej użyć "/" i mieć pewność że zadziała na każdym systemie. Ewentualnie deklaruj stałą "DS" żeby była krótsza.
Nie podoba mi się ta spacja pomiędzy this a nazwą zmiennej. Kwestia indywidualna, jednak u mnie koloruje to jak metodę (w ogóle te spacje między 'strzałkami' są dziwne) (IMG:style_emoticons/default/wink.gif) Ten post edytował !*! 8.05.2013, 10:21:14 |
|
|
![]()
Post
#35
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Cytat W końcu znalazłem czas, aby ten FW ściągnąć. Strona 404, to ma tak być na początku? Strona startowa z wyglądu jest podobna do 404, jesteś pewien że dostałeś 404? Jeśli tak, to sprawdź czy wgrałeś wszystkie pliki. Cytat Wrzuciłbym to do osobnego pliku, nie trzeba tego powtarzać za każdym razem jak aplikacji na serwerze będzie więcej, a będą działały w różnych środowiskach Możesz rozwinąć? Cytat I ta stała "DIRECTORY_SEPARATOR" jest zbędna, raz że nie działa na każdym serwerze, dwa lepiej użyć "/" i mieć pewność że zadziała na każdym systemie. Ewentualnie deklaruj stałą "DS" żeby była krótsza. DIRECTORY_SEPARATOR jest stałą którą zapewnia serwer. Rzeczywiście mógł bym sprawdzić czy istnieje, choć nigdy nie miałem z tym problemu. |
|
|
![]()
Post
#36
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Strona startowa z wyglądu jest podobna do 404, jesteś pewien że dostałeś 404? Jeśli tak, to sprawdź czy wgrałeś wszystkie pliki. Tak. Error 404 - page not found. Pobrałem paczkę ze strony i rozpakowałem. Możesz rozwinąć? Jak rozwiązujesz motyw z wieloma aplikacjami na jednym serwerze? Zakładając że aplikacja A jest produkcyjna, a aplikacja B jest testowa. Obie korzystają z tej samej wersji FW (ten sam katalog). U siebie zaimplementowałem to tak, jak jest w CI i cakephp. Index jest plikiem głównym aplikacji i do niej jest przypisany (np. siedzi w innym katalogu/jako inna (sub)domena) i definiuje tylko stałe, rodzaj środowiska (produkcyjny, testowy, dev), i wczytuje plik engineNazwaFW.php (część core) w którym właśnie powinny znajdować się klasy, skrypty czy co tylko chcesz, co odpala FW jako całość. Dzięki temu zapobiegniesz kopiowaniu tego samego kodu kilka razy, bo i tak \Spawn\Loader i \Spawn\Spawn będą dla każdej takie same. |
|
|
![]()
Post
#37
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 10.04.2014 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Zaciekawila mnie wasza debata teraz to juz musze cos wyskrobac na tym FW. ps jak zagladalem w pliki to jak dlamnie brakuje dokumentacji w classach (uzywam PHP Storm i o wiele wygodniej pisze sie aplikacje gdy classy i funkcje sa dokumentowane w projekcie)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 01:52 |