Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [framework] Mohebo Framework
SHiP
post
Post #21





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

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


Cytat(Exek @ 13.09.2008, 10:56:47 ) *
Odnośnie http://framework.mohebo.pl/docs-8, zrób tak żeby w jedym pliku można było trzymać kilka tłumaczeń, bo tworzenie 4 plików w których tworzysz tyle samo <message> z takim samym <orginal>jest dobijające. Nie mówiąc jak później chce się dodać 10 nowych zdań do 4 różnych języków.


Aktualną składnię wybrałem ze względu na prędkość.
Powiązania między kilkoma plikami tłumaczeń będzie załatwiał graficzny edytor (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Temat: Edytor_tlumaczen
Go to the top of the page
+Quote Post
Exek
post
Post #22





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


Prędkość czego? Bo pewnie jakieś keszowanie zrobiłeś do tych xmli? A o edytorze zaraz się wypowiem w odpowiednim topicu.
Go to the top of the page
+Quote Post
SHiP
post
Post #23





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

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


W temacie dotyczącym Spawnm Frameworka Spawnm napisał:
Cytat("Spawnm")
@SHiP -> masz lepszy? Pokaż.

Zajęło mi to kilka dni ale przygotowałem paczkę (IMG:style_emoticons/default/winksmiley.jpg) .

Mohebo Framework 0.2

Huh, minęły prawie 2 lata. Sporo programowałem w tym czasie, często w oparciu o mój własny framework. Ten czas spowodował, że kilka rzeczy usprawniłem tak aby pracowało mi się szybciej i wygodniej. Pełnej listy zmian nie jestem w stanie podać ponieważ nie robiłem jej na bieżąco i nie wiem dokładnie co się zmieniło ;]. SVN zaktualizuję jutro, wtedy dowiem się więcej.


Krótki Changelog
Cytat
- zmiana licencji z LGPL na MIT
- parametry w routerze tj. /lang:pl/
- automatyczne logowanie widokow oraz modeli
- zmiana nazwy klasy z MoheboApplication na MoheboController
- wiele plikow routera(dla kazdej domeny inny)
- kilka nowych filtrów
- tworzenie nowych walidatorów jest również dostępne po przez stworzenie odpowiedniej klasy i umieszczenie jej w /system/core/validators/ (znajduje się tam już plik file.php). Aby walidator zadziałał wystarczy w wymaganiach określić typ na "file" (tj. nazwę pliku walidatora).


Framework można pobrać z mojego katalogu z projektami:
http://srodek.info/files/MoheboFramework-0.2.tar.gz

Dokumentacja jest dostępna pod adresem http://mohebo.com oraz wewnątrz paczki

Nowością jest katalog generator/ - jest w nim crud.php(nad tym to ja się dłuugo męczyłem) - plik generujący moduły administracyjne na podstawie plików konfiguracyjnych ( domyślnie 3 dostępne - in_news.php, in_galleries.php oraz in_photos.php) W środku katalogu TODO tłumaczące kilka rzeczy
Jestem leniwy i pisanie tych plików konfiguracyjnych ręcznie mnie nudzi więc tworzę powoli edytor graficzny - generator/configCreator.php Niestety nie działa on do końca poprawnie więc nie zalecam jego stosowania. Wrzuciłem jako ciekawostka (IMG:style_emoticons/default/winksmiley.jpg)

Czekam na wasze komentarze i opinie.

Co w najbliższej przyszłości? Zmiana architektury na prawidłowe MVC - tj. przerzucenie pobierania danych z kontrolera na widoki(starą konwencję również pozostawię) tak aby one same potrafiły dobrać się do odpowiedniego modelu. Możliwość tworzenia własnych filtrów oraz kilka innych usprawnień(to jeszcze zależy co mi zaproponujecie).

Dlaczego warto używać?
- lekki
- prosty
- chętnie pomogę na forum w przypadku wszelkich problemów oraz napiszę(o ile będą sensowne) dodatkowe moduły o jakie mnie poprosicie tak aby rozwijać ten framework w odpowiednim kierunku.

Pozdrawiam (IMG:style_emoticons/default/winksmiley.jpg) .

PS: piszę tutaj ponieważ jeden projekt = jeden temat. Jeżeli moderatorzy sądzą, że 2 lata to za długo to proszę wydzielić posty do oddzielnego tematu.
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




Z klas które mnie zainteresowały będzie chyba translator , przyjrzę się jemu potem z bliska (IMG:style_emoticons/default/snitch.gif)

Ale sieczka z wcięciami , kodem w komentarzach i brakiem komentarzy przy wielu metodach xp
Nazwy plików też ciekawe imageCreator.php , rainbow.class.php , rainbow_compiler.class.php ...

Kwiatki:
  1. class MoheboApplication extends MoheboController{}
  2. /...
  3. class MoheboView
  4. {
  5. protected $core = null;
  6. }


