Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Spawn Framework, http://spawnframework.com/
Spawnm
post
Post #1





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Witam,

proszę o opinie na temat:

1. strony www

2. frameworka

Co byście zmienili, czego wam brakuje.

Adres: http://spawnframework.com/
Go to the top of the page
+Quote Post
4 Stron V   1 2 3 > »   
Start new topic
Odpowiedzi (1 - 77)
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Mnie się podoba prostota frameworka ;] nie testowałem bo nie mam czasu, ale z tego co widać w manualku, to prostota rządzi, ja też coś tam swojego skrobie, tylko mój jest troszkę bardziej przykokszony, ale z ORM'a to ja tam nic nie widziałem, Spawn?

@EDIT a nie jednak jest, tylko o weryfikacji danych nie ma ani słowa na podstawie modeli, a mogłeś to zrobić ;]

Ten post edytował cojack 8.07.2010, 17:00:10
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. widząc prefiks sf myślę o Symfony (IMG:style_emoticons/default/tongue.gif)


@up: jest, tylko nie wiem, czemu w przykładach nie chwali się nim od razu (a powinien).
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




http://spawnframework.com/doc/21/sf_orm

dodam że w orm działają metody z
http://spawnframework.com/doc/20/sf_db
oraz w obydwu przypadkach metody z pdo .
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
cojack
post
Post #5





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Ale teraz to Ci się oberwie:

1) Po co komu te śmieci w pliku do ściągnięci? Nie wyczyściłeś kopi zapasowych plików, zacznij używać svn'a i nie będziesz miał z tym żadnego problemu.
2) Co to jest za licencja?
3) Autoload, po co? Na co? :/
4) View, dziwne to factory u Ciebie, pierwszy raz widzę takie coś. Bardziej niż na faktory to mi wygląda na wzorzec złożony.

@EDIT
to nie mogłeś w kodzie napisać co to za licencja, jak to się czyta wygląda jak GPL, a tu widzisz BSD ;]

Ten post edytował cojack 8.07.2010, 17:31:38
Go to the top of the page
+Quote Post
Spawnm
post
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




licencja:
http://www.opensource.org/licenses/bsd-license.php
Go to the top of the page
+Quote Post
SHiP
post
Post #7





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Hahahaha udostępniłeś ludziom hasła do swojej bazy...

Człowieku zrób porządek w paczce (IMG:style_emoticons/default/biggrin.gif)

EDIT: W wolnej chwili spojrzę dokładniej na całość. Ogólnie mi się nie podoba "bałagan", np w controlerze masz metodę redirect albo error404. Ja bym redirect wrzucił do routera a 404 wyrzucił w ogóle...

Ten post edytował SHiP 8.07.2010, 17:35:10
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




posprzątane , zupełnie o tym zapomniałem że te pliczki się robią ;p
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dobra, zaczniemy od błędów/złych rozwiązań:
  1. Brak możliwości zdefiniowania środowisk - albo przynajmniej dwóch podstawowych: production i development
  2. index.php:
    • Już nagłówek Content-Type? Czyli co... pliku XML już nie będę mógł [b]normalnie[b] (tak wiem... nagłówki można nadpisywać) wyświetlić
    • Nie wiem czemu ludzie jak definiują sobie ścieżkę do katalogu to dodają jakiegoś slasha na końcu (IMG:style_emoticons/default/smile.gif)
    • Korzystając z set_include_path() powinieneś podać jeszcze jej starą zawartość: get_include_path()
  3. PHP 5.3 już jest od jakiegoś czasu - mogłeś skorzystać z przestrzeni nazw - szczególnie, że sf jest już "zarezerwowane"
  4. Mieszanie angielskiego i polskiego (sf_request::_filtr())
  5. Utrudnianie rozszerzania FW stosując metody prywatne, tam gdzie powinny być chronione (np. sf_request::_filtr())
  6. Czemu takie katalogi jak config czy logs są wrzucone wewnątrz katalogu library?
  7. Brak jakiejś konsekwencji w komentarzach... raz phpDoc, raz "coś", raz ich kompletny brak
  8. sf_router::location() - wtf? Od kiedy to router ma takie rzeczy wykonywać
  9. Metody potworki... spawn::create() - kompletnie nietrafiona nazwa, wykonuje za wiele czynności: konfiguruje środowisko, określa i wywołuje kontroler, zajmuje się obsługą błędów
  10. Czy mi sie wydaje czy router polegnie, gdy będę chciał: /my-awesome-product-123.html przekierować na kontroler: product, akcje: index z parametrem id = 123?
  11. Po co w __call() sprawdzasz czy metoda istnieje? Przecież oczywiste jest, że nie, skoro __call zostało wywołane.
  12. Jaki jest sens parametrów (2-gi i 3-ci) w sf_db::orWhere? orWhere('...', 'AND', 'AND')? (IMG:style_emoticons/default/biggrin.gif)
  13. Jeżeli jakiś model ma w swojej nazwie "orm" to już nie jest poprawnym modelem
  14. sf_jquery - ehkem... wtf?
  15. sf_cookie/sf_math - masz tam błędy składni
  16. Co w sf_math robią metody typu rbg2hex? Co to ma wspólnego z matematyką (na co wskazuje nazwa)? sf_math::dec2hex... http://php.net/manual/en/function.dechex.php
  17. W ogóle to widzę tu więcej funkcji, które dublują już istniejące
  18. sf_mail... po co to w ogóle jest "klasą"? Poza tym tylko utrudnia życie - poproszę o maila z załącznikiem do 100 osób
  19. sf_html::rss() - a jak będę chciał dodać atrybut title? To samo z ::css() - a media mogę podać?
  20. sf_view::factory() - czym to się różni od bezpośredniego wywołania konstruktora?



Takich kilka luźnych uwag/spostrzeżeń na pierwszy rzut oka patrząc po kilku plikach. Ogólnie - słabo... bardzo słabo.

PS. Popracuj nad angielskim. (IMG:style_emoticons/default/winksmiley.jpg)
PPS.
Cytat
(...)and use the MVC architecture(...)
Nie, on nie jest oparty o MVC...

Ten post edytował Crozin 8.07.2010, 18:14:47
Go to the top of the page
+Quote Post
Spawnm
post
Post #10





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




