Witam,
Chcę się z wami skonsultować i usłyszeć opinie nt. mojego rozwiązania.
Tworzę system wielojęzyczny przy użyciu Zenda i szablonów SMARTY.
Najważniejszym założeniem z jakiego wyszedłem był globalny dostęp do danych językowych ale przy założeniu, że czynności związane z odczytaniem odpowiedniego tekstu będą możliwie zminimalizowane.
Chcąc stworzyć automatyczny system wielojęzyczny zastosowałem takie oto rozwiązanie.
- Stworzyłem klasę w pełni statyczną, którą inicjuję już w samym bootstrapie i inicjuję dane w odpowiednim języku.
- Pozwoliłem sobie na dostęp do tej klasy za pomocą odwołania statycznego TKlasa::get('firstname') gdzie wywoływana będzie metoda __callStatic i tam odpowiednio obsłużona.
- Jako, że nie chciałem za każdym razem tworzyć obiektu i przekazywać do View postanowiłem stworzyć obiekt już w samym szablonie z odpowiednią ilością danych w tablicy assocjacyjnej przy użyciu ASSIGNE a następnie standarowe odczytanie wartości.
Wiem, że temat był maglowany setki razy ale takiego rozwiązania nie znalazłem.
Dlaczego tak? Ano dlatego, że przy tworzeniu nowego szablonu nie muszę się martwić o dostęp do tekstu i nie trzeba wykonywać nadmiarowych czynności.
Jest tylko inicjalizacja na samym pocżątku, potem w szablonie assigne i następnie odczyt np. labela.
Tutaj chciałbym usłyszeć waszą opinię, czy takie rozwiązanie jest możliwie optymalne, czy i gdzie mogę spodziewać się problemów lub też co mógłbym zmienić by to ulepszyć.
Pozdrawiam
DS