Pull to refresh
34
Иван@Aco

Программист, Web-разработчик

14
Subscribers
Send message
Она будет, только отдельным расширением к шаблонизатору, который в ходит в пак расширений Fenom Extra, не полная совместимость, конечно, но как раз 80% где-то будет
да, это одна из причин почему я взялся за шаблонизатор. хотя странно что феном почти в 2 раза сдает нативному PHP ведь он конвертит в нативный PHP, а с какими параметрами запускали?
думаю может быть еще «одинх… „
Будет, надеюсь скоро, масштабное решение: Winulator: запуск игр 90-х на Android OS
да, я как раз планирую вернуться к проекту и не один
Немного напоминает мой дохлый проект Toxen
или херак-код (очень быстро накостылено)
Хм, на сайте сказано инет стоит 3 руб в день = 900 руб в месяц. Не очень выгодно, учитывая, что у мегафона я беру за 450руб с намного большим покрытием.
Забавно, только недавно хотел вернуться к своему давнему проекту, который интерпретирует любую PHP либу в си, так что бы можно было собрать расширение для PHP в виде SO файла. Все распланировал, продумал и даже придумал как быть с yield в сях. Однако теперь и не знаю, стоит-ли дальше развивать проект?
хм, пока нету, думаю надо бы поднять форум
От кривых рук нет защиты.
Вас тоже этот вид raw, через модификатор, ввело в заблуждение.
Дело в том, что у twig не важно на какую переменную применен модификатор raw — ожидаемого воздействия не будет. При включенном экранировании, для тегов
{{ "data: " ~ a|upper|raw ~ b|lower }}
{{ "data: " ~ a|upper|raw ~ b|lower|raw }}
{{ "data: " ~ (a|upper|raw ~ b|lower)|raw }}

результат будет один:
data: <A>A</A><b>b</b>
модификатор игнорируется.
Только
{{ ("data: " ~ a|upper|raw ~ b|lower)|raw }}

будет иметь нужное нам значение, что очень похоже на мой реализованный вариант. Я просто предложил более прозрачный вариант, воздействие может быть только на тег целиком, поэтому пусть тег и указывает тип воздействия.

{verbatim} не то другое, это как {literal} в Smarty или {ignore} в Fenom — игнорирование тегов шаблонизатора.
Я изначально считал raw, как модификатор, не лучшим вариантом. Неоднозначность ситуции {«Text» ~ $var|up|raw ~ $value|low} или схожих может привести к не пониманию и путанице. Так же модификатор не применить к inline или блоковой функции. Raw, по сути, упаравление потоком, делать через модификатор я считаю, мягко говоря, не корректно, так как модификатор меняет значение переменной непосредственно, а не управляет шаблонизатором. В предложенном мной варианте явно указано что raw применяется к тегу вцелом.
Шаблонизатор стабилен, покрыт тестами. В коментрарии я предлагаю присоеденится и наростить необходимую и недостающую фугкциональность.
" те же способы доступа должны равноценно работать для массивов, объектов"… " достаточно ресурсоемкая задача", а не проще контролировать входные данные в шаблон? Шаблонизатор у меня зародился по одной простой причине, я всегда уверен какие данные отдала система в шаблон и мне не нужен огород из проверок. Поискав по интернету, таковых шаблонизаторов (которые не считают себя умнее разработчика) я не нашел… поэтому взялся за молоток клавиатуру, но азарт разработки поглатил меня и вышло нечто большее чем примитивный шаблонизатор. Тем неменее идею я оставил: ваши данные — ваша ответвенность.
Отчасти вы правы, если шаблны простые. Я тоже так полагал, что проще проверить пхп код, однако вот как вышло. Вставка переменных еще не плохо анализируется, однако когда нужны различные модификаторы, начинается пляска. Например, то что обычный модификатор в шаблонах на самом деле не простая функция с несколькими аргументами которая может поступить не тривиально при не правильных условиях и использовании. Код начал множиться и усложнять, да так что через некоторое время даже разработчик не понимал что там происходит. Я все-таки за шаблоны, НО при компиляции, которые, превращаются в тот пхп код который бы вы сами написали, если бы писали шаблон на чистом пхп. Я шаблонизатор рассматриваю как преобразователь некой разметки в качественный и быстрый PHP код.
Конечно, если у вас простейшая шаблонизация то не стоит и запариться — используйте PHP :)
По поводу транслитерации в си, у меня давно начата наработка в виде Toxen (поэтому я и изучал расширение tokenizer), который позволит превратить любую PHP либу в расширение (fenom.so, symfony.so, yii.so итп), но увы, катастрофично не хватает времени.
Добавил raw и autoescape. Довольно быстро и легко, с проблемами которые Вы описали не столкнулся. Про проверку переменной это отдельная история, переменные у меня берутся через один код — Fenom\Template::parseVar() добвить туда тернарник не проблема, задача пока висит из-за написании тестов.

Мне кажется Вы слегка нагнетаете, если архитектура проекта проста и ясна, то добавить хоть самый изврат — не проблема.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Бэкенд разработчик, Архитектор программного обеспечения
Ведущий
Golang
PHP
MySQL
MongoDB
Redis
Git
SQL