|
vasa_c ↓
|
 |
|
27 Июль, 2011, 01:03:08
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 81
Сообщений: 2459 Сила слова: 3.29
|
Был у нас Blitz 0.6 и понадобилось вызывать в нём PHP-фукнции.
В 0.7 их можно вызывать в виде {{ php::function(args) }}, поэтому на него и перешли.
И тут ПЦ - половину функций стало возможно вызывать даже без "php::". Просто {{ function(args) }}.
И, что цуко характерно, они вызываются в первую очередь, а то, что у нас уже в наследниках Blitz были определены методы с такими же именами, им не интересно.
Где вообще об этом написано? Где Changelog нормальный этого блитца? Как это отключить нах, в настройках не видно?
Здесь были, кажется люди, которые с Blitцом работали.
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
27 Июль, 2011, 01:04:30 , спустя 1 минуту 22 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
Здесь были, кажется люди, которые с Blitцом работали.
их уволили, видимо сразу после перехода на 0.7 xD
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
mario ↓
|
 |
|
27 Июль, 2011, 01:46:16 , спустя 41 минуту 46 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
wazzup
Группа: Джедаи Карма: 67
Сообщений: 6162 Сила слова: 1.09
|
че профи обосрались!!!111???!111
|
|
|
|
|
Записан
|
|
|
|
|
AlexB ↓
|
 |
|
27 Июль, 2011, 05:34:56 , спустя 3 часа 48 минут 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 89
Сообщений: 3426 Сила слова: 2.6
|
1. 0.7 насколько я понимаю версия недоделанная, она с приставкой -dev и у меня с ней тоже были проблемы.
2. PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?
|
|
|
|
|
Записан
|
|
|
|
|
mario ↓
|
 |
|
27 Июль, 2011, 05:48:25 , спустя 13 минут 29 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
wazzup
Группа: Джедаи Карма: 67
Сообщений: 6162 Сила слова: 1.09
|
2. PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?
нам это не нужно, нам нужно, что бы их не было ) Спустя 35 секунд добавил мы как раз таки и использовали свою функцию, но после перехода на 0.7, у нас поломалась наша пользовательская функция )
|
|
|
|
|
Записан
|
|
|
|
|
vasa_c ↓
|
 |
|
27 Июль, 2011, 05:56:12 , спустя 7 минут 47 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 81
Сообщений: 2459 Сила слова: 3.29
|
AlexB, спасибо.
PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?
Потому что дизайнера постоянно фантазии посещают. Типа, сделайте чтобы в футере в копирайте год всегда текущий был.
Писать каждый раз новый метод вида getCurrentYear() не охото.
Можно сделать, конечно, callPHPFunc($name, $args), но если уже есть возможность решили её использовать Спустя 1 минуту 28 секунд добавил И ещё у меня юнит-тесты (phpunit) зачастую вылетают с Segmentation Fault в тех местах, где Blitz используется.
В любой другой среде воспроизвести такую хрень не удалось.
Не сталкивался никто с таким?
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
27 Июль, 2011, 06:15:44 , спустя 19 минут 32 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
2. PHP функции в шаблоне - зло! У меня ни разу в них потребность не возникла, что мешает свою юзер-функцию сделать, если уж так понадобилось?
+1 Спустя 1 минуту 2 секунды добавил Потому что дизайнера постоянно фантазии посещают. Типа, сделайте чтобы в футере в копирайте год всегда текущий был.
Писать каждый раз новый метод вида getCurrentYear() не охото.
А мы же в кинсбурге вроде делали что-то наподобие джанговкого context_processor'а?
Который может передавать какие-либо глобальные переменные в жаблон? Спустя 1 минуту 19 секунд добавил https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS
|
|
|
|
|
Записан
|
|
|
|
|
vasa_c ↓
|
 |