łojej nie sądziłem że tego aż tyle będzie ...

Cytat
uż nagłówek Content-Type? Czyli co... pliku XML już nie będę mógł [b]normalnie[b] (tak wiem... nagłówki można nadpisywać) wyświetlić

inne frameworki też tak robią , np. kohana;)

Cytat
Mieszanie angielskiego i polskiego (sf_request::_filtr())


jedno się trafiła, jeszcze gdzieś znajdziesz to pisz , wydawało mi się że tylko angielskie nazwy są...

Cytat
Czemu takie katalogi jak config czy logs są wrzucone wewnątrz katalogu library?


uznałem że rupiecie danego frameworka powinny być w jego folderze aby się nie gryzły z innymi libami.

Cytat
sf_router::location() - wtf? Od kiedy to router ma takie rzeczy wykonywać


jeśli chcę aby po wpisaniu nazwa.pl/forum
przeniosło mnie np. na fora.pl to po co mam do tego pisać specjalnie akcję skoro mogę ustawić przekierowanie w routerze


Cytat
W ogóle to widzę tu więcej funkcji, które dublują już istniejące


- np?

Cytat
aki jest sens parametrów (2-gi i 3-ci) w sf_db::orWhere? orWhere('...', 'AND', 'AND')?

ja widzę orWhere($where, $valWhere='OR' ,$sep='OR')

Cytat
sf_cookie/sf_math - masz tam błędy składni

k... poprawiałem to... już działa...
Powód edycji: [Spawnm]: [Spawnm]:
Go to the top of the page
+Quote Post
cepa
post
Post #11





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 8.07.2010, 19:32:25 ) *
k... poprawiałem to... już działa...

