Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [fw] Spawn 2.4
Forum PHP.pl > Inne > Oceny
Spawnm
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.
!*!
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.
mstraczkowski
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
Spawnm
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.
pyro
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)
memory
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.
Spawnm
Przyznam że jestem w szoku że wszyscy się czepili dodania TB aby ułatwić/przyśpieszyć start w szybkim tworzeniu projektów 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 smile.gif
com
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 wink.gif Wtedy zarówno laik jak i ktos bardziej doświadczony, któremu przykładowo TB nie przypadł do gustu, z niego skorzysta 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 ) wink.gif
Spawnm
Ciekawa propozycja, przyznam że nie śledzę zf2 i jestem trochę w szoku biggrin.gif
memory
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/

toffiak
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.
mls
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... wink.gif Chyba czas, by swoje "dzieło" też wystawić publicznie...
!*!
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-*
Spawnm
Namespace są fajne, co wy chcecie 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 wink.gif
!*!
Cytat(Spawnm @ 28.04.2013, 13:54:55 ) *
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.
mstraczkowski
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ń.

Cytat(mls @ 28.04.2013, 13:13:05 ) *
I nienawidzę namespaces... 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
Crozin
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.
Spawnm
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ę.
!*!
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.
Crozin
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.
Spawnm
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 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.

!*!
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.
skowron-line
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
  1. public function a() {
  2.  
  3. }

a raz
  1. public function a()
  2. {
  3.  
  4. }
Spawnm
Cytat(!*! @ 29.04.2013, 08:25:40 ) *
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.
!*!
Cytat(Spawnm @ 29.04.2013, 10:24:45 ) *
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.
Spawnm
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 smile.gif
Crozin
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. 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.
marcio
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...
Spawnm
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ć:
  1. $panel .= '<td align="center"style="background-color:#8B0000;font-weight:bold;">Akcje</td>';

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 smile.gif
marcio
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 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.
Spawnm
Ś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().
marcio
@Spawnm skoro tak twierdzisz ufam ci 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 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 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
Spawnm
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 smile.gif Pokazałeś swój pomysł, ja pokazałem swój. Mamy różne podejście do tej samej sprawy.
!*!
W końcu znalazłem czas, aby ten FW ściągnąć. Strona 404, to ma tak być na początku?

index.php

  1. date_default_timezone_set('Europe/Warsaw');
  2.  
  3. $loader = new \Spawn\Loader;
  4. $loader -> setIncludePath('Library'.DIRECTORY_SEPARATOR)
  5. -> setIncludePath('Application'.DIRECTORY_SEPARATOR)
  6. -> setIncludePath('Application'.DIRECTORY_SEPARATOR.'Helper'.DIRECTORY_SEPARATOR)
  7. -> register();
  8.  
  9. $spawn = new \Spawn\Spawn;
  10. $spawn -> router = new \Spawn\Router;
  11. $spawn -> loader = $loader;
  12. $spawn -> controller = 'Spawn';
  13. $spawn -> action = 'index';
  14. $spawn -> init();


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.

  1. $this -> cache -> get($key);

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) wink.gif
Spawnm
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.
!*!
Cytat(Spawnm @ 9.05.2013, 12:57:42 ) *
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.

Cytat(Spawnm @ 9.05.2013, 12:57:42 ) *
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.
vedget
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)
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-2025 Invision Power Services, Inc.