|
28 Июль, 2011, 10:31:12 , спустя 16 часов 15 минут 28 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 81
Сообщений: 2459 Сила слова: 3.29
|
А мы же в кинсбурге вроде делали что-то наподобие джанговкого context_processor'а?
Который может передавать какие-либо глобальные переменные в жаблон?
Здесь не глобальная переменная, здесь date('Y')
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
28 Июль, 2011, 12:49:42 , спустя 2 часа 18 минут 30 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
А что мешает:
return {'CURRENT_YEAR': date('Y')}
?
|
|
|
|
|
Записан
|
|
|
|
|
vasa_c ↓
|
 |
|
28 Июль, 2011, 02:46:01 , спустя 1 час 56 минут 19 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 81
Сообщений: 2459 Сила слова: 3.29
|
влом. и ты вообще забыл PHP
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
28 Июль, 2011, 02:57:41 , спустя 11 минут 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
Ну судя по моим последним коммитам в кинсбург я ещё его плмню )
|
|
|
|
|
Записан
|
|
|
|
|
fisher ↓
|
 |
|
13 Март, 2012, 08:33:40 , спустя 228 дней 17 часов 35 минут 59 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 3
Сообщений: 6 Сила слова: 50
|
В 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
|
|
|
|
|
Записан
|
|
|
|
|
AlexB ↓
|
 |
|
13 Март, 2012, 12:25:14 , спустя 3 часа 51 минуту 34 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: в ухо Карма: 89
Сообщений: 3426 Сила слова: 2.6
|
Если просто {{ method }} то - по умолчанию зовем PHP, затем зовём метод объекта-шаблона. И есть новая настройка, php_callbacks_first которая меняет порядок вызова, если php_callbacks_first = 0, то сначала будет шаблон, а потом PHP. Вероятнее всего по умолчанию надо ставить php_callbacks_first = 0, сейчас 1, я просто хочу понять реакцию комьюнити.
Привет, Алексей. На мой вкус, конечно 0. Это сохранит совместимость со всем ранее сделанным без подкручивания настроек.
У меня было впечатление, что никто не морочился со своими функциями и все хотели PHP. Сам я программлю редко, но в компании у нас запрещены и функции, и PHP, и логика в шаблонах, но это долгий разговор.
Я морочился. Например, для компактности шаблонов, сильно не хватает конструкции switch (А можно сделать???:)), посему была написана функция:
/**
* Реализация языковой конструкции 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:25:14 от AlexB »
|
Записан
|
|
|
|
|
fisher ↓
|
 |
|
13 Март, 2012, 12:54:51 , спустя 29 минут 37 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 3
Сообщений: 6 Сила слова: 50
|
Я морочился. Например, для компактности шаблонов, сильно не хватает конструкции switch (А можно сделать???:)), посему была написана функция:
а чем это отличается от IF/ELSEIF/ELSE ? не пишем во всех условиях предикат полностью? можно пример, чтоб было понятно, что есть экономия. Чем будет чреват SWITCH - будут куски между SWITCH и первым CASE + между END от последнего CASE и END от SWITCH и главное нужно будет больше END пихать в шаблон (после каждого CASE и общий). Не думаю, что в целом будет компактнее.
|
|
|
|
|
Записан
|
|
|
|
|
fisher ↓
|
 |
|
13 Март, 2012, 01:16:59 , спустя 22 минуты 8 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 3
Сообщений: 6 Сила слова: 50
|
Был у нас Blitz 0.6 и понадобилось вызывать в нём PHP-фукнции.
В 0.7 их можно вызывать в виде {{ php::function(args) }}, поэтому на него и перешли.
И тут ПЦ - половину функций стало возможно вызывать даже без "php::". Просто {{ function(args) }}.
Здесь были, кажется люди, которые с Blitцом работали.
мой косяк. в одной версии добавил этот "зарезервированный" неймспейс, а потом его убрал. верну, наверное. написали бы сразу в баг-трекер или напрямую :)
и в доке написано пока по-старому. пофикшу.
|
|
|
|
|
Записан
|
|
|
|
|