od tego testy sa wlasnie ;p
Go to the top of the page
+Quote Post
Crozin
post
Post #12





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
od tego testy sa wlasnie ;p
Raczej IDE, które podkreśli na czerwono byki w składni, czy po prostu odpalenie pliku (IMG:style_emoticons/default/winksmiley.jpg)
Cytat
uznałem że rupiecie danego frameworka powinny być w jego folderze aby się nie gryzły z innymi libami.
Ale to nie są rupiecie FW, tylko normalne dane, które nie powinny być w katalogu na kod źródłowy bibliotek itp. Poza tym FW to taki rupieć nadrzędny względem innych i ma prawo sobie śmiecić
Cytat
- np?
sf_math::dec2hex(), sf_math::hex2dec (dechex/hexdec), sf_date::add (datetime::add), sf_date::w3cDate (to nie jest przypadkiem date() z formatem "c" czy http://pl.php.net/manual/en/class.datetime...e.constants.w3c ), sf_date::isDate (checkdate, datetime), sf_csv (nie chce mi się sprawdzać, ale czy to robić coś poza tym co robi fgetcvs?),
Cytat
ja widzę orWhere($where, $valWhere='OR' ,$sep='OR')
Dlatego się zastanawiam po co są te parametry skoro ta funkcja ma robić za "or" - sama jej nazwa na to wskazuje
Go to the top of the page
+Quote Post
skowron-line
post
Post #13





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. class sf_url{
  2.  
  3. /**
  4. *return controller and action
  5. *
  6. *@param - string - core - if true - return base spawn config
  7. *@return - string - /{controller}/{action}
  8. */
  9. public static function base($core=false){
  10. if($core==true){
  11. $par=sf_config::get('spawn');
  12. print_r($par); //<------------------------------------------------- WTF (IMG:style_emoticons/default/questionmark.gif)
  13. return '/'.$par['controller'].'/'.$par['action'];
  14. }
  15. return '/'.sf_request::instance()->param(0).'/'.sf_request::instance()->param(1);
  16. }


Napisz co cię skłoniło do napisania własnego FW, czego brakowało lub czego było w istniejących rozwiązaniach.

Ten post edytował skowron-line 8.07.2010, 20:00:35
Go to the top of the page
+Quote Post
Spawnm
post
Post #14





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat
Raczej IDE, które podkreśli na czerwono byki w składni, czy po prostu odpalenie pliku winksmiley.jpg

Jak pisałem poprawiałem to i testowałem , nie wiem czemu w paczce były stare wersje ...

co do czemu rupiecie takie jak config trzymam w sf - nie jestem sam i akurat tego nie planuję zmieniać w strukturze swoje frameworka (IMG:style_emoticons/default/smile.gif)

@skowron-line - wywalone już.

Cytat
Napisz co cię skłoniło do napisania własnego FW, czego brakowało lub czego było w istniejących rozwiązaniach.

Brakowało mi prostoty struktury fw , brakowało mi fw do małych projektów, fw który by nie zajmował kilka MB. Widząc w jakim kierunku rozwija się np. kohana w której pracowałem uznałem że ja w tym czymś pracować dalej nie będe.
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
cepa
post
Post #15





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 8.07.2010, 20:32:55 ) *
Raczej IDE, które podkreśli na czerwono byki w składni, czy po prostu odpalenie pliku (IMG:style_emoticons/default/winksmiley.jpg)

jak masz 20 tys plikow w projekcie to bedziesz kazdy z osobna otwieral i uruchamial (IMG:style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post
Spawnm
post
Post #16





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat(cepa @ 8.07.2010, 21:08:27 ) *
jak masz 20 tys plikow w projekcie to bedziesz kazdy z osobna otwieral i uruchamial (IMG:style_emoticons/default/smile.gif) ?

A ty piszesz najpierw 20tyś plików i dopiero później zaczynasz wyszukiwać gdzie zgubiłeś ';' ?
Czy robisz to etapami ?
Go to the top of the page
+Quote Post
skowron-line
post
Post #17





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


  1. class sf_date{
  2.  
  3. /**
  4. *add X day to date
  5. *
  6. *@param - string - date
  7. *@param - string - day
  8. *@return - string - new date
  9. */
  10. public static function addDate($date,$day){
  11. $sum = strtotime(date('Y-m-d', strtotime($date)) . ' +'.$day.' days');
  12. $dateTo=date('Y-m-d',$sum);
  13. return $dateTo;
  14. }


Lat, miesięcy już nie dodajesz (IMG:style_emoticons/default/questionmark.gif) i wydaje mi się że lepiej by było jak by zwracał w sekundach, no ale to może tylko moje odczucie. Ogólnie niezły śmietnik w kodzie, mam dziwne wrażenie że pisany na kolanie i byle szybciej.
Go to the top of the page
+Quote Post
Spawnm
post
Post #18





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat
Ogólnie niezły śmietnik w kodzie

Domyślam się że wszystko cudowne tam nie jest ale
to co wyżej uważasz za śmietnik? Przesadzasz (IMG:style_emoticons/default/winksmiley.jpg)

Cytat
mam dziwne wrażenie że pisany na kolanie i byle szybciej.

Może nie byle szybciej ale na kolanie chwilami tak (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
cepa
post
Post #19





Grupa: Zarejestrowani
Postów: 125
Pomógł: 7
Dołączył: 27.01.2010

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 8.07.2010, 21:17:03 ) *
A ty piszesz najpierw 20tyś plików i dopiero później zaczynasz wyszukiwać gdzie zgubiłeś ';' ?
Czy robisz to etapami ?

eh nie kminisz..

powiedzmy ze twoj framework sie rozbudowal, i masz spora chierarchie obiektow (patrz Zend, Symnfony, etc), no i jakas twoja klasa jest uzywana np: w 20 miejscach w kodzie...
zmieniles cos w tej klasie i co teraz? bedziesz sprawdzal recznie czy caly pozostaly kod dziala? na tym wlasnie polega testowanie, zauwaz ze gigantyczne frameworki rownierz maja gigantyczna mase testow a zaloze sie ze ich stabilnosc jest na tyle wysoka ze na oko mozna by powiedziec ze testy sa wcale nie potrzebne

pozatym z komercyjnego punktu widzenia, nie moge wykorzystac twojego kodu na powaznie, bo nie ma on zadnej gwarancji dzialania, a testy sa taka wlasnie gwarancja (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
skowron-line
post
Post #20





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 8.07.2010, 20:40:03 ) *
to co wyżej uważasz za śmietnik? Przesadzasz (IMG:style_emoticons/default/winksmiley.jpg)

Broń boże to co podałem to nie przykład śmietnika, takie małe spostrzeżenie, uwaga na to jak można by tą metodę dopracować. Mało czytelny jest kod, brakuje spacji enterów, bardziej rozbudowanych komentarzy do metod
Go to the top of the page
+Quote Post
Spawnm
post
Post #21





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Brakuje ci spacji i enterów ? A ja myślałem że za dużo zawsze daję (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #22





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
Brakowało mi prostoty struktury fw
Twój FW nie jest prosty... jest prymitywny. Niestety ale przeglądając jego źródła natrafiłem na dziesiątki miejsc, gdzie będzie on ograniczać i utrudniać życie, a nie pomagać. Dodatkowo jest zaprojektowany na przekór wszystkim ideą OOP (patrz dziesiątki statycznych metod, które być nie powinny) co zemści się w momencie, gdy będziesz chciał rozszerzyć jakiś "moduł".
Cytat
brakowało mi fw do małych projektów
A tak konkretnie to w czym przeszkadza użycie jakiegoś Symfony czy Zenda w małych projektach. Co jest konkretnie złego w tym, że sam FW będzie 5 razy bardziej obszerny niż aplikacja?
Cytat
fw który by nie zajmował kilka MB
Ponownie - podaj jakiś konkretny argument przeciwko 10 megowemu FW. Jego API nauczysz się w 1-3 dni. Momentami będziesz musiał podejrzeć bezpośrednio źródła, ale zajmie to nieporównywanie mniej czasu niż pisanie czegoś własnego (szczególnie, jeżeli miałoby być na poziomie).
Cytat
Widząc w jakim kierunku rozwija się np. kohana w której pracowałem uznałem że ja w tym czymś pracować dalej nie będe.
No to nie pracuj. Mi również nie podoba się ten FW (jednak jestem zmuszony do pracy przy jego wykorzystaniu w jednym projekcie) - ale całe szczęście PHP oferuje kilka innych wartych uwagi FW.

Cytat
jak masz 20 tys plikow w projekcie to bedziesz kazdy z osobna otwieral i uruchamial
Eee... takie Eclipse np. bezpośrednio w drzewie projektu pokazuje, w których plikach są błędy (NB, ZS pewnie też). (IMG:style_emoticons/default/winksmiley.jpg)

Cytat
to co wyżej uważasz za śmietnik? Przesadzasz
Nie przesadza. (IMG:style_emoticons/default/winksmiley.jpg)

Cytat
Może nie byle szybciej ale na kolanie chwilami tak
To zły projekt sobie wziąłeś na "wzór".
Go to the top of the page
+Quote Post
-=Peter=-
post
Post #23





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
pozatym z komercyjnego punktu widzenia, nie moge wykorzystac twojego kodu na powaznie, bo nie ma on zadnej gwarancji dzialania, a dobre testy sa taka wlasnie gwarancja

Zapomniałeś słowa które pogrubiłem. To że się napisze kilka testów, które powiedzmy pokrywają 40% kodu, to nie znaczy że są jakąkolwiek gwarancją (IMG:style_emoticons/default/winksmiley.jpg) Ale ogólnie z tym stwierdzeniem się mogę zgodzić.

Jeśli chodzi o sam framework, to nie będę mocno krytykował, jednak stwierdzę że pośpieszyłeś się z jego publikacją.

* Już kilka osób zwróciło Ci uwagę np. na metodę sf_view::factory(). To nie jest implementacja wzorca factory, abstract factory, ani factory method, więc skąd taka nazwa tej metody? po co ona jest? (IMG:style_emoticons/default/snitch.gif)

* Masz za duże zamiłowanie do metod statycznych, zdecydowanie za bardzo klasy pisane przez Ciebie przypominają zlepek funkcji. Równie dobrze ponad połowa frameworku mogła by być napisana samymi funkcjami w poszczególnych przestrzeniach nazw (czyli przykładowo cache\get). Pamiętaj że istota oop to nie procedury, a dane i operacje na nich.

* Zdecydowanie zbyt dużo singletonów, najlepiej jakby w ogóle tego tworu nie było.

* Styl kodowania (nie mówię tutaj o formatowaniu, ale o ogólnym sposobie pisania klas, metod itp.) pozostawia wiele do życzenia.
Go to the top of the page
+Quote Post
Spawnm
post
Post #24





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




1/3 to static z tego co widzę, ale macie rację bo i ja się zastanawiałem czy by z niektórych metod nie wywalić static.

//Styl kodowania (nie mówię tutaj o formatowaniu, ale o ogólnym sposobie pisania klas, metod itp.) pozostawia wiele do życzenia.
chodzi ci o nazewnictwo czy spacje/entery jak skowronowi ?

Cytat
* Już kilka osób zwróciło Ci uwagę np. na metodę sf_view::factory(). To nie jest implementacja wzorca factory, abstract factory, ani factory method, więc skąd taka nazwa tej metody? po co ona jest? snitch.gif


No w sumie mogłem tam dać load czy coś w tym stylu.
A wykorzystuje to tak:
  1. $view=sf_view('home');
  2. $view->title='aaa';
  3. $view->main=sf_view::factory('news')->helper('form')->render();
  4. $view->render();

Może i głupie może i nie (IMG:style_emoticons/default/tongue.gif)
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
Quantum
post
Post #25





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kod rzeczywiście mało czytelny, przynajmniej dla mnie. To formatowanie PEAR, trafiłem ? (IMG:style_emoticons/default/biggrin.gif) Gdyby przepuścić pliki przez jakiś "upiększacz" można było by poczytać, teraz dość ciężko analizować kod. A teraz tak pobieżnie, widać, że dużo pracy w to włożyłeś. Sam może z rok temu dziergałem kod własnego - niestety do niczego to nie doprowadziło. Straciłem zapał i stwierdziłem, że lepiej skorzystać z innego framework-a, którego nie tworzy jedna osoba. Po jakimś czasie napewno wyszło by wiele tzw. "wąskich gardeł", które uniemożliwiały lub utrudniałyby dalszy rozwój aplikacji. Wzorowałeś się na Kohanie ? Co do struktury katalogów, rzeczywiście konfiguracja, logi, cache etc., już należą do aplikacji. W katalogu bibliotek nic poza ich kodem, sterownikami nie powinno być. W ostateczności konfiguracja domyślna, lecz nadpisywalna przez tę w folderze aplikacji. Kod ocenię jak będę miał trochę więcej czasu (IMG:style_emoticons/default/winksmiley.jpg)

BTW. http://beta.phpformatter.com.

Ten post edytował Quantum 8.07.2010, 22:15:34
Go to the top of the page
+Quote Post
-=Peter=-
post
Post #26





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jeśli chodzi o styl kodowania to co mi się rzuciło w oczy:
- niespójne komentarze, raz przed metodą w stylu phpDoc, raz zwykłe jedno linijkowe
- niechlujstwo i niekonsekwencja - np. raz przed przecinkiem jest spacja, raz jej nie ma
- kod ciężko się czyta, próbujesz ratować jego czytelność miejscami gęsto osadzonymi jedno linijkowymi komentarzami, co jest właśnie oznaką tego że kod nie jest czytelny (IMG:style_emoticons/default/winksmiley.jpg) Lepiej zamiast pisać takich komentarzy zmienić nieco kod.
- trochę powtórzeń kodu
- niektóre metody są za duże, powinny być rozbite na kilka mniejszych (metody za duże rozpoznasz po tych komentarzach które zajmują jedną liniję)

Aby nie być gołosłownym, przykład (IMG:style_emoticons/default/winksmiley.jpg)

Oryginalny kod:
  1. class sf_orm {
  2. public function update($values=array(), $where=array() , $sep=' AND '){
  3. $where=(is_array($where))? $where : array($this->_tableKey=>$where);
  4. return $this->_db->update($this->_tableName , $values,$where , $sep );
  5. }
  6.  
  7. public function updateRequest(array $req, $where=array() , $sep=' AND '){
  8. //valid values
  9. if($this->_structure){
  10. foreach($req as $key => $val){
  11. if(!in_array($key,$this->_structure)){
  12. unset($req[$key]);
  13. }
  14. }
  15. }
  16. //create where
  17. $where=(is_array($where))? $where : array($this->_tableKey=>$where);
  18. //execute
  19. return $this->_db->update($this->_tableName,$req, $where, $sep);
  20. }
  21. }


Lekko zrefaktorowany:
  1. class sf_orm {
  2. public function update($values=array(), $where=array() , $sep=' AND '){
  3. $where = $this->createWhere($where);
  4. return $this->doUpdate($values, $where, $sep);
  5. }
  6.  
  7. private function createWhere($where){
  8. if(!is_array($where)){
  9. $where = array($this->_tableKey=>$where);
  10. }
  11.  
  12. return $where;
  13. }
  14.  
  15. private function doUpdate($values, $where, $sep){
  16. return $this->_db->update($this->_tableName, $values, $where, $sep);
  17. }
  18.  
  19. public function updateRequest(array $req, $where=array() , $sep=' AND '){
  20. $values = $this->deleteUnusedValues($req);
  21.  
  22. return $this->update($values, $where, $sep);
  23. }
  24.  
  25. private function deleteUnusedValues(array $values){
  26. if($this->_structure){
  27. $values = array_intersect_key($values, $this->_structure);
  28. }
  29.  
  30. return $values;
  31. }
  32. }


Ten post edytował -=Peter=- 8.07.2010, 22:21:54
Go to the top of the page
+Quote Post
Zyx
post
Post #27





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Ja się przyczepię do wynajdowania koła na nowo. Nie chodzi mi o framework, jako taki, ale o zastosowane w nim rozwiązania. Co skłoniło Cię do wyprodukowania pliku sf_date.php, kiedy PHP już od co najmniej kilku lat ma wbudowane, prekompilowane i obiektowe rozszerzenie do zarządzania datami, które na pewno jest bardziej dokładne, niż Twoje?

http://docs.php.net/manual/pl/class.datetime.php

Patrzymy do sf_math, a tam:

Kod
public static function hex2dec($number){


http://docs.php.net/manual/pl/function.hexdec.php

Lub przekombinowane algorytmy. sf_math::hex2rgb() - jakieś skomplikowane operacje na tekście tam robisz, a taka konwersja to de facto zrzutowanie tekstu na liczbę całkowitą, przepuszczenie jej przez trzy maski bitowe i zrobienie przesunięć w prawo.
Go to the top of the page
+Quote Post
Spawnm
post
Post #28





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Hey,
takie klasy jak math czy date wpadły do frameworka bo swego czasu napisałem funkcje które tam obecnie się znalazły w formie metod i uznałem że skoro mi się pewnie kiedyś przydały to może i teraz komuś się przydadzą (IMG:style_emoticons/default/smile.gif)

Co do config debug itp w sf, możecie je dać gdzie wam się podoba, tylko w index.php zmodyfikujcie define().

@Quantum -> ten programik narzuca stosowanie
  1. nazwa()
  2. {
  3. //coś
  4. }

I zbyt wiele w kodzie nie zmienia ... no wcięcia mi zmniejszył . Nie powiedział bym aby kod z rezultatu był czytelniejszy , przynajmniej nie dla mnie .

'Wzorowałeś się na Kohanie ?'
W pewnym stopniu tak, do zenda też mi się zaglądało a i po dokumentacjach innych frameworków przeleciałem palcem zobaczyć jak oni różne rzeczy rozwiązali .
Go to the top of the page
+Quote Post
cojack
post
Post #29





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Czepiacie się, wszystko idzie dopracować, jak jemu działa i mu odpowiada to jest jego projekt, można błędy powytykać ale po co mieszać od razu gościa z błotem? Nikt Wam nie każe używać jego projektu, mi by nawet na tym nie zależało by ktoś używał mojego jak zrobię ( a zrobię release ), a chętnie po wysłuchuje zrypek ;]

Wcale nie jest prymitywny, tylko prosty, czasami człowiek na prawdę nie wie gdzie jaką metodę wrzucić, nie każdy jest po studiach z inżynierią oprogramowania, gdzie takie rzeczy po prostu wałkują w Ciebie.
Go to the top of the page
+Quote Post
phpion
post
Post #30





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




A mi się podoba! Prosty, mały i zapewne do takich celów został stworzony. Może nie jest idealny, ale jeśli spełnia swoją rolę to w czym rzecz? Do każdego frameworka (nawet tych klasy enterprise) można się doczepić.

Odnośnie pytania dlaczego nie używać np. ZF dla małych projektów: wydaje mi się, że narzędzia powinno dobierać się pod konkretne wymagania i potrzeby, a nie z pały łubu-dubu. ZF dla strony domowej z formularzem kontaktowym to moim zdaniem przerost formy nad treścią.

PS: skrót sf faktycznie jest mylący, również w pierwszej kolejności skojarzyłem go z symfony i myślałem, że to jakiś Twój fork tego frameworka (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
wookieb
post
Post #31





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A ja bym prosił o jakieś dane dotyczące zużycia pamięci, czas wykonywania dla konkretnych przykładów stron (co tam jest itd)
Go to the top of the page
+Quote Post
Quantum
post
Post #32





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@up, popieram, uwzględnij też manipulacje danymi na jakimś większym zbiorze przez ORM (IMG:style_emoticons/default/smile.gif)

w kodzie często używasz ternary operator ze zbędnymi nawiasami np:

  1. /**
  2. *get cookie param
  3. *
  4. *@param - string - param name
  5. *@param - if cookie with self param not exists return this param
  6. *@return - string
  7. */
  8. public static function get($name,$or=null){
  9. return (isset($_COOKIE[$name]))? $_COOKIE[$name] : $or;
  10. }


wystarczy

isset($_COOKIE[$name])? $_COOKIE[$name] : $or;

ale to drobnostka. Sprawdź sobie formatowanie Allman BSD, jest dość podobne do tego, które zastosowałeś. Przykłady:

  1.  
  2. $tablica = array(
  3. 'x' => 17,
  4. 'y' => 29
  5. );
  6.  
  7. $bool = false;
  8.  
  9. if (warunek)
  10. {
  11. //kod
  12. }
  13.  
  14. switch (warunek)
  15. {
  16. case 'a':
  17.  
  18. //kod
  19.  
  20. break;
  21. }
  22.  
  23. class example {
  24.  
  25. public function a()
  26. {
  27. //kod
  28. }
  29.  
  30. }
  31.  


A tak na boku, zamierzasz zaimplementować url forwarding ? brakowało tego w Kohanie.
Go to the top of the page
+Quote Post
Spawnm
post
Post #33





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat
Może nie jest idealny, ale jeśli spełnia swoją rolę to w czym rzecz?

Jest to pierwsze publiczne wydanie , jak byście powiedzieli że jest idealny to byś się mocno zdziwił.

Co do skrótu sf - symfony :
w plikach symfony stosuje nazwy klas w formie sfNazwaKlasy , ja ze względu na loader klas stosuję sf_nazwa_klasy więc mylić się aż tak nie powinno.

@Wookieb - w wolnej chwili porobię i dam na forum,blogu bo i tak się do tego przymierzałem.

//-----

Cytat
A tak na boku, zamierzasz zaimplementować url forwarding ?

są chyba 2-3 metody do przekierowań , opisz czego dokładnie oczekujesz.

Co do ternarów i niby zbędnego nawiasu - pomaga mi , kod dla mnie staje się czytelniejszy.

Cytat
Sprawdź sobie formatowanie Allman BSD

Nawet nie wiesz jak mnie wkurza gdy widzę że ktoś pisze w ten sposób .

Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
erix
post
Post #34





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Co do skrótu sf - symfony :
w plikach symfony stosuje nazwy klas w formie sfNazwaKlasy , ja ze względu na loader klas stosuję sf_nazwa_klasy więc mylić się aż tak nie powinno.

Ale to nie zmienia faktu, że pierwsze skojarzenie = symfony. (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
SHiP
post
Post #35





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Znalazłem czas. Przysiadłem i oto kilka rzeczy które mi się nie podobają (IMG:style_emoticons/default/winksmiley.jpg) .

1. Plik file.php metoda - mimeType() - kod, który tam masz jest żywcem z php.net (IMG:style_emoticons/default/winksmiley.jpg) i nie chodzi o to, że branie stamtąd to zło. Po prostu wiele osób, które się tam wypowiada nie orientuje się w temacie. Analogicznie tutaj - do sprawdzanie typu pliku używać się powinno http://www.php.net/manual/en/book.fileinfo.php Określanie mime po rozszerzeniu to jak picie płynu od obcej osoby tylko dlatego, że jest napis woda na butelce...

2. form.php to dla mnie jakaś pomyłka. Może to kwestia przyzwyczajenia ale po prostu nie korzystam z takich generatorów htmla. Jeśli natomiast chcesz to zostawic to popracuj nad poprawnością np.
  1. public function checkbox($name,$value,$check=false,$css=''){
  2. $check=($check==false)? '' : ' checked ';
  3. return '<input type="checkbox" name="'.$name.'" value="'.$value.'" '.$css.' '.$check.' />';
  4. }

Powinno być raczeh checked="checked" a $css powinno się nazywać $others lub podobnie bo widzę, że można w tym parametrze wstawić nie tylko css. W końcu czasem potrzeba title, rel lub disabled. W input type="text" nie masz readonly itd. Do dopracowania jest ta klasa

3. image.php - jeżeli nie przefiltrujesz ręcznie nazwy pliku to klasa będzie dziurawa. Nie uzywaj getimagesize() tylko exif_imagetype()
4. jquery.php - ?
5. Brakuje mi klasy do tłumaczeń

Ogólnie widzę, że się nieźle napracowałeś. Sporo kodu jest w porządku choć osobiście nie będę korzystał z dwóch powodów:
1. męcząca dla mnie składnia(np to że muszę za każdym razem ręcznie tworzyć widok lub model)
2. Mam swój, lepszy haha (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował SHiP 9.07.2010, 09:57:30
Go to the top of the page
+Quote Post
Quantum
post
Post #36





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Spawnm)
Cytat

Sprawdź sobie formatowanie Allman BSD

Nawet nie wiesz jak mnie wkurza gdy widzę że ktoś pisze w ten sposób .


wyluzuj.. to tylko sugestia (IMG:style_emoticons/default/winksmiley.jpg)

Jeśli chodzi o url forwarding, to miałem na myśli przekierowanie na inny kontroler/akcje bez zmian w pasku adresowym. Na przykład:

wchodzisz do strefy płatnej: http://przyklad.pl/artykuly/166/tytul-arta

zamiast artykułu widzisz stronę z informacją o dokonaniu płatności, bez przekierowania na np. adres: http://przyklad.pl/abonament choć będzie to w rzeczywistości ten sam kontroler.

Ten post edytował Quantum 9.07.2010, 10:01:25
Go to the top of the page
+Quote Post
Spawnm
post
Post #37





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Zobacz czy sf_controller::getAction spełnia twoje oczekiwania

@SHiP -> masz lepszy? Pokaż. (IMG:style_emoticons/default/smile.gif)

Cytat
1. męcząca dla mnie składnia(np to że muszę za każdym razem ręcznie tworzyć widok lub model)

do widoku masz mini ułatwienie w formie sf_template , opisz dokładniej w czym problem.
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
Quantum
post
Post #38





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat
Zobacz czy sf_controller::getAction spełnia twoje oczekiwania


HMVC.

  1. public function indexAction(){
  2. $view=new sf_view('spawn');
  3.  
  4. // forwarding
  5. $controller = new sf_controller;
  6. echo $controller->getAction('spawn', 'info');
  7.  
  8. $view->render(false);
  9. }
  10.  
  11. public function infoAction(){
  12. return 'info';
  13. }


po zmianie na echo w infoAction (zachowanie $view->render(true)) nie ma sensu już wywoływać echo $controller->getAction, trzeba to poprawić, albo na ob_* - nie zbyt elegancko, albo w klasie widoku udostępnić metodzie getAction manipulację zwracaniem/wyświetlaniem wyniku.

  1. /**
  2. *use sf_html::pre to write $val
  3. *
  4. *@param - array - param to write
  5. */
  6. public function pre($val){
  7. sf_html::pre($val);
  8. }


czemu ma służyć to opakowywanie metod (sf_controller::pre()) ?

a tak ogólnie, nawet nieźle Ci to wyszło (IMG:style_emoticons/default/smile.gif)

Ten post edytował Quantum 9.07.2010, 10:37:52
Go to the top of the page
+Quote Post
Spawnm
post
Post #39





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat
czemu ma służyć to opakowywanie metod ?

mojemu lenistwu przy testowaniu wyników w trakcie pisania sf , wygodniej mi było w kontrolerze pisać $this->pre($result);

Cytat
a tak ogólnie, nawet nieźle Ci to wyszło smile.gif

A dziękuje (IMG:style_emoticons/default/smile.gif)


udostępniłem 1.0.6 bez błędów (przynajmniej bez większości błędów (IMG:style_emoticons/default/tongue.gif) )
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
Crozin
post
Post #40





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
mojemu lenistwu przy testowaniu wyników w trakcie pisania sf , wygodniej mi było w kontrolerze pisać $this->pre($result);
To weź sobie w swoim edytorze ustaw szablon, by po wpisaniu nie wiem... "pre" wywalało "sf_html::pre" czy jak to tam masz, a nie śmieć w "finalnym wydaniu"

PS. Jak chcesz udostępniać to jako OS, to wypadałoby udostępnić jakieś narzędzia do zgłaszania błędów, może publiczne repozytorium (polecam GITa) - nieco się pospieszyłeś z publikacją.

Ten post edytował Crozin 9.07.2010, 10:50:09
Go to the top of the page
+Quote Post
marcio
post
Post #41





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
PS. Jak chcesz udostępniać to jako OS, to wypadałoby udostępnić jakieś narzędzia do zgłaszania błędów, może publiczne repozytorium (polecam GITa) - nieco się pospieszyłeś z publikacją.

Boze @Crozin ale jestes fiskalny widze e lubisz potruc...;]
Mysle ze i tak nie zalezy mu na tym zeby ktos go uzywal raczej chcial pokazac to co robil w "wolnym" czasie by uslyszec opinie innych (IMG:style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Spawnm
post
Post #42





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Jak ktoś będzie chciał zgłosić błąd to ma formularz kontaktowy + forum
Go to the top of the page
+Quote Post
cojack
post
Post #43





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Dalej nie wyczyściłeś paczki do ściągnięcia z kopi zapasowych plików.
Go to the top of the page
+Quote Post
SHiP
post
Post #44





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Napisz sobie skrypt do czyszczenia katalogów. Ja w swoim fw napisałem sobie coś takiego i nie mam problemów ze złożeniem paczki.
Kod
#!/bin/sh
echo "=== Czyszczenie katalogów ==="
echo "Usuwanie katalogów .svn z `pwd`"
rm -rvf `find . -type d -name .svn`

echo "Usuwanie plikow .directory z `pwd`"
rm -rvf `find . -type f -name .directory`

echo "=== Czyszczenie pamięci cache ==="

rm -v `find ./application/cache/config/site/ -type f`
rm -v `find ./application/cache/view/xhtml/ -type f`
rm -v `find ./application/cache/handycode/ -type f`
rm -v `find ./log/errors/ -type f`
rm -v `find ./log/userActions/ -type f`
Go to the top of the page
+Quote Post
cojack
post
Post #45





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Wystarczy że by używał SVN i export.
Go to the top of the page
+Quote Post
Spawnm
post
Post #46





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




dobra pierwsze mini testy wydajnościowe:

kohana 2 nie posiada pdo , ko3 niby posiada ale ma inne metody niż klasa dla mysql a nie wiem jakie i jakoś nie chce mi się szukać , ktoś chce to nie powie.

test polegał na :
1. odpalenie klasy pager ,
2. wykorzystanie ORM do sprawdzenia COUNT(*) , a tym samym pierwsze odpalenie klasy DB oraz połączenie z bazą
3. za pomocą ORM pobranie pierwszych 15 rekordów.
i z tego jest pierwszy wynik
2 wynik jest z tego samego testu jednak w chwili gdy klasa db oraz baza zostały już aktywowane.


sf_:
pager + orm::count + findall limit 15 | pdo
Array ( [memory] => 40624 [time] => 0.00448 )
Array ( [memory] => 2308 [time] => 0.00059 )

ko3:
pager + orm::count_all + find_all limit 15 | mysql
Array ( [memory] => 1338840 [time] => 0.01300 )
Array ( [memory] => 3248 [time] => 0.00041 )

ko2:
pager + orm::count_all + find_all limit 15 | mysql
Array ( [memory] => 676600 [time] => 0.00601 )
Array ( [memory] => 2272 [time] => 0.00067 )

Go to the top of the page
+Quote Post
wookieb
post
Post #47





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Chodzi mi o zużycie pamięci dla całej przykładowej strony (menu, paginacja i wiele innych atrakcji) np panelu administracyjnego, strona z artykułem, strona logowania itp itd.
Go to the top of the page
+Quote Post
cojack
post
Post #48





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Bez przesady, to jest za dużo roboty wookieb.
Go to the top of the page
+Quote Post
Spawnm
post
Post #49





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




A mogę zobaczyć takie przykłady innych frameworków, są gdzieś w sieci ?
Dzięki temu wystarczyło by że zrobił bym ten panelik w swoim fw i porównał wyniki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
cojack
post
Post #50





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Spawn powiedz mi czemu użyłeś buffera zamiast evala w templatkach?
Go to the top of the page
+Quote Post
erix
post
Post #51





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Uznam, że nie było tego pytania.

A mawiają, że nie ma głupich (pytań). (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
cojack
post
Post #52





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Bo nie ma głupich pytań, są tylko głupie odpowiedzi. Także czekam na odpowiedź.
Go to the top of the page
+Quote Post
patryczakowy
post
Post #53





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

Ostrzeżenie: (0%)
-----


Cytat
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają


A czemu niema wersji polskiej?

Go to the top of the page
+Quote Post
Spawnm
post
Post #54





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Potem będzie.
Dobra, daję do użytku wersję 1.0.7 , to i owo jeszcze do optymalizacji zostało ale to w między czasie (IMG:style_emoticons/default/winksmiley.jpg)
A tego, dodałem do wiem bajer że jak nie zadeklarujecie pliku w sf_view() to ładuje controllerName/actionName.phtml .

Miłego testowania , ja ktoś wpadnie na pomysł co by tu dodać to pisać śmiało (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
skowron-line
post
Post #55





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Tak sobie przejrzałem całą stronę i muszę powiedzieć że twój angielski to kuleje i to mocno.

Cytat
In this lesson I show you whats use Model in project.


Przepisz to albo daj komuś flaszkę żeby miało to ręce i nogi.
Go to the top of the page
+Quote Post
SHiP
post
Post #56





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Rzeczywiście. Nie trzymasz się żadnych reguł gramatycznych. Często można spotkać kwiatki typu:
Cytat
Ok, its work


Poczytaj też o "must", "need to", "should" oraz "have to" ponieważ dziwnie zdania budujesz. Teraz to brzmi jak z translatora ;].
Go to the top of the page
+Quote Post
cojack
post
Post #57





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Czuje się olany ;/
Go to the top of the page
+Quote Post
Spawnm
post
Post #58





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat
Teraz to brzmi jak z translatora ;].

Wiesz, pisząc stronę uznałem że nie będe tam zbyt dużo wsadzał swojego angielskiego bo nie jestem w tym pro i tłumaczenie zostawiłem google translate (IMG:style_emoticons/default/winksmiley.jpg)

Cytat
Czuje się olany ;/

Chodzi ci o to czemu nie lubię eval ?
Hmm... bo nie (IMG:style_emoticons/default/tongue.gif) Nie ufam tej funkcji jak chyba większość programistów + zjada więcej pamięci.
Go to the top of the page
+Quote Post
cojack
post
Post #59





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


To się nazywa odpowiedź (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
erix
post
Post #60





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~cojack, na weekendy sobie urywam od forum, więc teraz proszę bardzo - będzie wyczerpująca odpowiedź:
eval jest ZUY, bo:
  1. jest nieoptymalny (kod przetwarzany i parsowany wewnątrz drugi raz, po parsowaniu właściwego)
  2. kod w stringu UNIEMOŻLIWIA działanie akceleratora na nim, patrz: punkt poprzedni
  3. istnieje duże ryzyko wstrzyknięcia niepożądanego kodu
  4. jest problem z podpowiadaniem wewnętrznej składni przez edytory
  5. ogólnie eval jest złą praktyką i tępioną (zresztą słusznie), tak samo, jak goto, czy global. To nie assembler. (IMG:style_emoticons/default/tongue.gif)
  6. funkcjami buforowania wyjścia możesz łatwo przechwycić wygenerowaną zawartość i wrzucić ją do cache (co w przypadku eval wymagałoby i tak dodawania jakiegoś ob_*, chyba że wrzucasz do jakiejś zmiennej)

jeszcze jakieś pytania?
Go to the top of the page
+Quote Post
Spawnm
post
Post #61





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




To ja dodam ciekawostkę że zend też jedzie na ob_*

(Proszę profilaktycznie o nie robienie mi flate w temacie o wyższości eval nad ob_* (IMG:style_emoticons/default/tongue.gif) )
Go to the top of the page
+Quote Post
cojack
post
Post #62





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


czyli wywnioskowaliście jedną słuszną teorię ob ok ;D


@dobra, poko to Ci Spawnm zapiernicze kawałek kodu z fw do swojego ;]

Ten post edytował cojack 12.07.2010, 11:15:05
Go to the top of the page
+Quote Post
Quantum
post
Post #63





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


masz zamiar usprawnić router w przyszłości ? dokładniej chodzi mi o to:

Cytat(Crozin)
10. Czy mi sie wydaje czy router polegnie, gdy będę chciał: /my-awesome-product-123.html przekierować na kontroler: product, akcje: index z parametrem id = 123?


ja u siebie zrobiłem to tak, że sprawdzam tablicę $routes czy któryś klucz (tutaj wzorzec regex) pasuje do aktualnego URI, jeżeli tak dajemy preg_replace na uri i rozbijanie na poszczególne elementy odbywa się dalej.
Go to the top of the page
+Quote Post
Spawnm
post
Post #64





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Pewnie coś się w przyszłości zmieni.
Obecnie to zwykła tablica gdzie index jest porównywany z 1 parametrem z uri .
(dziś lub jutro udostępnię nową usprawnioną wersję. )
Go to the top of the page
+Quote Post
Quantum
post
Post #65





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Masz błąd w paczce 1.2.4, gdy nie ma metody init/end w kontrolerze skutkuje to fatal errorem (domyślnie), nie sprawdzasz czy takowe wogóle istnieją. (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Spawnm
post
Post #66





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Wiem,
ale init() i end() są domyślnie w sf_controller i sf_template dlatego nie sprawdzam.
//edit
aha już wiem o co biega (IMG:style_emoticons/default/snitch.gif)
//edit
done.

---------------------------------------
hey,

powiedzcie mi czego wam jeszcze brakuje w tym fw?
W najbliższym czasie na pewno dojdzie mn. klasa translate , wybór czy routring ma być z pregiem , nadawanie nazw zmiennym z uri.
Tylko co byście do tego jeszcze chcieli , czego wam brakuje ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
cojack
post
Post #67





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Żeby robił kanapki?
Go to the top of the page
+Quote Post
skowron-line
post
Post #68





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 31.08.2010, 14:13:41 ) *
powiedzcie mi czego wam jeszcze brakuje w tym fw?

Głupio mi że się powtarzam, ale może popraw dokumentację bo tego fw nikt poważnie nie potraktuje.
Cytat
Adwanced Usage:

Go to the top of the page
+Quote Post
Crozin
post
Post #69





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Skoro to jest nowy "framework", to dlaczego nie korzystasz z dostępnej od ponad roku wersji 5.3 PHP?
Go to the top of the page
+Quote Post
SHiP
post
Post #70





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Crozin ma rację. Doszło sporo fajnych rzeczy jak np. GOTO (IMG:style_emoticons/default/biggrin.gif) Żarty, żartami ale u siebie zaczynam stosować przestrzenie nazw. Możesz też zainteresować się tym tematem (IMG:style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
cojack
post
Post #71





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


@Crozin bo na większości hostingów to nie zadziała?
Go to the top of the page
+Quote Post
Crozin
post
Post #72





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@cojack: ten argument byłby dobry jeszcze 6 miesięcy temu - teraz już nie bardzo. A jak ktoś ma serwer ze starymi wersjami PHP - jego problem. To już nie jest nowość.
Go to the top of the page
+Quote Post
Spawnm
post
Post #73





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




6 miesięcy temu ? A niby które hostingi obecnie pozwalają korzystać z php5.3 ?
Go to the top of the page
+Quote Post
nospor
post
Post #74





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
A niby które hostingi obecnie pozwalają korzystać z php5.3 ?
Ależ proszę bardzo, pierwszy z brzegu: localhost (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
erix
post
Post #75





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
@cojack: ten argument byłby dobry jeszcze 6 miesięcy temu - teraz już nie bardzo

Guzik prawda. Jeszcze mało który z popularnych posiada PHP 5.3. Osobiście jeszcze tę wersję zlewam, jak się upowszechni, to zacznę stosować, gdyż obecnie nie ma to jeszcze sensu (chyba że piszesz aplikacje na dedyki, to wtedy co innego; a parę nowych funkcji by mi się przydało.)

Lajf is brutal, Winetu
Go to the top of the page
+Quote Post
wookieb
post
Post #76





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie wszędzie jest php 5.3 i nigdy w życiu nie chciałbym być w sytuacji gdy muszę zrobić coś na wybranym hostingu gdzie jest niższa wersja php a mój system nie jest do tego przygotowany.
Go to the top of the page
+Quote Post
Crozin
post
Post #77





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wiem, że to może lekko aroganckie, ale już od bardzo dawna nie pisałem aplikacji na zwykły współdzielony hosting za 150zł/rok. Wiem, że badziewia pokroju home.pl czy nazwa.pl nie będą miały tych wersji, ale nieco bardziej solidne/mniejsze firmy już chyba tak - chciałem Ci to nawet udowodnić sprawdzając kilka pierwszych lepszych ofert znalezionych po wpisaniu "hosting" w Googleu, ale niestety udostępnienie wyników phpinfo() to zbyt wielki wysiłek z tego co widzę.
Go to the top of the page
+Quote Post
melkorm
post
Post #78





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Przykład z brzegu OVH, 5.3 od ręki (IMG:style_emoticons/default/smile.gif)

Co nie zmienia faktu że nawet mając tam 5.3 na wirtualce nie chciałbym wrzucać aplikacji na serwer gdzie jest niższa wersja PHP'a co już mi się parokrotnie zdarzało ... .
Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 14:40