Допустим есть функция someFunc
которая принимает строку, и возврщает модифицированную строку, как мне ее внеднрить в свои шаблоны? Если можно отдельным блоком, то как лучше это сделать? Или же если дбавлять метод к контексту (this.someFunc
) то где лучше его объявить?
Думаю тут ответят как правильно передать функцию. Но интересно почему бы не делать это на сервере? Все равно же данные приходят от сервера?
Например мне пришло кол-во комментариев и в зависимости от кол-во ставить нужное окончание у слова "комменатрий"
@adinvadim для склонения слов в зависимости от числительных я бы предложил воспользоваться i18n.
А ответ на исходный вопрос зависит от того, может ли эта функция потребоваться и вне шаблонов. Если да, то можно положить ее в отдельный модуль и подключить через https://ru.bem.info/tools/bem/enb-bemxjst/readme/#Подключение-сторонних-библиотек
А если функция нужна исключительно в шаблонах, то ее стоит добавлять так:
В результате эта функция будет доступна из всех шаблонов через
this.utilFunction();
А в bh такое не планируется?
@kompolom В BH это есть: https://ru.bem.info/tools/bem/enb-bh/readme/#Особенности-работы-пакета
@tadatuta Понял, огромное спасибо!
@tadatuta Круто, как-то упустил. @zxqfox А в bh-php тоже есть такая возможность?
@kompolom Есть такое: https://github.com/bem/bh-php/blob/82cd0e1c3f7d67878c0bc7a82d413e73957f34dc/src/BH.php#L28-L38 А что ты туда положишь — на свой страх и риск ;-)
UPD: В технологии enb-bh-php, по аналогии с js, можно сделать, никто не просил. Только надо определиться что мы указываем, и что складываем. В пхп же нет модулей как таковых, кроме composer, где модули подключаются через php-неймспейсы. В общем, смысл этого всего не ясен.
@zxqfox смысл: есть функция которая используется в нескольких шаблонах. Хочется вынести ее куда-нибудь
@kompolom Я бы туда что-то такое положил: DependencyInjection
А там уже хоть функцию, хоть трава не расти
UPD: Но можно и просто