Technologie i narzędzia: język PHP 5, Java, JavaScript, Python, system Zend Framework, Django, biblioteka jQuery, Smarty, platforma Eclipse, MySQL, SVN, CVS, UML, Firefox.
WebProgramming - wszystko o serwisach internetowych
O serwisach internetowych.
[php|zend] Prosta klasa do konwertowania/sprawdzania typu.
Na potrzeby biblioteki obsługi plików CSV w Zend Framework (i ogólnie w języku PHP) stworzyłem prostą klasę, która miała służyć do konwertowania i sprawdzania typu napisu (ang string). Z racji, że implementuje ona odrębną funkcjonalność postanowiłem przedstawić ją osobno, zanim przejdę do omawiania wspomnianej biblioteki Fasic_Csv.
Klasa Fasic_Forcetype (bo o niej mowa) wspiera aktualnie tylko 4 typy danych:
- int - konwertowanie do liczby całkowitej
- float - konwertowanie do liczby zmiennoprzecinkowej
- round0 - konwertowanie do liczby całkowitej zaokrąglonej “matematycznie” (1.23 -> 1, 1.50 -> 2)
- round2 - konwertowanie do liczby zmiennoprzecinkowej zaokrąglonej “matematycznie” do 2 miejsc po przecinku (1.234 -> 1.23, 1.249 -> 1.25)
Dodatkowo mamy możliwość dodawania własnych typów danych, dzięki czemu łatwo możemy rozszerzyć możliwości tej klasy (jest to bardzo ważne z punktu widzenia bibliotek, które będą z tej klasy korzystać).
Przykład użycia:
-
// Sprawdzanie poprawności typu
-
Fasic_Forcetype::check(‘123fd’, ‘int’) // false
-
Fasic_Forcetype::check(‘123′, ‘float’) // true
-
Fasic_Forcetype::check(‘123.2′, ’round2′) // true, to samo co float
-
-
// Wymuszanie typu (konwertowanie)
-
Fasic_Forcetype::check(‘123fd’, ‘int’) // 123
-
Fasic_Forcetype::check(‘12′, ‘float’) // 12
-
Fasic_Forcetype::check(‘123.237′, ’round2′) // 123,24
-
-
// Dodanie własnego typu
-
-
// Funkcja implementująca
-
function _wlasnytyp($value, $onlyCheck, $params) {
-
if($onlyCheck) {
-
return true; // Zwróć true jeżeli $value jest poprawny, false w p.p.
-
}
-
return ”; // Zwróć poprawną wartość wg typu
-
}
-
// Dodanie do listy typów
-
Fasic_Forcetype::addType(‘mojtyp’, ‘_wlasnytyp’);
-
// lub
-
// Klasa implementująca interfejs Fasic_Forcetype_Interface
-
class WlasnyTyp extends Fasic_Forcetype_Interface {
-
return true; // Zwróć true jeżeli $value jest poprawny, false w p.p.
-
}
-
return ”; // Zwróć poprawną wartość wg typu
-
}
-
}
-
// Dodanie do listy typów
-
Fasic_Forcetype::addType(‘mojtyp’, new WlasnyType());
-
-
// Używanie nowego typu
-
Fasic_Forcetype::check(‘123.237′, ‘mojtyp’) // true
Klasa Fasic_Forcetype:
- Źródła: http://webprogramming.pl/downloads/Fasic_Forcetype-1.0.zip
- Wersja: 1.0
- Data edycji: 28 grudnia 2008
- Instalacja: skopiować do katalogu Fasic, który jest w ścieżce poszukiwań skryptów języka PHP
- Zależności: korzysta z klasy Zend_Exception
Napisz komentarz