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] Operacje na napisach (string) i ich wydajność (krótka historia)
Od dawna zastanawiałem się, czy operacje na napisach są kosztowne (pamięciowo i/lub obliczeniowo)? W językach typu Java, C# spotykamy specjalną klasą typu StringBuilder, która jest zalecanym sposobem tworzenia napisów (jest optymalną wersją “zwykłych” napisów - optymalną pod względem wykonywania operacji na nich). W przypadku języka PHP takiej klasy nie posiadamy - istnieje tylko prosta zwykła konkatenacja.
[smarty] Ciekawe wykorzystanie modyfikatora.
Przyszedł czas na ciekawostkę, a dokładnie na nietypowe (wg mnie) wykorzystanie modyfikatorów biblioteki Smarty. Wyobraźmy sobie, że mamy bibliotekę do obsługi formularzy (wraz z walidacją pól), która dla każdego pola przechowuje informacje o tym, czy jest ono poprawne, czy też nie - informacja ta bardzo by się przydała w warstwie widoku, tylko jak ją “przekazać”. Pierwsza myśl jaka przyszłaby mi do głowy to stworzenie funkcji (wtyczki typu ‘template function’) Smarty, która realizowałoby tą funkcjonalność, na przykład:
-
function smarty_function_hasError($params, &$smarty) {
-
$hasError = false;
-
// Sprawdź, czy pole $params['field'] ma błędy
-
$hasError = Form::getFieldError($params[‘field’]);
-
}
-
return $hasError;
-
}