![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dziś chciałbym zaprezentować framework, ktory zbudowałem i opieram na nim swoje aplikacje. Jest stale rozwijany, nie ukryję że może spotkać się z gorzkimi słowami krytyki, ale też słodkimi pochwały. Przygotowałem prawie pełną dokumentację, która umieszczona jest na stonie domowej frameworka: http://framework.vgroup.pl Wraz z działem download oraz manualem na stronie na bieżąco będę publikował przykłady użycia jakiś komponentów, na dzisiejszy czas są to: upload pliku, caching działania zapytania do bazy danych oraz zmniejszenie pliku graficznego. Najlepszym przykładem będzie aplikacja napisana na frameworku, dlatego zmieściłem kod swojego portfolio http://www.vgroup.pl. Repozytorium plików możecie znaleźć pod adresem http://source.vgroup.pl (IMG:http://framework.vgroup.pl/gfx/vframe.jpg) Download frameworka oraz przykładowego szkieletu katalogów aplikacji: http://framework.vgroup.pl/download.html Instalacja: http://framework.vgroup.pl/read-instalacja.html Repozytorium plików frameworka wraz z podstawowymi bibliotekami (mojego autorstwa): http://framework.vgroup.pl/repository.html Klasy umieszczone w folderze /Incubator/ potrzebują specjalnych testów, lub są w fazie budowania. Nie odpowiadam za ich nieprawidłowe działanie i tym samym prosze o przetestowanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zapraszam do oceny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Athlan Ten post edytował Athlan 3.01.2007, 17:32:12 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
wow. bardzo interesujące. ale daj trochę czasu na przejrzenie i poczytanie manuala. na razie duży plus za stronę projektu, manual. Więcej napisze po głębszej analizie. Teraz w oczy rzuciła mi się tylko brzydka (dla mnie) konwencja nazewnictwa. Nie lubię takich potworków jak "news_Vmodel extends Vmodel" czy "($sCategory, $iLimit)" ale wiadomo, to indywidualna sprawa.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 800 Pomógł: 0 Dołączył: 26.11.2005 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Interesujący framework, ale według mnie w wielu miejscach dochodzący do [zmoderowano].
Po co taki złożony system dla jednego ciasteczka ? Dlaczego niby ja mam podawać dane do połączenia z bazą klasie mySQL ? Niech sobie sama pobierze. Raz ustawiam i mam. Chce mieć inne dopiero wtedy podaje. Tak samo w przypadku typu w Inpucie. Po co ja mam podawać ? Niech będą ustalone priorytety, a niech klasa też sama szuka ;] Do tej pory więcej grzechów nie zauważyłem. Oceny wystawiać nie będę, bo frameworka nie będę używać. ___ Warn za sposob wypowiedzi ActivePlayer |
|
|
![]()
Post
#4
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
@normanos, wiedziałem, że nazwenictwo się rzuci, używam go pół na pół, ale podkreślniki jakoś lepiej oddzielają nazwę w moich oczach. Słusznie zauważyłeś - indywidualna sprawa.
Twojego postu nie pozostawie więc bez komentarza. Kiedyś NuLL się czepiał o konfigurację nazewnictwa poszczególnych elementów aplikacji. Jeżeli komuś nie odpowiada surfix _Vmodel, może sobie go dobrowolnie zmienić. Ujęte jest to w stałych w pliku konfiguracyjnym znajdującym się w folderze aplikacji, jak widać każda aplikacja może mieć inne nazewnictwo> Dobrym wypadkiem jest to, kiedy na serwerze mamy kilka aplikacji, tworzonych przez kilku ludzi stosujących różne nazewnictwo korzystające z jednej kopii frameworka. Pomyślałem, żeby aplikacja dostała taką możliwość, jak zmiana nazewnictw, prefiksó i surfiksów nazw klas i swoich plików. Zarzuce linka do repozytorium: Przykladowy plik konfiguracyjny aplikacji: http://framework.vgroup.pl/expose-fab8d0f7...5d4abee2ce4.htm Jeżeli uda mi się wkleić tabelkę napisaną w Wordzie do edytora w panelu admina, z pewnością ukaże się iona w manualu, jeżeli nie, zrobie PDF'a (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ad @Turgon: Owszem, model sam szuka sobie danych do konfiguracji MySQL: http://framework.vgroup.pl/read-model.html#2.2.3 Przykladem konfiguracji bazy danych MySQL jest plik Db_MySQL.Config.php: http://source.vgroup.pl/expose-e2c21810e10...07e18cae1e0.htm (przepraszam za stałą, ale nie podam hasła w repozytorium plików źródłowych mojego portfolio (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) A z tymi priorytetami to nie taki głupi pomysł, wiesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pomyślimy Ten post edytował Athlan 3.01.2007, 19:26:26 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
strona troche dziwna, menu po angielsku, teksty po polsku.
a co do dokumentacji to mam pytanie Cytat 2.1.3. Wybieranie modelu Model, podobnie jak widok, może być wybierana przez kontroler. Poniższy przykład doskonale ilustruje jego użycie. <?php class index_Vcontroller extends Vcontroller { public function index_Action() { $oModel = $this->setView('SomeModel'); } } ?> nie powinno byc Cytat $oModel = $this->setModel('SomeModel'); ? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
ja po prostu lubię czystość i przejrzystość - zobacz jak to pięknie rozwiązane ma CodeIgniter (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
no ale skoro można zmienić to jeden problem z głowy. Na szybko też nie zauważyłem żadnych filtrów na inputach (albo przeoczyłem), więcej poczytam sobie wieczorkiem przed pójściem spać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
@AxZx: prawda, poprawione. Błędy typu literówki w manualu lub w komentarzach w kodzie prosiłbym o zgłaszanie na PW, nie warto zaśmiecać topicku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
@normanos: zapisane w todo, tylko jakie, na pewno htmlspecialchars(), trim(), addslashes(), stripslashes()... coś jeszcze? zapraszam na PW (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
http://www.codeigniter.com/user_guide/libraries/input.html
w ogóle jakbyś wziął to co najlepsze w CI to było by miło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#9
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dobry pomysł, nie trzeba zapamiętywać wszystkich cyferek tak jak jest to u mnie. Super sprawa, pomysł zapisany w todo.
Tymczasem informuję o updacie klasy Cache.Class.php, bowiem po większych testach nie działało usówanie i ewentualne tworzenie nowych grup, był problem z podejściem do plikow (nieestatyczny sposób). Zalecam update. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak na szybko:
- Cache (źle przemyślany) po co skanować cały folder i usuwać pliki których ważność się skończyła. Przy większej ilości plików będzie to spore obciążenia. Cache generalnie ma być żeby przyspieszyć a nie spowolnić. - Nie widze autoloadera klas. (być może gdzieś przeoczyłem) Ogólnie mówiąc każdy pisze jak mu wygodnie, mi takie coś nie odpowiada i nie użyłbym tego frameworka. Ale życze powodzenia w rozbudowie. jak znajde chwile to przejrze calosc. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
..... widać wpływ Rapide Frawework, session, user, acl wydaje mi się że bardzo wzorowałeś się na tym frameworku szkoda że zaimplementowałaś pluginow. Twój Framework to "dość dobre" rzemiosło nie skupiajmy się na szczegółach całościowo pewnie działa i spełnia twoje oczekiwania. Osobiście brakuje mi trochę polotu , wykorzystanie elementów inż. oprogramowania, i podstawowych wzorców projektowych takich jak Strategia Dekorator, Obserwator czyli wzorców opartych o dziedziczenie i kompozycje, a owego dziedziczenia i kompozycji używasz dość często. Brakuje też dobrze oprogramowanej warstwy danych, proponowałbym wprowadzenie DataMapperów - czyli narzędzi mapujących relacyjne bazy na objekty, możesz ja zaiplementować lub dołaczyć dostępne ORM , myśle że to mógłby być kierunek rozwoju frameworka.
Pozdrawiam |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%) ![]() ![]() |
Post autorstwa Athlan, który z uwagi na tymczasowego bana nie może się osobiście wypowiedzieć.
Athlan: Dziękuję za dotychczasowe opinie, wraz z pojawieniem się nowych opcji, pojawiła sie również nowa dokumentacja. Zacznę od tego, co zostało dodane do myśli technicznej:
Vsession, Vuser - dodano możliwość odwołania się do danych jako tablicy obiektu, gdyż implementowany jest interfejs ArrayAccess Vcontroller, Vview, Vmodel - otrzymały implementację interfejsu ArrayAccess i najważniejszych aliasów dla komponentów Lang(), Session(), Input(), Url(). Dziedziczą z klasy VcommonMVC i Vattributes. Vattributes - dodana nowa klasa, która daje możliwość operowania na atrybutach (tablicy $_aAttributes) poprzez metody __set(), __get(), has(), remove(). Vinput - wprowadzone zmiany o ktore prosiliście, przy okazji bardzo mi się przydały w wykonaniu jednego z projektów. więcej: http://framework.vgroup.pl/read-input-data.html#4.7.1 Vlanguage - wykrywanie domyślnego języka użytkownika oraz wybranie odpowiedniego z dostępnych w aplikacji - główna myśl wersji 0.1.10, więcej: http://framework.vgroup.pl/read-languages.html#4.8.4 http://framework.vgroup.pl/read-uzytkownik.html#4.11.4 Zmienione nazewnictwo plików językow na skróty, zamiast Polish jest pl itd., więcej: http://framework.vgroup.pl/read-languages.html#4.8.1 Vuser - ustawianie języka użytkownika, więcej: http://framework.vgroup.pl/read-uzytkownik.html#4.11.4 Vframe 0.1.10 możecie pobrać z działu download: http://framework.vgroup.pl/download.html Manual dostępny pod starym adresem: http://framework.vgroup.pl/manual.html Dodany został DevServer, na którym stale działam, tam są publikowane natychmiastowe zmienay w CORE, które nie zostały opublikowane. Na devserwer tworzone są kolejne wersje fw: http://framework.vgroup.pl/devserver.html Ten post edytował empathon 29.01.2007, 11:41:14 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Średnio:
Cytat Vframe request has been processed in 0.016093015670776 seconds! Przy pierwszym wywołaniu 0.3 s VFrame oraz Aplication (pobrane dziś ze strony) W tej chwili piszę własny FrameWork, jest w fazie testów i udało mi się zejść do 0.004s Strona testowa jaką generuje http://jeanne.euo.pl/ |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
@eai - Ja tez na początku prac miałem 0.004 sekundy, a nawet mniej. Tyle, że jak dodasz nieco "featurów", to wydajność musi spaść. Mi obecnie pojedyncze wywołanie zajmuje 0.03 sekundy. Przeciętna aplikacja (bez bazy danych) to łącznie 0.05-0.06 sekundy. Dane bez cachu.
Pozdrawiam. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Zalezy oczywiscie na czym jest skrypt uruchomiony...
Na moim laptopku przy 800 MHz wywolanie zwyklej strony z akcja i blokiem menu to cos około 0.04 oczywiscie bez laczenia z bd. Chodzi oczywiscie o SparkleWorks - moj fw (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Ten post edytował menic 29.05.2007, 17:32:09 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
obie aplikacje wrzucilem na serwerek na nazwa.pl
Edit: Popraw sobie http://framework.vgroup.pl/home.html pod kątem błędów ortograficznych (opeacji, tychże, smniejszenia, itd). Pozdro ;-) Ten post edytował eai 30.05.2007, 17:15:57 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 225 Pomógł: 0 Dołączył: 1.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem błąd w kodzie "Załadowanie avatara i zmniejszenie go w razie potrzeby - przykład"
nigdzie wcześniej $oimage nie jest używane, a tu nagle... Nie podoba mi się również to, że jest to tylko nakładka na funkcje php, równie dobrze mogąca być nie zamknięta w klasie, a w luźnych funkcjach, bo o ile dobrze kod rozumiem to przy wywoływaniu metod pierwszym argumentem prawie zawsze jest uchwyt do obrazka... Ten post edytował Hacker 11.06.2007, 20:01:38 |
|
|
![]()
Post
#18
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat nigdzie wcześniej $oimage nie jest używane, a tu nagle... Nie podoba mi się również to, że jest to tylko nakładka na funkcje php, równie dobrze mogąca być nie zamknięta w klasie, a w luźnych funkcjach, bo o ile dobrze kod rozumiem to przy wywoływaniu metod pierwszym argumentem prawie zawsze jest uchwyt do obrazka... Projekt jest zamknięty, nowa klasa Image z Vframe zamyka resource i działa na fabryce w naszym frameworku Rapide: http://rapideframework.googlecode.com/svn/...Image.class.php |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 10:05 |