![]() |
Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 14.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam, ostatnio zastanawiam sie w jaki sposob napisac jadro systemu webowego w php - doszedlem do wniosku, ze najlepiej uzyc singletonow do tworzenia instancji klas (db, io, klasa sesji, szablonow itp.) czy jednak lepiej aby jadro bylo rozproszone (wiele klas, kazda posiadajaca metode instance() ) czy raczej napisac jeszcze jednak klase Kernela, ktora to klasa przechowywala by w sobie metody tworzenia instancji i instancje wszystkich podsystemow, oraz kontrolowala wszelkie proby uzyskania takiej instancji ?
Jestem ciekaw jak wy to widzicie ? w jaki sposob wy pisaliscie rdzen systemu ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Doleje troche oliwy do ognia, a co (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Cytat Tutaj jestem bardzo przeciwny. Wiem że jest taka tendencja (eclipse, phrame), ale to bez sensu. php już ma HashMapy - tablice asocjacyjne. I klasa HashMapy nic nowego ci nie zaoferuje.
Ding - dong. To ja Cie bardzo poprosze o wygodna implementacje containsValue w tym "PHPowym hasmapie" - oczywiscie bedziesz mi iterowal algorytmem o zlozonosci liniowej element po elemencie. HasMap znany nam np. z Javy posiada liste poindeksowanych wartosci tak samo jak posiada liste poindeksowanych kluczy. "Dobranie sie" do odpowiedniej wartosci i do odpowiedniego klucza daje ten sam narzut czasowy. Po drugie kazdy szanujacy sie HasMap posiada wlasciwosc LoadFactor majaca niebagadelny wplyw na wygode dzialania tablic. LoadFactor dopasowany dobrze do przechowywanych wartosci potrafi czasem dwukrotnie nawet przyspieszyc dzialanie. Indeksowane tablice w php to bardzo mala namiastka i zastepowanie ich powaznym hasmapem uwazam za jak najbardziej na miejscu! Cytat Podobnie wiedziałem w php klasy ArrayList (to już szczyt głupoty), Iterator (w PHP5 równie wielka głupota) itd. To tylko balast, bezużyteczny kod i dodatkowe ułamki sekund przy każdym żądaniu.
Znowu niekoniecznie. Iterator z Javy daje mi mozliwosc latwego kasowania elementow, bez niebezpieczenstwa utraty plynnosci iteracji. W php jesli sie nie myle nie jest to takie "fajne". Cytat A swoją drogą, ja skłaniam się do włożenia sesji do kontekstu. To chyba pomysł z ASP.NET - klasa Context, która łączy Request i Response, czyli zbiera do kupy wszystko, co związane jest z komunikacją klient - serwer.
Apage (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) To pomysl Tomcata zdaje sie, albo Resina - juz nie jestem pewien (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cytat Wracając do pytania - gdzie to wcisnąć? Odpowiedź jest prosta i znowu żywcem wzięta z phiend2 - Intercepting Filter. Piękny wzorzec, wrzucasz do kontrolera obsługę filtrów (wczytywanie z pliku konfiguracyjnego i odpalanie). O samym wzorcu poszukaj na MSDN (narawdę mają bardzo dobry dział dot. wzorców dla aplikacji internetowych) i Sunie - zresztą w J2EE Intercepting Filter jest wbudowany.
Zgadzam sie, ale wykorzystanie IF nie zawsze wydaje mi sie konieczne, natomiast wszelkie metody autoryzacji wykonywalbym tuz po czesci inicjujacej dzialanie silnika. W momencie kiedy srodowisko "klienckie" dziala, a "administracyjne" nie jest jeszcze zainicjowane. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 18:18 |