Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa translation
Forum PHP.pl > Inne > Oceny
1010
Napisałem klasę służącą do obsługi wielu języków na stronie. Szczegóły na blogu:

http://www.kalny.pl/php-mysql/wielojezykowosc-na-stronie/
Puciek
Nie wiem, smiac sie czy plakac ? Jakby ktos wzial dao + orm, wrzucil do shakera i wcisnal "frappe"
kilas88
Kilka uwag, bo na więcej nie mam już dzisiaj sił (a można by pisać długo):

- nie stosujesz się do żadnych konwencji kodowania (część po polsku, część po angielsku, kod niejasny, zero komentarzy, etc),
- dlaczego mysql_, jak można mysqli_, pdo czy inne wynalazki?,
- kod kompletnie nie jest zabezpieczony, wiesz czym jest sql injection i jak się przed nim bronić?,
- dziedziczenie jest nadużywane w moim odczuciu,
- zmienne globalne to zło,
- to nie zadziała w nowszych wersjach interpretera php (poczytaj newsy ze świata php):
Kod
class database {
    public function database();
}
Pilsener
Już sama przyjęta koncepcja jest błędna, tłumaczenie powinno być oparte o pliki językowe i język defaultowy, używanie tego jest proste:
  1. echo $this->translate('Some text in default language');
- porównaj to z Twoim rozwiązaniem.
Podstawą powinien być język angielski, który jest wykorzystywany do utworzenia plików ANG-PL, ANG-CZ i tak dalej. Jak wyobrażasz sobie teraz np. przetłumaczenie aplikacji na dodatkowy język wykorzystującej Twój mechanizm? Powinieneś mieć plik językowy, który dajesz tłumaczowi (razem z prostym edytorem) i tyle. Wybór języka ogranicza się do załadowania pliku językowego do aplikacji. I ile będzie tych zapytań do bazy u Ciebie? Sama jakość kodu to też oddzielna kwestia:
  1. global $ustawienia;
  2. if (!$connection = mysql_pconnect(
  3. $ustawienia['mysql']['host'],
  4. $ustawienia['mysql']['login'],
  5. $ustawienia['mysql']['haslo']
  6. )) die ("Nie udało się nawiązać połączenia z bazą!");
- kiepski kod strukturalny zamknięty w klamry. Używa się wyjątków albo chociaż jakiejś obsługi błędów, używanie die czy tworzenie metod do "echowania" htmlu jest charakterystyczne dla script kidies
skowron-line
Klasa translation dziedziczy po database ? Obiekt powinien być przekazany do konstruktora.
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.