Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wersje językowe
Forum PHP.pl > Forum > PHP > Object-oriented programming
tomek_swat
witam,
napisałem sobie klasę do obłsugi wersji językowej elementów statycznych
  1. <?php
  2.    define('DIR_LANG', DIR_MAIN.'lang/');
  3.    require_once('MyException.php');
  4.    
  5.    class Lang {
  6.        
  7.        public function __construct($language = "pl"){
  8.            $this->language=$language;
  9.            $this->getData();
  10.        }
  11.        
  12.        public function __get($id){
  13.            
  14.            if(!isset($this->data[$id])){
  15.                throw new MyException('Nie istniejąca dyrektywa: '.$id);
  16.            }
  17.            
  18.            echo $this->data[$id];
  19.            
  20.        }
  21.        
  22.        public function getData(){
  23.            
  24.            if(!file_exists(DIR_LANG.'lang_'.$this->language.'.php')){
  25.                throw new MyException('Brak języka: '.$this->language);
  26.            }
  27.            
  28.            $this->data = parse_ini_file(DIR_LANG.'lang_'.$this->language.'.php', true);
  29.            
  30.            
  31.                
  32.        }
  33.    }
  34. ?>

uruchamiam ją
  1. <?php
  2. $jezyk = new Lang(Config::getInstance()->getProperty("język"));
  3.    
  4.    $jezyk->start;
  5. ?>


problem polega jednak na tym, że nie bardzo mogę jej użyć to przechwytywania wyjątków
  1. <?php
  2. try {
  3.    
  4.    $jezyk = new Lang(Config::getInstance()->getProperty("język"));
  5.    
  6.    $jezyk->start;
  7.    
  8.    
  9. } catch (MyException $error){
  10.    echo $error;
  11. }
  12. ?>


w ogóle już w klasie Lang, mam w throw new MyException gdzie znajduję się tekst w jednym języku, moje pytanie brzmi jak sprytnie rozwiązać ten problem, tzn mieć przetłumaczone wyjątki?
pzdr
zzeus
nadpisz w klasie MyException metode getMessage() aby zwracała wyjątek w zależności od przekazanego języka
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.