Spodziewałem się więcej po klasie mysqli ...
A pisałeś że masz lepszy (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
SHiP
post
Post #25





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

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


Cytat
Ale sieczka z wcięciami

tzn?

Cytat
kodem w komentarzach i brakiem komentarzy przy wielu metodach xp

Sporo tego jest powoli wszystko aktualizuję. Szczególnie wstawki phpdoc

Cytat
Nazwy plików też ciekawe imageCreator.php , rainbow.class.php , rainbow_compiler.class.php

To jest katalog z bibliotekami gdzie nie obowiązuje żadna konwencja co do nazwenictwa

Co do kwiatków w kodzie:
kwiatek 1: jest to spowodowane zmianą nazwy klasy z MoheboApplication na MoheboController. Zostawiłem do kompatybilności
kwiatek 2: Ok, brakuje słowa kluczowego abstract. Ta klasa jest bardziej pisana "na przyszłość"


mysqli wygląda jak wygląda ponieważ wbudowany w php moduł MySQLi jest całkiem dobry. Myślę jedynie nad dodaniem sterownika PDO lub własnego ORM-a

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





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




Cytat
'Ale sieczka z wcięciami'
tzn?

Zobacz sobie np. taki lib/mail.php

dalej:
  1. /**
  2.   * Zwraca wartość opcji o określonej nazwie
  3.   * @param string $name
  4.   * @return string
  5.   */
  6. public function getOption($name)
  7. {
  8. if(isset($this -> options[$name]))
  9. return $this -> options[$name];
  10. else return null;
  11. }
  12.  
  13. /**
  14.   * Ustala wartość opcji o określonej nazwie
  15.   * @param string $name
  16.   * @param mixed $value
  17.   */
  18. public function setOption($name, $value)
  19. {
  20. $this -> options[$name] = $value;
  21. }

nie wiem jak to tutaj wyświetli ale wcięcia to jak polecą tak będą z tego co widzę...

Dalej idąc - po co html ładowałeś do pagera ?
Go to the top of the page
+Quote Post
SHiP
post
Post #27





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

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


Ok dzięki. Reczywiście w email.php połowa wcięć jest robiona spacjami połowa tabulacją(przy ustawieniu tabulator = 4 spacje wygląda to normalnie). W pliku router.php komentarze dopisywałem później jak widzę z włączoną konwersją tabulatora na spacje. Zmienię to i sprawdzę czy inne pliki nie maj podobnych. Unormuję też kwestię pozostawiania lub nie nawiasów przy instrukcjach warunkowych bo jak widzę w starych plikach różnie to bywa.

2. A jak to inaczej rozwiązać? Pager powinien zwracać tablicę z elementami a nie kod html?

EDIT: poprawiłem te wcięcia, wyrzuciłem zakomentowane metody i zrobiłem reupload paczki

Ten post edytował SHiP 16.07.2010, 19:09:09
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




Zobacz jak to rozwiązałem ja (IMG:style_emoticons/default/smile.gif)
pager jako model robi obliczenia ile jest stron na jakiej jesteśmy itd. wynik przekazuje do widoku przez np. render po czym zwraca html z widoku. (do głównego pliku/kontenera widoku)
Czyli oddzielamy widok od modelu , u ciebie to jedność w pagerze.

  1. public function rotate($angle)
  2. {
  3.  
  4. }

Dalej
  1. resize_photo($img,$max_width,$max_height, $saveTransparency)

Czemu tutaj już nie dałeś $this -> readyImage ?

//edit
widzę że mieszasz w nazwach metod, raz dajesz z garbem getOption a raz z '_' resize_photo
Powód edycji: [Spawnm]: [Spawnm]:
Go to the top of the page
+Quote Post
Neo
post
Post #29





Grupa: Zarejestrowani
Postów: 43
Pomógł: 9
Dołączył: 8.08.2009
Skąd: Olsztyn

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


Chroń wszystkie plik przed bezpośrednim dostępem via WWW
/theme/framework/footer.php
/theme/framework/header.php
/theme/framework/index.php
(te pliki sypią błędami)

Utwórz pusty plik index / .htaccess bo możliwe jest listowanie katalogu
/application/cache/view/xhtml/

Nie privigles tylko privilege / privileges
Go to the top of the page
+Quote Post
SHiP
post
Post #30





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

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


Cytat(Neo @ 17.07.2010, 11:03:59 ) *
Chroń wszystkie plik przed bezpośrednim dostępem via WWW
/theme/framework/footer.php
/theme/framework/header.php
/theme/framework/index.php
(te pliki sypią błędami)

Utwórz pusty plik index / .htaccess bo możliwe jest listowanie katalogu
/application/cache/view/xhtml/

Stworzę stosowny plik htaccess

Cytat(Neo @ 17.07.2010, 11:03:59 ) *
Nie privigles tylko privilege / privileges


Ups. Straszna literówka. No nic pozmieniam wszystko i wrzucę paczkę za kilka minut...
EDIT: literówka poprawiona, uprawnieniami do katalogów zajmę się później...

Ten post edytował SHiP 17.07.2010, 11:15:17
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #31





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nie zagłębiałem się rozwiązania, kiedyś jakiś kwiatek w FW Spawna znalazłem, ale nie chciało mi się pisać.
Teraz jednak zapytam.

  1. class MoheboApplication extends MoheboController{}
  2. class mysqliModel extends MoheboApplication {}

Czyli co w końcu? (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
SHiP
post
Post #32





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

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


@Cysiaczek: trafna uwaga. Po prostu model i controller współdzielą sporo rzeczy. Zmieniłem Appliacation na Controller, a nie sprawdziłem zależności ;]. Widzę, że będę musiał zrobić MoheboXX(nad nazwą pomyślę), a z niego bedzie dziedziczyc MoheboController oraz MoheboModel. MoheboApplication wywalę w ogóle.

Dzieki jeszcze raz za komentarze i wyłapywanie głupot (IMG:style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
-=Peter=-
post
Post #33





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

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


Cytat
Widzę, że będę musiał zrobić MoheboXX(nad nazwą pomyślę), a z niego bedzie dziedziczyc MoheboController oraz MoheboModel. MoheboApplication wywalę w ogóle.

A nie lepiej utworzyć klasę "MoheboXX", której obiekt będziesz przekazywał do obiektów MoheboController oraz MoheboModel? Co wspólnego ma model i kontroler? To nie jest ta sama gałąź dziedziczenia, mają całkowicie inną budowę, inne zadania, jest to inna warstwa aplikacji. Poza tym w niektórych sytuacjach dziedziczenie lepiej zastąpić kompozycją, tak jak np. w tym przypadku. Nadużywanie dziedziczenia nie jest dobrym nawykiem (tak w ogóle to nie ma dobrych nawyków, ale to temat na inną dyskusję (IMG:style_emoticons/default/winksmiley.jpg) ).

Jestem przyzwyczajony do tego, że jedna klasa lub nawet interfejs z jedną jedyną metodą jest w osobnym pliku, no chyba że jest to klasa, która jest wykorzystywana tylko przez główną klasę w pliku i żadna inna klasa nie wie o jej istnieniu. Ale to już kwestia standardów jakich się trzyma (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
SHiP
post
Post #34





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

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


@-=Peter=-: ok, dzieki za uwagi. Dostosuję sie (IMG:style_emoticons/default/winksmiley.jpg)


--
EDIT:
Robię powoli porządki.

Ukończyłem kolejną wersję mojego frameworka php. Zmian jest niewiele lecz dotyczą głównego rdzenia oraz struktury frameworka. Jeżeli zajdą kolejne w strukturze plików i katalogów będą one jedynie drobnymi zabiegami kosmetycznymi. Zaktualizowałem stronę frameworka ? http://mohebo.com. Przepisałem dokumentację, tak aby przykłady działały w wersji 0.3. W przypadku błędów, problemów itp. proszę o kontakt bezpośredni.

Zapewne wiele osósb mogłoby zarzucić mi podobieństwo do Zenda (IMG:style_emoticons/default/winksmiley.jpg) . Dzieje się tak ponieważ tworzę warstwę kompatybilności, co umożliwi mi włączanie poszczególnych elementów Zenda do siebie. Po prostu nie chcę pisać od zera wielu bibliotek(np. generatora pdf, mailera etc).

Najważniejsze zmiany:

* Rozbudowałem klasę logującą błędy o wyświetlanie backtrace?u w postaci pokolo­rowanego kodu php wyciągniętego z plików powodujących błąd.
* Zmiana struktury katalogów. /system został przekształcony w /library. Katalog /log wskoczył wewnątrz application oraz doszedł nowy katalog bin(w nim będzie dostępna konsola od 0.4).
* Zmiana nazw klas i plików. Teraz każdy plik i klasa rozpoczyna się wielką literą.
* Przebudowa autoloadera. W przypadku stworzenia obiektu klasy Klasa_Cos_Innego lub KlasaCosInnego zostanie autmatycznie odczytany plik Klasa/Cos/Innego.php. Jednak w przypadku tworzenia obiektu klasy Klasa_Cos_InnegoTutaj już Klasa/Cos/InnegoTutaj.php. Dzięki temu zachowałem w pewnym stopniu kompatybilność z PSR-0 jednocześnie pozostawiając własną metodologię nienaruszoną.
* Dodanie metod init() orad end() do controllera. init() jest wyko ny wane przed uru­chomieniem akcji, end() po(Przy czym, jeżeli jedna akcja wykona inną akcję init() oraz end() zostaną wywołane tylko raz).

Link bezpośredni do paczki: http://srodek.info/files/MoheboFramework-0.3.tar.gz

Ten post edytował SHiP 14.09.2010, 07:43:45
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
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: 10.06.2026 - 06:58