Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie zmiennej superglobalnej, czy mozna utworzyc zmienna superglobalną?
Orzeszekk
post
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


Witam. Moze niektorym to pytanie wyda sie głupie i banalne, niemniej jednak jest mi potrzebne.

Z benchmarka mojego wynika ze tworząc system języków, stosując tablicę asocjacyjną zamiast stałych jest 2 -3 razy szybciej. Stosując indeksy cyfrowe jest jeszcze szybciej. Jest to ok. 10-20% czasu wykonywania skryptu.

Niemniej jednak, jeśli stworzę tablicę asocjacyjną to za każdym razem w każdej metodzie gdzie chce uzyc jezyka bede musial pisac global $langs. Dostęp do tablicy przez singleton jeszcze bardziej mija sie z celem gdyż wyjdzie jeszcze wolniej niż stałe.

Mozna (bez uzycia register_globals) utworzyc sobie tablicę superglobalną jak $_POST? bylaby bardzo wygodna w uzyciu.

zamiast pisac:

global $langs;
new Label($langs['pobieranie_danych']);

pisałbym sobie
new Label($langs['pobieranie_danych']);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Orzeszekk
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


Języka nie bede przekazywal przez parametr bo musialbym przerobic chyba wszystkie procedury.

Faktycznie, moge wrzucic do $_GLOBALS cały język i wtedy nie musze dodawac na poczatku kazdej metody global $lang, tylko bezposrednio odczytam z $_GLOBALS. Dzięki za odpowiedź.

Singleton hmmm... w sumie predkosc utworzenia tablicy z językiem będzie taka sama jak przy tabl. asocjacyjnej, predkosc odczytu znacznie wolniejsza, ale przy wyswietleniu strony jest tych odczytow moze z 10-20 gdy przy tworzeniu tablicy jezyka jest do wpisania tych wpisow np 1300, więc małą wydajnosc singletonu przy odczycie mozna pominąć (IMG:style_emoticons/default/smile.gif)

Singleton bylby wygodny:D Lang::get('moje_piniądze!'); i w razie czego mozna by go zamienic na tablicę za pomocą znajdz i zamien z Lang::get('(.*?)') na $_GLOBALS['(.*?)']; gdyby okazał się wolny (IMG:style_emoticons/default/biggrin.gif) troszke przyjemniej sie wpisuje singleton niz ten dolar z kapslokiem.

dzięki panowie za inspirację.

to moze mam jeszcze takie pytanie:

Dlaczego taki .htaccess nie przekierowuje mnie na strony z błędami?

Options -Indexes
php_flag magic_quotes_gpc off
ErrorDocument 404 /Pages/error.php?error=404
ErrorDocument 403 /Pages/error.php?error=403
ErrorDocument 405 /Pages/error.php?error=405
ErrorDocument 406 /Pages/error.php?error=406
ErrorDocument 408 /Pages/error.php?error=408
ErrorDocument 409 /Pages/error.php?error=409
ErrorDocument 410 /Pages/error.php?error=410
ErrorDocument 414 /Pages/error.php?error=414
ErrorDocument 415 /Pages/error.php?error=415
ErrorDocument 400 /Pages/error.php?error=400
ErrorDocument 401 /Pages/error.php?error=401
<Files .htaccess>
Deny from all
</Files>

Htaccess jest w tym samym katalogu co katalog /Pages

i trzecie pytanie:

zrobilem na stronie system wyjątków w sumie nic specjalnego, po prostu jak waliduje dane po stronie modelu (mam MVC) to rzucam wyjątek który pozniej zostaje złapany po stronie widoku i powoduje wyswietlenie komunikatu o błędzie.

No i ten komunikat o bledzie zawiera przyciski: powrot, strona główna itd.

Problem w tym ze np. jeden widok moze byc wywolany z 3 innych i wtedy nie wiadomo na ktory wrocic w razie wystapienia błędu.

Przykład:
widok default -> widok wszystkich poradników -> widok dodawania -> widok odbioru formularza -> błąd -> wróć do?
widok default -> widok listy poradników gracza -> widok dodawania ->widok odbioru formularza -> błąd -> wróć do ?

w tym momencie widok odbioru formularza nie wie na jaki widok ma kierowac przycisk powrót (chodzi o to by przerzucilo uzytkownika tam gdzie był).

generalnie jakby zrobic przekierowanie na poprzedni widok /strone w razie wystapienia bledu automatycznie to zaoszczedzilbym multum pisania.

myslalem o trzymaniu historii otwieranych stron w cookies, ale jesli uzytkownik otworzy strone w kilku kartach to bedzie mu głupio skakało pomiedzy stronami. musiałbym dołączać jakieś ID do strony. Tylko jakie? W linku get nieelegancko. W post nie ma jak bo nie wszystkie przyciski to submit. Z javascriptu nie chce korzystac w kwestiach sterowania stroną.

w takim razie moze przypisac kazdemu widokowi jakis hash i budowac w cookies drzewo rozgalezien ktory hash wywołał który i na podstawie jego wracać? ale to tez bez sensu bo beda sie powtarzaly.

Moze da sie te powroty jakos prosciej zrobic? rozwiazanie z dodawaniem do kazdego linku parametru powrot='obecna_strona' nie podoba mi sie za bardzo
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 18:27