Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [framework] Harmony Framework
Forum PHP.pl > Inne > Oceny
Sokal
Cześć,

Postanowiłem udostępnić już wersję beta swojego frameworka. Jako, że to beta to niestety nie ma jeszcze opisu wszystkich funkcji, ale myślę, że ujdzie się połapać winksmiley.jpg Jeszcze planuję co nieco usprawnić i dopisać parę klas i pluginów, ale na chwilę obecną da się coś napisać na nim.

#wersja bez przykładów i powalonym ładowaniem klas
Link: http://www.speedyshare.com/488474853.html

#wersja z przykładami i poprawionym ładowaniem klas
Link: http://www.speedyshare.com/899413533.html

#wersja z nową obsługą baz danych
Link: http://www.speedyshare.com/919231518.html

#wersja 2.0 RC 1
Link: http://www.speedyshare.com/730261175.html

Proszę o oceny...

//Zapomniałem dodać że działa tylko pod piątką
Riklaunim
Yet another web framework winksmiley.jpg Do tego gdzie dokumentacja ?
Cysiaczek
A jak się to uruchamia? Ciagle o coś się pluje.. to o controller, to o plugin...
menic
U mnie wystartowało. Masz + za schludnie napisany kod. Momentami moze aż za bardzo (nadmiar komentarzy). Daj koniecznie jakis przyklad wykorzystania, a nie statyczna strona!
Cysiaczek
@menic - a możesz napisać, co wpisałeś w adresie przeglądarki?
menic
http://localhost/harmony/
;-)

Odpala z pliku index.php w glownym folderze.
Cysiaczek
@Sokal
http://img520.imageshack.us/my.php?image=hhhp8.png

Fedora Core 6
Apache 2.2.3
PHP 5.2.1

--edit

Po paru pułapkach w kodzie, które zastawiłem, wyłączeniu buforowania i wyłączeniu wyjątków udało mi się uzyskać jakiś efekt. Masz bardzo poważny błąd.

Loader.class.php
  1. <?php
  2. $class_file = strtolower($class);
  3. //kwałek dalej jest
  4. require_once 'system/classes/'.$class_file.'.class.php'; // komunikat o braku pliku
  5. //nazwa istenijącego pliku to: Captcha.class.php
  6. //wielkość liter jest rozróżniana przez Unixy, czego mogłeś na Windowsie nie uświa
    dczyć :)
  7. ?>


Przetestuj to dobrze na linuksie : )
Pozdrawiam.
P.S. Kod jest fajny i dość czytelny
Sokal
Dzięki za uwagi, już poprawiam zaraz winksmiley.jpg

//w końcu mam powód dla którego być na linuxie cały czas, a nie na windzie ;P
Ludvik
Nie zagłębiałem się bardzo, najważniejsze to czy Ci pomaga przy pisaniu smile.gif

Co do kodu, jest całkiem ładnie napisany, dużo komentarzy - duży plus. Nie podoba mi się tylko brak klamer przy niektórych instrukcjach warunkowych... Niby szczegół, ale mimo wszystko lepiej zadbać o to, żeby były wszędzie smile.gif

Rozumiem, że Reflection API wygląda w kodzie fajnie, ale sprawdzałeś jak to wygląda z wydajnością? Wydaje mi się, że to trochę za duża kobyła na wydobycie metod...

Nie skupiałbym się na eliminowaniu błędów programisty korzystającego z frameworka. Na przykład z wywołaniem konstruktora klasy rodzica, albo sprawdzaniem czy metoda jest publiczna. Chociaż trochę zaufania dla programisty dobrze mieć smile.gif Za dużo czasu zabiera sprawdzenie tego wszystkiego, a php zawsze wyrzuci coś... Jak coś i tak nie działa, to jest xdebug... tongue.gif

Ogólne wrażenie ok... Jak to działa, to się okaże kiedy pojawią się prawdziwe problemy... smile.gif
Sokal
Co do eliminowania błędów programisty:
Hmmm... wolę mieć to ładnie wyświetlone niż się głowić dlaczego mi np. połączenie z bazą danych nie działa.

