Форум → Программирование → PHP для идиотов → Расширения PHP → Blitz 0.7 и php-функции
Blitz 0.7 и php-функции
Страницы: ← Следующая страница →
-
Был у нас Blitz 0.6 и понадобилось вызывать в нём PHP-фукнции.
В 0.7 их можно вызывать в виде {{ php::function(args) }}, поэтому на него и перешли.
И тут ПЦ - половину функций стало возможно вызывать даже без "php::". Просто {{ function(args) }}.
И, что цуко характерно, они вызываются в первую очередь, а то, что у нас уже в наследниках Blitz были определены методы с такими же именами, им не интересно.
Где вообще об этом написано? Где Changelog нормальный этого блитца? Как это отключить нах, в настройках не видно?
Здесь были, кажется люди, которые с Blitцом работали. -
27 июля 2011 г. 13:04, спустя 1 минуту 22 секунды
Здесь были, кажется люди, которые с Blitцом работали.
их уволили, видимо сразу после перехода на 0.7 xDСапожник без сапог -
-
27 июля 2011 г. 17:34, спустя 3 часа 48 минут 40 секунд
1. 0.7 насколько я понимаю версия недоделанная, она с приставкой -dev и у меня с ней тоже были проблемы.
2. PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось? -
27 июля 2011 г. 17:48, спустя 13 минут 29 секунд
2. PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?
нам это не нужно, нам нужно, что бы их не было )Спустя 35 сек.мы как раз таки и использовали свою функцию, но после перехода на 0.7, у нас поломалась наша пользовательская функция ) -
27 июля 2011 г. 17:56, спустя 7 минут 47 секунд
AlexB, спасибо.PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?
Потому что дизайнера постоянно фантазии посещают. Типа, сделайте чтобы в футере в копирайте год всегда текущий был.
Писать каждый раз новый метод вида getCurrentYear() не охото.
Можно сделать, конечно, callPHPFunc($name, $args), но если уже есть возможность решили её использоватьСпустя 88 сек.И ещё у меня юнит-тесты (phpunit) зачастую вылетают с Segmentation Fault в тех местах, где Blitz используется.
В любой другой среде воспроизвести такую хрень не удалось.
Не сталкивался никто с таким? -
27 июля 2011 г. 18:15, спустя 19 минут 32 секунды
+1
2. PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?Спустя 62 сек.Потому что дизайнера постоянно фантазии посещают. Типа, сделайте чтобы в футере в копирайте год всегда текущий был.
Писать каждый раз новый метод вида getCurrentYear() не охото.
А мы же в кинсбурге вроде делали что-то наподобие джанговкого context_processor'а?
Который может передавать какие-либо глобальные переменные в жаблон?Спустя 79 сек.https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORShttps://smappi.org/ - платформа по созданию API на все случаи жизни -
28 июля 2011 г. 10:31, спустя 16 часов 15 минут 28 секунд
А мы же в кинсбурге вроде делали что-то наподобие джанговкого context_processor'а?
Который может передавать какие-либо глобальные переменные в жаблон?
Здесь не глобальная переменная, здесь date('Y') -
28 июля 2011 г. 12:49, спустя 2 часа 18 минут 30 секунд
А что мешает:
return {'CURRENT_YEAR': date('Y')}
?https://smappi.org/ - платформа по созданию API на все случаи жизни -
-
28 июля 2011 г. 14:57, спустя 11 минут 40 секунд
Ну судя по моим последним коммитам в кинсбург я ещё его плмню )https://smappi.org/ - платформа по созданию API на все случаи жизни -
13 марта 2012 г. 8:33, спустя 228 дней 17 часов 35 минут
В 0.7 API коллбеков устаканился не сразу. Сейчас действуют следующие правила:
1) Если в шаблоне стоит {{ this::method }} - это всегда метод объекта-шаблона
2) Если в шаблоне стоит {{ bla::method }} - зовём статический PHP-метод
3) Если просто {{ method }} то - по умолчанию зовем PHP, затем зовём метод объекта-шаблона. И есть новая настройка, php_callbacks_first которая меняет порядок вызова, если php_callbacks_first = 0, то сначала будет шаблон, а потом PHP. Вероятнее всего по умолчанию надо ставить php_callbacks_first = 0, сейчас 1, я просто хочу понять реакцию комьюнити. У меня было впечатление, что никто не морочился со своими функциями и все хотели PHP. Сам я программлю редко, но в компании у нас запрещены и функции, и PHP, и логика в шаблонах, но это долгий разговор.
Вот тикет про это дело
http://alexeyrybak.com/blitz/bt/view.php?id=281
Ставьте тикеты, если что-то не работает, или пишите на адрес blitz-php at googlegroups d0t com -
13 марта 2012 г. 12:25, спустя 3 часа 51 минуту 34 секунды
Привет, Алексей. На мой вкус, конечно 0. Это сохранит совместимость со всем ранее сделанным без подкручивания настроек.
Если просто {{ method }} то - по умолчанию зовем PHP, затем зовём метод объекта-шаблона. И есть новая настройка, php_callbacks_first которая меняет порядок вызова, если php_callbacks_first = 0, то сначала будет шаблон, а потом PHP. Вероятнее всего по умолчанию надо ставить php_callbacks_first = 0, сейчас 1, я просто хочу понять реакцию комьюнити.
Я морочился. Например, для компактности шаблонов, сильно не хватает конструкции switch (А можно сделать???:)), посему была написана функция:
У меня было впечатление, что никто не морочился со своими функциями и все хотели PHP. Сам я программлю редко, но в компании у нас запрещены и функции, и PHP, и логика в шаблонах, но это долгий разговор.
/**
* Реализация языковой конструкции switch.
*
* @param string $var - в идеале одно из значений
* @param string $case - значения через разделитель без пробелов
* @param string $value - строки вывода через разделитель (запятую по умолчанию)
* @param string $default - строка для вывода, если $var не совпадает ни с одним из значений
* @param char $separator - разделитель для строк вывода (по умолчанию - запятая)
* @return string - строку вывода
*/
public function switcher($var, $case, $value, $default = '', $separator = ',')
{
$exp_case = explode($separator, $case);
$exp_value = explode($separator, $value);
$key = array_search($var, $exp_case);
return ($key === false || !isset($exp_value[$key]) ? $default : $exp_value[$key]);
}
-
13 марта 2012 г. 12:54, спустя 29 минут 37 секунд
Я морочился. Например, для компактности шаблонов, сильно не хватает конструкции switch (А можно сделать???:)), посему была написана функция:
а чем это отличается от IF/ELSEIF/ELSE ? не пишем во всех условиях предикат полностью? можно пример, чтоб было понятно, что есть экономия. Чем будет чреват SWITCH - будут куски между SWITCH и первым CASE + между END от последнего CASE и END от SWITCH и главное нужно будет больше END пихать в шаблон (после каждого CASE и общий). Не думаю, что в целом будет компактнее. -
13 марта 2012 г. 13:16, спустя 22 минуты 8 секунд
Был у нас Blitz 0.6 и понадобилось вызывать в нём PHP-фукнции.
В 0.7 их можно вызывать в виде {{ php::function(args) }}, поэтому на него и перешли.
И тут ПЦ - половину функций стало возможно вызывать даже без "php::". Просто {{ function(args) }}.
Здесь были, кажется люди, которые с Blitцом работали.
мой косяк. в одной версии добавил этот "зарезервированный" неймспейс, а потом его убрал. верну, наверное. написали бы сразу в баг-трекер или напрямую :)
и в доке написано пока по-старому. пофикшу.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!