Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

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.

10 Stron V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> Włączanie plików + autoloader, chętnie bym posłuchał ciekawych pomysłów
hawk
post
Post #101





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


@serafin: Trochę konsekwencji. Bardzo się starasz, żeby nie odpowiadać na moje pytania i nie podejmować merytorycznej dyskusji. Zamiast tego widzę, że bardzo lubisz młotki i wymyśloną przez siebie klasę String, bo już drugi post o tym piszesz, co nijak się ma do tematu. Możemy i tak...

@matid: IMHO nie da się przeskoczyć problemu zadeklarowanej już wcześniej "pustej" klasy. Bo za drugim razem po prostu nie uruchomi się autoloader. A tworzenie każdej klasy za pomocą specjalnej metody też jest możliwe, ale to już nie to samo.

Ale zastanawia mnie, w jaki sposób jesteś w stanie stwierdzić, czy pozwolić na utworzenie obiektu? Odpala się autoloader, klasa ma zasięg "directory". W jaki sposób stwierdzasz, czy wolno w tym miejscu utworzyć obiekt? Bo mi nic nie przychodzi do głowy (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .
Go to the top of the page
+Quote Post
matid
post
Post #102





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Korzystam z debug_backtrace" title="Zobacz w manualu PHP" target="_manual
Nie sprawdzałem, na ile jest to wydajne, ale działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Innego pomysłu na razie nie mam.
Go to the top of the page
+Quote Post
Imperior
post
Post #103





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.10.2004

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


Cytat(matid @ 2005-06-17 06:42:50)
Chyba jednak skorzystam z opcji 1, ponieważ zasięgów nie chcę olewać, a tworzenie instancji przez proxy wyklucza takie przypadki jak dziedziczenie, implementowanie interfaców, itp.

W jaki sposób wyklucza? Nie rozumię...
Go to the top of the page
+Quote Post
matid
post
Post #104





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


  1. <?php
  2. class Test1 extends Test2
  3. {
  4. }
  5. ?>

Jak wczytujesz ten plik i korzystasz z Autoloadera to skrypt automatycznie próbuje załadować plik z klasą Test2. Przez Proxy to nie przejdzie.
Poza tym, co z klasami zewnętrznymi? Też chciałbym, aby były obsługiwane przez autoloader, a przepisywać kod tak, aby korzystał z proxy jest bez sensu.

Ten post edytował matid 17.06.2005, 15:43:30
Go to the top of the page
+Quote Post
bela
post
Post #105


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Fajna bajeczka : http://groups.google.pl/groups?q=proxy&hl=....onet.pl&rnum=1 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Imperior
post
Post #106





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.10.2004

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


Cytat(matid @ 2005-06-17 14:41:10)
Jak wczytujesz ten plik i korzystasz z Autoloadera to skrypt automatycznie próbuje załadować plik z klasą Test2. Przez Proxy to nie przejdzie.
Poza tym, co z klasami zewnętrznymi? Też chciałbym, aby były obsługiwane przez autoloader, a przepisywać kod tak, aby korzystał z proxy jest bez sensu.

Hm... też fakt. Nie zastanawiałem się nad tym zbytnio (ja wole autoloadera, proxy do tego nie używam). Zatem pozostaje jeszcze imitacja pakietów w nazwach klas. Czyli np. SQL_MySQL_Service.
Go to the top of the page
+Quote Post
squid
post
Post #107





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


Jeszcze nie przeczytalem calego tematu wiec sory jesli odpowiedz juz padla ale czy nie mysleliscie o tym zeby wszystkie interfejsy trzymac w jednym lub kilku plikach pogrupowanych kategorie? Albo trzymac interfejs w pliku z klasa?
Moze to i troche malo eleganckie ale szkoda zapuszczac cala maszyne dla znalezienia i odczytania kilku linijek kodu a sa jeszcze klasy bez interfejsow
Go to the top of the page
+Quote Post
hawk
post
Post #108





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Tak naprawdę to wszystkie interfejsy powinno się wywalić przed oficjalnym wypuszczeniem kodu. Przecież są do niczego niepotrzebne... pomijając oczywiście type hinty i inne bzdety, które też w związku z tym powinno się wywalić. I pomijając kilka wrednych sytuacji, w których jednak nie da się wywalić, i dlatego pewnie automatyczny wywalacz interfejsów jeszcze nie powstał (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
Vengeance
post
Post #109





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Wywalić interfejsy? A niby z jakiej racji?
Przecież po to są by szuko móc dojść co klasa musi miec itd w przyszłości...
Go to the top of the page
+Quote Post
NuLL
post
Post #110





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


@Hawk - napisać parser plików który będzie usuwał wszystko od słowa implements do napotkania słowa extends lub nawiasu klamrowego (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Joking (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Wg. mnie częśc interfejsów jest potrzebna. Jak chocby dla jakiegoś sterownika. Nóż, widelec ktoś będzie miał ochote napisać własny - od tego mam interfejs (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
matid
post
Post #111





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Jeśli kod jest wydany na zasadach OpenSource to mimo wszystko nie wyrzucałbym interface'ów. Jak ktoś inny będzie chciał sobie dostosować ten kod, itd. to będzie miał ułatwione zadanie.

A co do oprogramowania z zamkniętym źródłem - na etapie pisania aplikacji - interface to bardzo przydatna rzecz, w release'ach to tylko zbędne przeciążenie aplikacji.
Go to the top of the page
+Quote Post
hawk
post
Post #112





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Ale ja mówię o dwóch wersjach kodu: debug i release. Debug = mamy wszystkie komentarze, interfejsy, tak jak napisaliśmy. Release = wyrzucamy interfejsy, usuwamy komentarze, pakujemy po kilka klas do jednego pliku.

Też z tego powodu, że - jak wykazało profilowanie - autoloadowanie jest strasznie wolne.
Go to the top of the page
+Quote Post
chmolu
post
Post #113





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

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


No jakoś mi się nie widzi usuwanie w kodzie $obj instanceof interfejs oraz zmienianie deklaracji funkcji, w których używam typehintingu.
Wcale nie uważam, że interfejsy są zbędne. Autoładowanie może i jest wolne, ale z włączonym akceleratorem różnica jest niewielka. Wiem, że nie każdy ma dostęp do akceleratora, ale dalej uważam, że usuwanie interfejsów z kodu to bezsens.
Go to the top of the page
+Quote Post
squid
post
Post #114





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


Cytat(chmolu @ 2005-08-09 15:59:17)
No jakoś mi się nie widzi usuwanie w kodzie $obj instanceof interfejs oraz zmienianie deklaracji funkcji, w których używam typehintingu.
Wcale nie uważam, że interfejsy są zbędne. Autoładowanie może i jest wolne, ale z włączonym akceleratorem różnica jest niewielka. Wiem, że nie każdy ma dostęp do akceleratora, ale dalej uważam, że usuwanie interfejsów z kodu to bezsens.

czesciowo sie zgadzam ja tez nie bede usuwal nic z kodu "recznie" bo latwo o pomylke ale moze napisac cos co taka zmiane przeprowadzi robiwac z calej aplikacji pakiet + instalator gotowe do wyslanai na serwer.

Co do akceleratora to on tu nie pomoze bo jego zadanie jest inne ale pewnie zasugerowales sie nazwa Zend Accelerator (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Autoloader wiekszac czesc czasu spedza na includowaniu (mam nadzeje ze nikt nie uzywa require w autoloaderze (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) kodu mam tu namusli jego analize i przeksztalcenie do postaci posredniej. Tu pomoze bufor kompilatora ktorym jest np. Zend Accelerator ktory jest komercyjny ale jest tez APC darmowy i open source dostepny przez PECL do tego kazdy teoretycznie ma dostep.

Faktycznie juz przy 10 plikach widac jak duzo czasy zajmuje analaiza kazdego kolejnego a bufor znaczaco tu pomaga pytanie tylko czy budujac framework czy juz gotowa aplikacje mozemy wymagac aby w srodowisku produkcyjnym byla zainstalowana taka biblioteka? w zasadzie to nic wielkiego a oszczedza czas serwera ale sprobujcie przekonac do czegos takiego admina. Z drufgiej strony zbudowanie czegos co pousuwa rozne obiektowe ozdobniki zkodu troche potrwa a bufor to gotowe rozwiazanie dajace nawet przyros 100% w wydajnosci za darmo i bez dodatkowego nakladu pracy!!

Ten post edytował squid 9.08.2005, 15:16:41
Go to the top of the page
+Quote Post
NuLL
post
Post #115





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Macie może jakiś pomysł co zrobić z autoloaderem kiedy jest w nim 300 plikow ? Wiem ze to troche duzo ale tyle sie nazbieralo kolejnych klas, wyjatkow oraz interfejsow. I nie wiem co z tym zrobic ?

Ja wpadłem na pomysl aby zaladowac tylko najpotrzebniejsze mapy : request, db oraz kilka innych. Natomiast inne mapy mozna by ladowac np rozbijajac nazwe klasy z niej wyciagac dwa pierwsze czlony zalozmy i czyli nazwa pakietu i wtedy zaladowac mape do ktorej nalezy ta konkretna klasa. Co w Wy na to ?

Chetnie poslucham innych pomyslow.
Go to the top of the page
+Quote Post
bigZbig
post
Post #116





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Mozna zastosowac cos w rodzaju przestrzeni nazw. Wszystko zależy od tego jaki sie przyjelo sposob nazewnictwa. Ja wszystkie klasy z danego pakietu poprzedzam nazwa danego pakietu. W ten sposob moglbym latwo podzielic automape na kilka mniejszych czesci. Oczywiscie metoda ta nie nadaje sie do cudzych klas, ktore stosuja odmienna polityke nazewnictwa. Poza tym, na dobra sprawe jest to jedynie polowiczne rozwiazanie gdyz czesto np. na 20 klas z danego pakietu potrzebnych jest zaledwie 5.

Pozostaje rowniez problem odroznienia w nazwie klasy tego co jest przedrostkiem.

Jesli - mojPrzedrostek_wygladaTak.class.php - to nie ma problemu
Niestety - mojPrzedrostekWygladaTak.class.php - a to juz jest problem
Go to the top of the page
+Quote Post
NuLL
post
Post #117





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Ja cos takiego robie tzn mam ezcCacheStorageFileArray i rozbijam to po wielkosci znakow pomijajac pierwszy czlon pisany z malej litery i laduje mape to dla ezcCache.

Co do polowicznosci sie zgadzam m.in dlatego ostatnio twoje wiecej malych map (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
bela
post
Post #118


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


A po co rozbijac? Ja mam kilkaset linijek i smiga.
Poza tym zobacz do phienda 2, tam masz w kazdym komponencie osobną mape
Go to the top of the page
+Quote Post
squid
post
Post #119





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


co nazywacie mapa? Czy jest to skojarzona z klasa sciezka dostepu (dla kazdej klasy)?
Go to the top of the page
+Quote Post
NuLL
post
Post #120





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Cytat
A po co rozbijac? Ja mam kilkaset linijek i smiga.
Poza tym zobacz do phienda 2, tam masz w kazdym komponencie osobną mape

W phiendzie komponentow jest nieduzo - u mnie jest ich okolo 30.

Rozbijam bo sie musze dostac do okreslonej mapy.

O co chodzi z tymi linijkami (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

10 Stron V  « < 4 5 6 7 8 > » 
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: 19.11.2025 - 20:36