fenom
fenom copied to clipboard
Addons are deprecated
Последнее обновление аддонов и экстра-пакета в целом было от 2 до 4 лет назад, опубликуйте актуальные ссылки на свежии версии аддонов и реализуйте assign из коробки
Хорошо. Я собираюсь переключиться обратно на этот проект после нового года и привести все в порядок
👍 здорово, однако теперь выходит что я остался без шаблонизатора или придётся опять перелезать на смарти :/ (не круто)
А что вам требуется?
альтернатива смарти, которая не слишком упрощена (twig), не слишком уж приближена к php (plates), не в сомнительном состоянии (dwoo), достаточно шустрая и не порезанная.
Вот и я не понял что именно нужно из Extra, просто по факту Extra уже не нужна так как весь функционал сделан отдельными пакетами, поддержка плагинов, коллекции провайдеров, и расширение самого шаблонизатора. Плагины которые были собраны, так они до сих пор актуальные.
альтернатива смарти, которая не слишком упрощена (twig), не слишком уж приближена к php (plates), не в сомнительном состоянии (dwoo), достаточно шустрая и не порезанная.
Вопрос скорее был в том что Вам нужно именно от Extra и аддонов? Так как я уже описал весь функционал вынесен в отдельные пакеты.
Чтобы всё оттуда работало из коробки или хотя бы имело простое встраивание/установку (без бардака в документации)
А в чем собственно бардак? В документации все описано достаточно понятно. и не вызывает не каких проблем с подключением.
простой пример создаем свой класс примерно вот так
<?php
namespace MaxiSoft\Render;
use Fenom;
class RenderTemplate extends Fenom
{
use Fenom\EntityLoaderTrait;
use Fenom\FSEntityLoaderTrait;
use Fenom\StorageTrait;
}
да что вы говорите...
Начнём с того что в вики страница аддонов не локализована,
помимо этого она ссылается на экстра пак, который, о какая жалость,
устарел. И это уже мы выяснили из секции issues касательно альтернативы assign. Добивочка по email.
А уже на этапе имплементации выясняется что метода-то и нет.
Хотя и сделано всё по инструкции
Да, доки не хватает по аддонам) Буду исправлять
а можно вот прям сейчас? Сроки подгорают, а те функции которые должны работать из коробки не работают.
p.s. Не исключено что какая-нибудь ещё очередная функция, работавшая со smarty отвалится в fenom или её вовсе не будет
функции которые должны работать из коробки
это assign? и что-то еще?
assign, доступ к $_GET/$_POST/$_SESSION/другой сервисной переменной php(?) и пока что всё
Используете composer? и какая версия PHP у вас (trait поддерживает)?
composer + php7(.0.8) (хотя было бы неплохо запилить версию для 5.6 без traitов)
assign
Подключите адд-он хранилища (для assign) composer require fenom/storage
.
После сможете создать Fenom c хранилищем
$fenom = Fenom/StorageFenom::factory(...);
или можете добавить хранилище в свой класс Fenom-а примесью Fenom\StorageTrait
В итоге у вас будет assign:
$fenom->assign("var_name", $value);
$fenom->assignByRef("var_name", $value);
$fenom->append("var_name", $value);
$_GET/$_POST/$_SESSION/другой сервисной переменной php
это доступно и сейчас через системную переменную $.
:
{if $.get.debug}
...
{elseif $.cookie.debug}
...
{elseif $.server.REMOTE_ADDR == '127.0.0.1'}
{/if}
В итоге у вас будет assign:
не-а
У phpstorm-а есть проблемы с примесью, появились в одной из версий и до сих пор не починили. Укажите ему что за объект
$fenom = StorageFenom::factory($tpl_path, $cache_path);
/* @var \Fenom|StorageFenom $fenom */
$fenom->assign('test', 123);
UPD пространство имен подгоните под себя в комментарии
Укажите ему что за объект
Бестолку
Если смотреть текущий код он не верный, выше вы как раз правильно делали, свой класс с трейтами расширении, а тут вы определили просто класс без трейта и без объявления имени пространства.
@aolko убедитесь что у вас в vendor-ах есть пакет fenom/storage с классом StorageFenom. Выглядит как-будто у вас проблема с пакетами в шторме
вот так сразу нельзя было подсказать?
Честно можно было, просто не посмотрел на этот момент, пока не сделал сам :) бывает такое.
@bzick это не в шторме дело, а в кривом и местами отсутствующем теге @package
и такой require
секции composer.json