![]() |
![]() |
![]()
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 ) ![]() === 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 ![]() 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) ![]() 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 ![]() -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 13:31:44 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nie przeglądałem dokładnie ale jak wrócę z pracy to zobaczę. Moje uwagi po 5 sekundach patrzenia w kod:
1. Dziwny sposób komentowania kodu. Dla mnie czytelniejszy nic JavaDoc/Doxygen etc ale inni pewnie cię wybluzgają za to =). Swoją drogą dlaczego # a nie // ![]() 2. Nazewnictwo. Chyba programowałeś w C zanim siadłeś do php ![]() 3. core/kernel.so.php
Powinno być $this->Apps -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
czemu w index.php masz session_start() ?
query() i dquery ( $Query ) w db a opisu brak , dokumentacji chyba też. Masz sporo kodu w komentarzach , czemu? Po co wciskasz smarty w lib? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
czemu w index.php masz session_start() ? query() i dquery ( $Query ) w db a opisu brak , dokumentacji chyba też. Masz sporo kodu w komentarzach , czemu? Po co wciskasz smarty w lib? Cytat(Spawnm) Po co wciskasz smarty w lib? Ponieważ tworzę uniwersalny interfejs dla systemu szablonów, tak aby w przyszłości dało się uwolnić od smarty i bezboleśnie przejść na inny system szablonów bez poprawy kodu PHP. Cytat(Spawnm) query() i dquery ( $Query ) w db a opisu brak , dokumentacji chyba też. Dokumentacja do bazy danych jest jeszcze nie gotowa, opublikuję ją na wiki jak tylko skończę. Cytat(Spawnm) Masz sporo kodu w komentarzach , czemu? Ostatnio zabrałem się trochę za optymalizację kodu, stąd kod w komentarzach - jakoś nie mam zwyczaju przy optymalizacji całkowicie kasować kodu szczególnie w publicznym projekcie. Cytat(Spawnm) czemu w index.php masz session_start() ? Nie mam pojęcia czy to złe rozwiązanie i dlaczego, ale po prostu rozpoczynam sesję w index.php ponieważ w frameworku zawsze index.php jest wykonywany bo to ten "główny plik" który uruchamia całą machinę. Po prostu jeżeli istnieje powód dlaczego session_start() nie może być w index.php to słucham i oczywiście poprawię. Dziękuję za zainteresowanie. PS. dquery() prawdopodobnie zniknie zaraz - utworzyłem tą funkcję w celach debugowania ponieważ PHP nie wyświetlało Mi błędów, to długa historia w jakich okolicznościach stworzyłem tą funkcję. Całkowicie o niej zapomniałem... @edit Cytat(SHiP) Powinno być $this->Apps Dzięki wielkie! "co kilka par oczu to nie jedna" ![]() -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 15:06:29 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Uwagi na szybko:
1. Jaki jest sens używania niestandardowego nazewnictwa, kiedy jest to wręcz wzorcowy sposób na uniemożliwienie ludziom normalnej pracy ze skryptem i integrowania go z takimi narzędziami, jakich potrzebują? Przeczytaj PSR-0 proposal i zacznij klepanie od nowa, jako weteran open-source wiem, co mówię ![]() 2. Kod public function __construct ( &$CFG, &$MODS, &$HTML, &$DEFMODS ) Po co Ci w tym i w wielu innych miejscach referencje? 3. Użycie Smarty - pomijając już samą absurdalność wyboru właśnie tego systemu szablonów (już lepiej w czystym PHP pisać), Twoje twierdzenie to niepotrzebne wynajdowanie koła od zera, gdyż taki projekt "uniwersalnego portu dla systemów szablonów" już istnieje i ma się całkiem dobrze. 4. core/modules/hardened.so.php - na co takie cuda? Magia przy parsowaniu danych wejściowych na dłuższą metę to jedno wielkie zło. 5. Bałagan w nazewnictwie funkcji, metod, klas... 6. Wynajdowanie kół od zera także w kilku innych miejscach. Przykład to system językowy - klepiesz wszystko od A do Z, tymczasem PHP 5.3 wprowadza bardzo fajne unikodowe klasy typu MessageFormatter, które dają tłumaczom większą precyzję? -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Zyx) Po co Ci w tym i w wielu innych miejscach referencje? Ponieważ oszczędzam każdy bajt pamięci, i nie potrzebuję powielać tablic jak mogę odwołać się do ich pamieci. Cytat(Zyx) gdyż taki projekt "uniwersalnego portu dla systemów szablonów" już istnieje i ma się całkiem dobrze Ale ten projekt nie jest modułem do mojego frameworka, tak więc nie mogę go swobodnie przyczepić i z niego korzystać - PHP nie oferuje takich możliwości. Gdybym chciał używać tego uniwersalnego portu dla wszystkich szablonów to musiałbym regularnie go pobierać z każdą nową wersją i modyfikować tak aby pasował u mnie. Cytat(Zyx) 4. core/modules/hardened.so.php - na co takie cuda? Magia przy parsowaniu danych wejściowych na dłuższą metę to jedno wielkie zło. Ten moduł jest domyślnie wyłączony, to jedynie ciekawostka - jeżeli ktoś chce to może używać takiego modułu. Cytat(Zyx) 6. Wynajdowanie kół od zera także w kilku innych miejscach. Przykład to system językowy - klepiesz wszystko od A do Z, tymczasem PHP 5.3 wprowadza bardzo fajne unikodowe klasy typu MessageFormatter, które dają tłumaczom większą precyzję? To moja standardowa biblioteka tłumacza. Zauważ, że tą bibliotekę w bardzo prosty sposób można zastąpić w przyszłości inną biblioteką która będzie używać np. MessageFormatter, to nie problem. MessageFormatter mogę wprowadzić do projektu jak będzie można, jest to świetna rzecz. Cytat(Zyx) 5. Bałagan w nazewnictwie funkcji, metod, klas... Dlaczego tak uważasz? Jeżeli to faktycznie prawda ( ja tego nie zauważam ) to myślę, że porządna dokumentacja to naprawi. Cytat(Zyx) Jaki jest sens używania niestandardowego nazewnictwa Wybacz, po prostu przyznaję się, że NIE ZNAM "STANDARDOWEGO NAZEWNICTWA". -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 15:35:11 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat klepiesz wszystko od A do Z, tymczasem PHP 5.3 wprowadza bardzo fajne unikodowe klasy typu MessageFormatter Ta, a PHP 5.3 jest już tak popularny na serwerach, że można go śmiało używać.... /irony mode off/ Cytat To jedna ze stron która działa na frameworku. Co z mod_rewrite? .so.php - co znaczy SO, bo jakoś nie mogę tego z niczym skojarzyć prócz uniksowych odpowiedników .dll. Cytat "Kernel Module Triggers" - czyli odpowiednie reguły które jeżeli się zgadzają to moduł zostanie załadowany ( uproszczona budowa zapewnia szybkość wykonywania kodu ) A tego kompletnie nie jarzę. ![]()
Huh, domniemam że u Ciebie coś w stylu modelu musi być w DB i np. zawartości katalogu nie możesz użyć wymiennie (tzn. wymieniasz adapter w modelu i nie trzeba nic grzebać)? index:
(pomijam już fakt, że wszędzie będzie prawie ten sam kod, więc po co do indeksa wrzucać? ![]() Musisz się każdorazowo łączyć z DB? A jak wykonuję stronę na plikach bądź cache'uje, to nawet jeśli wszystkie dane z cache odpowiadają zapotrzebowaniu, to i tak połączenie zostanie nawiązane? Fajnie, że zrobiłeś module on demand, ale zysk jest minimalny w porównaniu z tą samą techniką stosowaną przy łączeniu z DB. Cytat 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! Ale są pewne standardy, które - pomimo nieco większego nakładu pracy przy tworzeniu - umożliwiają późniejsze szybsze i bardziej eleganckie pisanie aplikacji, chociażby mod_rewrite, podział na (H)MVC/MVP (dopiero po napisaniu paru aplikacji na bazie własnego frameworka można dostrzec, czego brakuje), czy formularze. Nie ma w nim, niestety, nic porażającego... -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(erix) Huh, domniemam że u Ciebie coś w stylu modelu musi być w DB i np. zawartości katalogu nie możesz użyć wymiennie (tzn. wymieniasz adapter w modelu i nie trzeba nic grzebać)? Ten fragment mam zamiar przepisać tak aby części bazy danych były wymienne a co do samego Kernela to projekt nie zakłada, że będzie wymienny. Przepisanie tego fragmentu nie pochłonie wiele pracy, obecny kod służył do testów.. Cytat(erix) Co z mod_rewrite? Całość jest i będzie przygotowywana pod mod_rewrite, niestety narazie nie stoi to wysoko bo całość testuję na lighttpd bez mod_rewrite. Cytat(erix) .so.php - co znaczy SO, bo jakoś nie mogę tego z niczym skojarzyć prócz uniksowych odpowiedników .dll. Nazywając "Jądro" Kernel, a pluginy modułami wprowadzam "styl nazw Uniksowych" do mojego projektu. Cytat(erix) Musisz się każdorazowo łączyć z DB? A jak wykonuję stronę na plikach bądź cache'uje, to nawet jeśli wszystkie dane z cache odpowiadają zapotrzebowaniu, to i tak połączenie zostanie nawiązane? Fajnie, że zrobiłeś module on demand, ale zysk jest minimalny w porównaniu z tą samą techniką stosowaną przy łączeniu z DB. Module on demand to po prostu prosta funkcja która pozwala na ominięcie zależności, jest to standard nazwany "po imieniu" w projekcie. Co do bazy danych, to jak widzisz - łączę się z DB każdorazowo. Myślę, że wprowadzenie jakiegoś cache nie będzie wcale problemem, jednak z tym jeszcze poczekam. Cytat(erix) A tego kompletnie nie jarzę. ![]() Proszę zatem przeczytać cały post, nie tylko fragmenty. W dolnej częsci postu *w komentarzu konfiguracji* jest pokazany przykład zastosowania. Nie jest to jakaś zaskakująca funkcja w PHP, jednak jest zaskakująca w tym "frameworku" ze względu na jego budowę. Cytat(erix) Ale są pewne standardy, które - pomimo nieco większego nakładu pracy przy tworzeniu - umożliwiają późniejsze szybsze i bardziej eleganckie pisanie aplikacji, chociażby mod_rewrite, podział na (H)MVC/MVP (dopiero po napisaniu paru aplikacji na bazie własnego frameworka można dostrzec, czego brakuje), czy formularze. Wybierając mój "framework" wybiera się coś innego niż reszta frameworków, lecz bardzo chętnie przyjrzę się konkretnym standardom i jeżeli są warte zaimplementowania to z pewnością zaimplementuję ale jednak chcę nadal aby projekt rozwijał się inną drogą. -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 17:50:47 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast komentować kod włóż wysiłek w jego poprawę.
Jeśli kod wymaga komentarza to znaczy, że jest nieczytelny. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Zamiast komentować kod włóż wysiłek w jego poprawę. Jeśli kod wymaga komentarza to znaczy, że jest nieczytelny. To, że komentuję kod to nie znaczy, że jest nieczytelny. Po prostu opisuję go aby każdy przeglądajcy "był w kontekście" bez "główkowania" co gdzie i jak. -- WebNuLL -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
To, że komentuję kod to nie znaczy, że jest nieczytelny. Po prostu opisuję go aby każdy przeglądajcy "był w kontekście" bez "główkowania" co gdzie i jak. Cytat 2. «trudny do zrozumienia» http://sjp.pwn.pl/slownik/2488483/nieczytelny ![]() Jeśli już komentujesz to używaj phpDoca. Wygenerujesz sobie potem całkiem sprytną dokumentację. Odnośnie kodu: brak konsekwencji i trzymania się przyjętego* standardu! http://github.com/webnull/OpenWikiBlog/blo...hardened.so.php
http://github.com/webnull/OpenWikiBlog/blo...es/hooks.so.php
Zdecyduj się: małe czy wielkie litery (zarówno w nazwach metod i zmiennych), camelCase czy under_score. * przez Ciebie, nie jakiegoś ogólnie przyjętego. Ten post edytował phpion 1.09.2010, 18:39:29 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Dzięki phpion, zapomniałem o "moim" standardzie tak już wyszło przy kodzeniu.
Widziałem phpDoc'a w akcji, ale niestety sam jeszcze nie używałem ale jakoś przy użyciu manuala Sobie poradzę ![]() Do poprawy jest nie wiele, dzięki. -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 18:43:37 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ta, a PHP 5.3 jest już tak popularny na serwerach, że można go śmiało używać.... /irony mode off/ Popieram erixa. Widzisz Zyx, ta klasa jest troszkę kretyńska ponieważ wprowadza swój własny format. To wcale nie jest ułatwienie dla tłumaczy w czasach gdy jest ogromna ilość edytorów tłumaczeń w formacie po lub xml. -- W core/modules/exceptions.so.php w metodzie private function MakeADump(&$RID) masz pisanie do pliku ale nie blokujesz tego pliku na czas zapisu. Ja bym użył po prostu file_put_contents(). EDIT: Zyx mógłbyś podać przykład zastosowania tego MessageFormattera dla zdania "There are %number_of_dogs% dogs" There are 5 dogs => Tam jest 5 psów There are 2 dogs => Tam są 2 psy Czytam tego manuala i po prostu tego nie widzę ;] Ten post edytował SHiP 1.09.2010, 18:56:10 -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Dzięki SHiP, poprawione.
Wszelkie poprawki jakie wnoszę teraz pojawią się w commicie po godzinie 22 kiedy ukończę wprowadzać zmiany w libadmin. @edit Jednak commit poszedł wcześniej, zmiany można już zobaczyć. Jestem bardzo wdzięczny za współpracę, jeżeli znajdziecie jeszcze jakieś błędy to proszę zgłaszać z chęcią dam plusika na forum ![]() -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 19:19:48 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Proszę zatem przeczytać cały post, nie tylko fragmenty. W dolnej częsci postu *w komentarzu konfiguracji* jest pokazany przykład zastosowania. Nie jest to jakaś zaskakująca funkcja w PHP, jednak jest zaskakująca w tym "frameworku" ze względu na jego budowę. ~mike ma rację - popatrz np. na jQuery - po kilkumiesięcznej przerwie w klepaniu kodu jestem w stanie napisać wszystko bezbłędnie bez zaglądania dokumentacji. Po co coś niepotrzebnie komplikować...? Cytat Nazywając "Jądro" Kernel, a pluginy modułami wprowadzam "styl nazw Uniksowych" do mojego projektu. A nie wystarczy rozdzielić na katalogi...? Ile bibliotek PHP widziałem, to jeszcze ani razu takiej konwencji... Podejrzewam, że nie tylko ja zadam pytanie WTF? na widok .so.php. Cytat Co do bazy danych, to jak widzisz - łączę się z DB każdorazowo. Myślę, że wprowadzenie jakiegoś cache nie będzie wcale problemem, jednak z tym jeszcze poczekam. Na co chcesz czekać? To powinno być napisane OD RAZU. Potem będziesz tylko pisał na kolanie, bo trzeba coś wprowadzić. Cytat Wybierając mój "framework" wybiera się coś innego niż reszta frameworków, lecz bardzo chętnie przyjrzę się konkretnym standardom i jeżeli są warte zaimplementowania to z pewnością zaimplementuję Coś innego, czyli? Zachęć mnie. Podaj jakieś argumenty, dla których WARTO korzystać z Twojego fw. Nie chodzi mi o zawartość pierwszego Twojego posta. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(erix) Coś innego, czyli? Zachęć mnie. Podaj jakieś argumenty, dla których WARTO korzystać z Twojego fw. Nie chodzi mi o zawartość pierwszego Twojego posta. Nie muszę podawać argumentów, masz kod. Nikogo nie zachęcam, niech każdy używa co uważa za właściwe dla niego, po prostu tworzę framework nr. milion+1 jako alteratywę dla reszty. Jeżeli ktoś nie widzi zastosowania mojego fw, to zapewne inny fw będzie się nadawać na to właśnie zastosowanie. -- WebNuLL -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
@erix: Podejrzewam, że so = shared object - http://en.wikipedia.org/wiki/Executable_and_Linkable_Format ale ja też nie wiem dlaczego akurat takie nazewnictwo
@phpion: ja polecam Doxygen zamiast phpDocumentora (jest cos takiego jak phpDoc?). Jest dużo lepiej opisany. Tak przeglądam te źródła i czasem masz jakieś drobne głupoty ![]()
Po co ta zmienna $APP ?
Można
Często niepotrzbnie dodajesz ampersandy do parametrów. Obiekty i tak są przesyłane w formie referencji. Więc zapis typu:
Jest dziwny. Od piątej wersji aby sklonować obiekt trzebaby napisać:
Domyślnie jest zawsze referencja. PS: mysql_escape_string nie jest bezpieczną funkcją. W pewnych specyficznych warunkach da się ją obejść. Stosuj bindowanie parametrów lub mysqli->real_escape_string() -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(SHiP) Po co ta zmienna $APP ? Nie potrafię inaczej tego zapisać aby obeszło się bez błędu. Pokaż Mi proszę jak byś chciał to napisać inaczej. Cytat(SHiP) Można Faktycznie można i już poprawiłem (lokalnie) ![]() Cytat(SHiP) Jest dziwny. Od piątej wersji aby sklonować obiekt trzebaby napisać: Wybacz, stare nawyki z PHP4. @edit Zacommitowałem zmiany. -- WebNuLL Ten post edytował Babcia@Stefa 1.09.2010, 19:38:27 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#19
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
To, że komentuję kod to nie znaczy, że jest nieczytelny. Więc jak opiszesz kod, który wymaga dodatkowych instrukcji w postaci komentarza?Po prostu opisuję go aby każdy przeglądajcy "był w kontekście" bez "główkowania" co gdzie i jak. Komentarze są zbędne, jeśli kod jest czytelny i zrozumiały. Jeśli potrzebujesz opisu w postaci tekstu to znaczy, że powinieneś popracować nad kodem. Ten post edytował mike 1.09.2010, 19:44:35 |
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
jest cos takiego jak phpDoc? http://en.wikipedia.org/wiki/PHPDoc Nie potrafię inaczej tego zapisać aby obeszło się bez błędu. Pokaż Mi proszę jak byś chciał to napisać inaczej.
Ten post edytował phpion 1.09.2010, 19:49:56 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:53 |