Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stałe czy tablice?
Forum PHP.pl > Forum > PHP
MP1
php-Fusion stosuje stałe jako tekst plików języka.

Ja stosuję do tego tablice (np. $lang['art']).

Który sposób będzie wydajniejszy?
Spirit86
było już, poszukaj
tablice szybsze
Nievinny
Ja używam małego managera zarządzania językami:
  1. <?php
  2.  
  3. //Użycie
  4. $oLang = new Lang();
  5. $oLang->setLanguage( 'pl' );
  6. $oLang->load( 'main' );
  7. $oLang->main['forum'];
  8. // wyświetli witamy na forum
  9.  
  10. ?>


Co to daje? To, że łatwiej zarządzać plikami językowymi.
Spirit86
wow, zastępujesz 1 linijkę (include('blbalbalba/'.$lang_)winksmiley.jpg
poprzez 3 tongue.gif
Nievinny
Wiesz, to jest OOP, więc moim zdaniem lepiej zarządzać profesjonalnie niż bawić się w nieprofesjonalne aplikacje. Myślę, ze jak zobaczysz całą klasę zarządzania to zmienisz zdanie. Kiedyś ją tu zapodam
SongoQ
Mi tez sie wydaje ze OOP jest o wiele lepszym rozwiazaniem, tak ze @Spirit86 troche nie efektowne.
NuLL
Mając obiekt - ja go nazywam textCodec - tak sobie ubzdurałem tongue.gif mam w tym obiekcie wszystko dotyczące języka. I mam zapisany sam teksty, mam zapisaną stronę kodową, wartość dla set_locale, wartość nagłówka w HTML-u. Co fajne klasa udosepnia mi możliwość ładowania plików w zależności od tego na jakiej części strony jestem smile.gif przez co nie muszę ładować dużych plików z językiem w całości. A żeby było fajniej mam dowolne źródło danych dla każdego z języków - choć najczęsciej jest to prosty plik - tak więc w całej rozciągłości popieram rozwiązanie Nievinnego smile.gif
Nievinny
@NuLL -> między nami obiektowcami...

Dodając jeszcze do klasy możliwośc konwersji kodowania każdego tekstu (w razie potrzeby np z ISO-8859-2 na UTF-8 ) mamy jeszcze większą funkcjonalność. Obiekty sa po to aby reprezentowały obiekt ze świata rzeczywistego, np Lang będzie reprezentowało człowieka, który zna kilka języków i może je zmieniać w razie potrzeby i używać ich właściwości. winksmiley.jpg

Gdy masz obiekt, możesz o wiele wcześniej usunąc niepotrzebną zawartość z pamięci i przyśieszyć wykonanie.
NuLL
Nievinny - na to wpadłem dawno - ale napisać konwertery jest dość trudno. Muszę dorwać gdzieś tablice konwersji wtedy może coś poradze smile.gif
DeyV
a co - iconv" title="Zobacz w manualu PHP" target="_manual już bardzo nie wystarcza?
NuLL
Kiedyś się nabiłem na braku tego rozszerzenia na serwerze - i dlaego zacząłem myśleć o pisaniu konwerterów smile.gif
NoiseMc
Taki manager w postaci klasy byłby rzeczywiście wygodny a jakby do tego jeszcze czytać teksty z XML ? Wiem, że to spowalnia ale jaka wygoda biggrin.gif. Kiedyś pytałem na forum o opinie na temat używania XML do przechowywania tłumaczeń.
SongoQ
@NoiseMc Ogolnie XML i tlumaczenia wydaje mi sie ok, C# chyba ma taki bajer a jesli ma czyli M$ podszedl do tego z glowa.
DeyV
Najlepsze w takim przypadku są rozwiązania pośrednie.
Tj. np. przygotowywanie pliku z tłumaczeniem w XML, a potem parsowanie go i wrzucanie to pliku ini albo zserializowanej tablicy. Wygoda i szybkość.

A do tworzenia pliku z translacją można skorzystać ze świetnego programiku Qt Linguist (wykorzystywanego między innymi do edycji plików translacyjnych na potrzeby eZ)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.