![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Witam, ostatnio na własne potrzeby zacząłem pisać coś w czym będę się czuć swobodnie pisząc kolejne aplikacje internetowe, to tak zwany "szkielet".
Uwaga, uwaga, w celu rozwiania pewnych uwag i wątpliwości pojęcie framework zostało objęte cudzysłowiem ponieważ jest to framework po mojemu, jeżeli komuś się nie podoba to nie musi używać i nie, nie będę patrzeć na Zend Framework czy inne frameworki - ten jest inny! Jednak jestem zwolennikiem Wolnego i Otwartego Oprogramowania dlatego postanowiłem, że podzielę się Swoją pracą z innymi ludźmi. Hosting projektu zapewnia github.com, niestety muszę przyznać, że to mój pierwszy projekt hostowany na GIT i mam nadzieję, że nic nie zepsuje po drodzę ( jestem ostrożny ) (IMG:style_emoticons/default/smile.gif) === TU TNIJ === Przejdę do rzeczy, konkrety, konkrety! No i oczywiście dodam link do repozytorium projektu: http://github.com/webnull/OpenWikiBlog Jądro Całość jest zbudowana w oparciu o jądro, a reszta to tylko moduły. Jądro może nie waży zbyt wiele, ale jest na prawdę funkcjonalne. Cechy jądra:
"Module On Demand" Wystarczy odwołać się do modułu który nie został załadowany aby został załadowany (IMG:style_emoticons/default/smile.gif) Kod $Kernel -> module -> moduleFunction ( Arguments ); Powyższy przykład w razie gdy moduł "module" nie istnieje załaduje moduł oraz odwoła się do jego funkcji o zwróci porządaną wartość. Skrypty startowe
Odnośnie skryptów startowych, na wiki jeszcze niema nic opisane ale obiecuję, że wkrótce opiszę każdy szczegół konfiguracji razem z "kolorowymi" przykładami ( gotowcami ) w miarę prosto i zwięźle. Obsługa domyślnych modułów Moduł może zdefiniować Siebie jako domyślny do wykonywania danej czynności, np. moduł MojErrorHandler może wywołać $Kernel->setAsDefault('MojErrorHandler', 'error_handler' ); Po zdefiniowaniu domyślnego modułu np. Error Handlera inne moduły będą go używać w taki sposób: Kod $Kernel->error_handler->log('asd'); "hooking" ( zaczep ) - czyli jak zmodyfikować prywatną zmienną wewnątrz funkcji innej klasy Od niedawna ( dwa ostatnie commity ) dodałem moduł libhooks ( nazwa wywoławcza: hooks ). Moduł pozwala zmodyfikować prywatną zmienną wewnątrz funkcji innego modułu jeżeli ten moduł na to pozwoli. Jak to działa w praktyce? Moduł który chce zmodyfikować dane innego modułu musi być załadowany najpierw. Definiujemy zaczep o nazwie np. "moj_zaczep" podając dodatkowo nazwę klasy i funkcji która ma być wywołana do zmodyfikowania danych przekazanych z zaczepu. Definicji dokonujemy w module który startuje najpierw. Teraz startujemy moduł który posiada dane do zmodyfikowania przez inny moduł, wykonujemy zaczep wrzucając do niego dane które przejmie drugi moduł i zwróci "w poprawionej wersji". Teraz prosty przykład:
Jak powstają nowe funkcje oraz moduły Kernela? Oczywiście buduję własne strony na tym frameworku i jeżeli coś stoi na drodze to poprawiam to lub dodaję nową funkcjonalność i publikuję na bieżąco na githubie. Zawsze jednak jeżeli jesteś chętny/chętna do współpracy to na prawdę zapraszam, z chęcią przejrzę każdą poprawkę i dodam do projektu. Niestety nie posiadam teraz żadnego zewnętrznego hostingu, dlatego strona testowa ( mój warsztat ) nie zawsze jest dostępny, ale wtedy kiedy będzie to zapraszam: http://194.29.181.186/tuxplace-cube/ To jedna ze stron która działa na frameworku. Zapraszam do ocen, oraz do pomocy przy pisaniu kodu (wnoszeniu poprawek jak i funkcjonalności nowej) (IMG:style_emoticons/default/smile.gif) PS. OpenWikiBlog dlatego, że projekt miał być małym mechanizmem podobnym do bloga - jedynie tworzenie i edytowanie podstron HTML razem z panelem administracyjnym ale się rozrosło (IMG:style_emoticons/default/smile.gif) -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 13:31:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Nie muszę podawać argumentów, masz kod. No właśnie kod mnie nie zachęcił, ale może Twój fw ma jakieś szczególne funkcje, których nie widać na pierwszy rzut oka. Mówisz teraz tak, jak prelegenci z Microsoftu na phpConie. Pytam: dlaczego wg Pana Expression Web jest lepszy od konkurencji? A on: wcale nie twierdzę, że jest lepszy.. Sory, ale skoro nie jesteś pewien, jako autor, że Twój fw ma jakieś atuty, to raczej wątpliwe, aby wyszedł on z garażu. Może to brutalne, co powiedziałem, ale konkurencja jest i skoro nie możesz wypunktować jego mocnych stron - lepiej poświęcić czas na poznawanie innych, rozplanowanych. Sam od kilku lat rozwijam swojego fw i pomimo setek linii kodu, schematów powiązań między poszczególnymi elementami, nadal nie uważam, że nadaje się jeszcze do publicznych tekstów, znam jego słabe strony, ale jest też kilka mocnych, których inne nie mają. W przypadku Twojego, niestety, kod nie jest mocną stroną i bez dokumentacji nie da się czegoś wygodnie pisać. Zaskocz mnie, pokaż że warto się nim zainteresować. Marketing też jest istotny; nie sprzedasz nowej wiertarki z potrójnym udarem, jeśli na półce nie będzie się wyróżniała spośród reszty. Pamiętaj, że Twoja marka nie ma jeszcze wyrobionej opinii, więc musisz jakoś ZACHĘCIĆ odbiorców. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 22:13 |