API Reflection:
To po części też jest eliminowanie błędów programisty, planuję jeszcze zrobić coś co bardzo pomoże w pisaniu, a teraz mi się tego nie chce opisywać, ale na pewno pomoże w tym system refleksyjny. winksmiley.jpg

Klamerki:
Nie preferuję klamerek, jakoś tak mi głupio wygląda:
  1. <?php
  2. if($julek == 'pijak')
  3. {
  4. echo 'nie pożyje dlugo';
  5. }
  6. ?>

Wolę napisać:
  1. <?php
  2. if($julek == 'pijak')
  3. echo 'nie pożyje dlugo';
  4. ?>


Dzięki za ocenę.
Jeszcze coś? snitch.gif
menic
TAK. Działajacy w miare rozbudowany przyklad:P
Sokal
@menic
Spoko, daj mi 15-20 minut to zrobie kontroler z przykładami winksmiley.jpg

Aha, dokumentacja z przykładami i dokładnymi opisami wszystkiego pojawi się w następnym tygodniu, bo teraz nawał w budzie... :|

A tak ogólnie to spoko? Jest co rozwijać?
menic
Napewno jest sporo roboty przed Toba...
W przykladzie uwzglednij cos z modelem winksmiley.jpg
Sokal
No to jest teraz z przykładami winksmiley.jpg
Ładowanie klas już powinno działać, widocznie zapomniałem o ucwords() (wiem że unix rozpoznaje wielkości liter winksmiley.jpg )

http://www.speedyshare.com/899413533.html

Aha, obsługa baz danych będzie podobna do ActiveRecords w Code Igniter winksmiley.jpg Na razie jest taka prowizoryczna klasa dla MySQL... :/
menic
Ale skomplikowane przylady tongue.gif
Ten konstruktor i destruktor w kontrolerze jest konieczny? Jesli tak to apśle...
Sokal
Konstruktor i destruktor nie jest konieczny, ale ja jestem przyzwyczajony do takiego kodowania. W konstruktorze ładuję co trzeba, a w destruktorze wyświetlam tongue.gif
menic
A co trzeba ładowac? Nie lepiej z automatu?
Sokal
A można i z automatu, ale chciałem pokazać jak to się robi wewnątrz kontrolera winksmiley.jpg

Sory za post pod postem ale zrobiłem obsługe baz danych winksmiley.jpg
Oparte na PDO. Takie cóś jak ActiveRecord się pojawi na wakacjach, kiedy to będę miał więcej czasu.

Nowa wersja:
http://www.speedyshare.com/919231518.html
pbnan
Nooo, ładnie to rozwinąłeś od ostatniego razu winksmiley.jpg
Bardzo na plus, chociaż mocno się nie zagłębiałem w kod winksmiley.jpg

PS. Skąd ja znam ten ekran błędu...? ;P
webdice
Cytat(pbnan @ 21.05.2007, 20:00:52 ) *
PS. Skąd ja znam ten ekran błędu...? ;P


Podobny jest w Code Igniter.

~Sokal jak przekazuje się zmienne do kontrolera?

P.S [OT]. Zawsze sie zastanawiałem jak przekazujecie zmienne do modelu?
Sokal
@up
Zmienne do kontrolera? Może do widoku?

Chyba, że chodzi Ci o schemat URL'i...
../index.php/Kontroler/Metoda/Parametr_1/Parametr_2/Parametr_3/...

A zmienne do widoku to tak:
$this->load('view', 'nazwa_widoku', $array);
Gdzie $array to jest tablica asocjacyjna. smile.gif
webdice
Do widoku wiem smile.gif

Dokładnie chodziło mi jak odczytuje się parametry z URL w kontrolerze.
pbnan
webdicepl - tym się chyba zajmuje klasa routingu, ja to rozwiązałem mniej-więcej tak:
substr na jednym z elementów $_SERVER (nie pamiętam, na którym dokładnie) i na tym jeszcze explode ;]
Chociaż wcześniej to było jeszcze odpowiednie porównanie, ale mniejsza już o to. ;]

