powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как в шаблон Twig передать переменную объект PHP
19 сообщений из 19, страница 1 из 1
Как в шаблон Twig передать переменную объект PHP
    #38602484
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Собственно сабж. Сайт уже сделан на твиге - переписывать возможности нет.

Я с твигом не работал (последняя версия используется как и пхп)

Есть самописный обект который просто необходимо передать в шаблон и там выполнять его методы.

Реально такое?

Если да подскажите синтаксис.
Пробую - не выходит. Библиотека твига выдает - неизвестный синтаксис.

Код: php
1.
{% Banner_gen->getBanner(3) %}


Пробовал и через AddGobal и при инициализации

Код: php
1.
$twig = new Twig_Environment($twigloader, array('cache' =>$_SERVER['DOCUMENT_ROOT'].'/cache/', 'charset' => 'windows-1251', 'debug' => true, 'Banner_gen' => $Banner_gen));


Объект не виден и все тут.
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38602568
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
'banner_gen' => new Banner_gen


и в твиге
{{ banner_gen.getBanner(3) }}

еще есть такая штука:
staticCall('Banner_gen', 'getBanner', [3])
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38603255
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

без статики заработало и успешно. Пасибо огромное. В статике не хочу. Во всяком случае не сейчас. Буду копать дальше бубуд вопросы создам тему
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38603625
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

автори в твиге
{{ banner_gen.getBanner(3) }}
а можно ссылочку - а то что то нагуглить не получается. ПО твигу инфы много а толковой мало.

А то все таки не работает - есть мнение что из за глюков на серваке. Не выдает лог.
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38603632
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38603634
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже не подскажу. Сам на работе первый раз столкнулся с твигом и по коду сидел додумывал.

Вот первое что в поиске попалось, хоть его и не любят)

Ну и конечно оф. документация (но придется переводить, если нет познаний англ.)
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38603954
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

автор если нет познаний англ
с этим как раз все в порядке но сама дока оставляет желать лучшего.
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38604949
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Перечитал доки, перепробовал варианты

Код: php
1.
{{ banner_gen.getBanner(3) }}


не работает.

Вот код там где определяю шаблон - файл индекс

Код: php
1.
2.
3.
4.
5.
6.
7.
require_once $CFG->dir_libs . '/banner_gen.php';


$twig = new Twig_Environment($twigloader, array('cache' =>$_SERVER['DOCUMENT_ROOT'].'/cache/', 
                                                                    'charset' => 'windows-1251', 
                                                                    'debug' => true, 
                                                                    'banner_gen' => new Banner_Generator($Dtb)));




Вот сам класс

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
class Banner_Generator
  {
  
  
	
  
    // here setting we an Database-connection
    public function __construct($Dtb) {
		$fp = fopen('log1.txt', 'w+'); 
		fwrite($fp, 'open db');   		
		всякая фигня выполняется
		fwrite($fp, 'after db');
		fclose($fp);
		
	}
	
	public function getBanner($BannerType)
	{	  
	   $fp = fopen('log2.txt', 'w+');       	
	   $bool = false;
	   $TryingCnt = 0;
	   всякая фигня выполняется
	}    
  }




В конструкторе который выполняется безтвига лог файл генериться, в твиге - нет.

По докам вроде все ок. ПРобовал через переменную тоже нет эффекта но мне вообще удобнее без всякой переменной - входящий параметр есть принципиальный.
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38604951
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

лазать в исходник как то нет желания - может так подскажете. Обычно всегда есть какой то подводный камень но не вижу его ни фига твиг для меня новый фремворк. Кейк в свое время пришлось по исходникам изучать сейчас как то времени нет.
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38605089
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр,

Я такой же знаток твига как и вы)

А не вариант сделать костыль в классе вида
publick function load() {
self::__construct()
}
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38605210
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

А где его сделать - просто пока не понимаю для чего и чем поможет. Т е сделать эту функцию прямо в самом шаблоне?

Можно просто на более подробном примере кода расписать?

Я сейчас как раз ищу обходное решение пусть не самое элегантное но чтобы работало прямо сейчас. Потом можно и переписать - но важно чтобы работало.
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38605264
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр,


вообще вот это должно работать нормально, попробуй поставить raw
{{ banner_gen.getBanner(3) | raw }}

по отлавливай через {{ dump(что-то) }} посмотри что передается
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38605590
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Пока что то не выходит - попробую дампом.

А прямая запись в лог из шаблона твига работать будет?

Через двойные фигурные скобки код php сработает - тот же fopen?
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38606761
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

Даже дамп не пашет. ПОсмотрел файл дебаг.пхп как то там мутно сделано дамп через массив и пхп-шную функцию дамп. Вообщем не уверен что в таком виде оно работать будет.

Бывают какие то урезанные варианты твига? Есть подозрение что установлено что то такое. Думаю реализовать свою на задачу на классе-экстеншине - или так будет медленнее?

Просто пока что то не идет а та кроме этой задачи много чего еще сделать надо ищу варианты как быстрее реализовать
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38606867
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр,

А проблема в чем? Не отрабатывает конструктор и из-за этого не работает fopen в getBanner, или getBanner вообще не вызывается в твиге тем способом что я показал?
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38610214
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu,

именно что гетбаннер не вызывается. Конструктор отрабатывает раньше а потом передаю уже проиниченный объект чей метод тупо не вызывается
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38610302
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр,

а сразу в твиг передать результат выполнения getBanner никак?
Ну либо отказаться от конструкта...
Вообще странно что не работает
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38611499
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
{% set busy = range.busy %}
{{ range.ts2human(busy.beg) }} {{ range.ts2human(busy.end) }}


range передается как переменная, или я не понял вопроса
...
Рейтинг: 0 / 0
Как в шаблон Twig передать переменную объект PHP
    #38611510
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class Banner_Generator
  {...
	public function getBanner($BannerType)
	{	  
	   $fp = fopen('log2.txt', 'w+');
	   $bool = false;
	   $TryingCnt = 0;
	   всякая фигня выполняется
	}    
  }


А Вы уверенны в выделенном?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как в шаблон Twig передать переменную объект PHP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]