PS. Ten ekran z błędem (takie szare tło itd.) to podobny jest do mojego, a Sokal widział źródła, więc dlatego się spytałem smile.gif
webdice
Cytat(pbnan @ 22.05.2007, 19:55:39 ) *
webdicepl - tym się chyba zajmuje klasa routingu, ja to rozwiązałem mniej-więcej tak:
substr na jednym z elementów $_SERVER (nie pamiętam, na którym dokładnie) i na tym jeszcze explode ;]


Podobnie zrobiłem, ale nie o to pytałem, chce wiedzieć jak się odczytuje zmienne w kontrolerze, np u siebie odczytuje

  1. <?php
  2. $this -> param
  3. ?>


a w Harmony nie doszukałem się jak to zrobić
menic
Odczytuje? W kontrolerze?
webdice
Patrz, mamy przykładowo adres /controller/action/pram1/value1/param2/value2/

a w kontrolerze odczytuje te parametry np w taki sposób:

  1. <?php
  2. class controller
  3. {
  4. public function action ()
  5. {
  6. if ($this -> param1 == 'value1')
  7. {
  8. // tu jakas akcja
  9. }
  10. }
  11. }
  12. ?>
menic
A to o to chodzi smile.gif
Sokal
Ale to nie o to w tym chodzi winksmiley.jpg

Jak robisz ./index.php/kontroler/metoda/parametr_1/parametr_2/ to tak jakbyś robił:
$n = new kontroler();
$n->metoda(parametr_1, parametr_2);

@pbnan
Twoje troszkę inne (http://img71.imageshack.us/img71/6186/examplete7.png) tongue.gif
pbnan
Ok. No więc we frameworkach do PHP bardzo brakuje mi takiego rozwiązania, jakie jest w Django.
Mianowicie, każde pole w modelu jest kolumną w bazie danych - tak prosto to ujmując.
Projekt sam powinien też pilnować, by baza danych była odpowiednia. Jeśli nie ma jakiejś tabeli - ma ją utworzyć(na podst. modelu). smile.gif Taka sugestia winksmiley.jpg
Sokal
Biorę się za pisanie dokumentacji winksmiley.jpg

Mam pytanie: czy chciałby ktoś pisać ze mną frameworka? Bo samemu to tak jakoś nie za bardzo... Kontakt w sygnaturce smile.gif
menic
Najpierw sam pocwicz php, i sam rozwija fw. Ew pozniej wejdz z kims w spolke winksmiley.jpg
Sokal
@up
Sądzisz, że jestem początkujący w PHP? :|
menic
Ja tego nie powiedziałem tongue.gif
eai
Odpalam i dostaje na dzień dobry error
Cytat
Fatal error: Trying to clone an uncloneable object of class ReflectionClass in E:\public_http\web.framework\Harmony\1\system\classes\Loader.class.php on line 90


PHP 5.2.2
Sokal
@up
widocznie Ty coś pokręciłeś winksmiley.jpg
eai
Sciągnąłem paczkę, wypakowałem do folderu. Odpalam i bęc.
Nawet nie wnikałem w kod.
Sokal
No to nie wiem :/
Teraz przerabiam kod... Już będzie bez tej kobyły (Reflection)
Speedy
u mnie też wyskakuje jakiś error z reflection class. Nie pamiętam już jaki konkretnie, bo uruchamiałem to kilka dni temu, a teraz tego nie mam na dysku.
Sokal
Jestem w trakcie przepisywania frameworka. Ogólnie wydajność większa. Pisze dodatkowe klasy, itp.

Jestem na etapie w którym myślę czy to wszystko ma sens :/ Czekam na minimum 4-5 opini o tym czy kontynuować prace czy zająć się czymś sensowniejszym.

// Zdecydowałem się, że jednak robię smile.gif Mam już wspracie. Wersja 2.0 będzie w niedziele smile.gif

No i jest wersja 2.0 RC 1.

Link:
http://www.speedyshare.com/730261175.html

Prace nad obsługą bazy danych trwają. W wersji 2.1 już powinna być. Tak jak i dokumentacja smile.gif

Do 'ekipy' dołączył pbnan.
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.