fenom icon indicating copy to clipboard operation
fenom copied to clipboard

Addons are deprecated

Open aolko opened this issue 8 years ago • 26 comments

Последнее обновление аддонов и экстра-пакета в целом было от 2 до 4 лет назад, опубликуйте актуальные ссылки на свежии версии аддонов и реализуйте assign из коробки

aolko avatar Dec 24 '16 19:12 aolko

Хорошо. Я собираюсь переключиться обратно на этот проект после нового года и привести все в порядок

bzick avatar Dec 26 '16 07:12 bzick

👍 здорово, однако теперь выходит что я остался без шаблонизатора или придётся опять перелезать на смарти :/ (не круто)

aolko avatar Dec 26 '16 07:12 aolko

А что вам требуется?

bzick avatar Dec 26 '16 08:12 bzick

альтернатива смарти, которая не слишком упрощена (twig), не слишком уж приближена к php (plates), не в сомнительном состоянии (dwoo), достаточно шустрая и не порезанная.

aolko avatar Dec 26 '16 08:12 aolko

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

maxisoft-git avatar Dec 26 '16 08:12 maxisoft-git

альтернатива смарти, которая не слишком упрощена (twig), не слишком уж приближена к php (plates), не в сомнительном состоянии (dwoo), достаточно шустрая и не порезанная.

Вопрос скорее был в том что Вам нужно именно от Extra и аддонов? Так как я уже описал весь функционал вынесен в отдельные пакеты.

maxisoft-git avatar Dec 26 '16 08:12 maxisoft-git

Чтобы всё оттуда работало из коробки или хотя бы имело простое встраивание/установку (без бардака в документации)

aolko avatar Dec 26 '16 08:12 aolko

А в чем собственно бардак? В документации все описано достаточно понятно. и не вызывает не каких проблем с подключением.

простой пример создаем свой класс примерно вот так

<?php

namespace MaxiSoft\Render;

use Fenom;

class RenderTemplate extends Fenom
{
    use Fenom\EntityLoaderTrait;
    use Fenom\FSEntityLoaderTrait;
    use Fenom\StorageTrait;
}

maxisoft-git avatar Dec 26 '16 08:12 maxisoft-git

да что вы говорите... Начнём с того что в вики страница аддонов не локализована, помимо этого она ссылается на экстра пак, который, о какая жалость, устарел. И это уже мы выяснили из секции issues касательно альтернативы assign. Добивочка по email.

А уже на этапе имплементации выясняется что метода-то и нет.

Хотя и сделано всё по инструкции

aolko avatar Dec 26 '16 08:12 aolko

Да, доки не хватает по аддонам) Буду исправлять

bzick avatar Dec 26 '16 08:12 bzick

а можно вот прям сейчас? Сроки подгорают, а те функции которые должны работать из коробки не работают.

p.s. Не исключено что какая-нибудь ещё очередная функция, работавшая со smarty отвалится в fenom или её вовсе не будет

aolko avatar Dec 26 '16 08:12 aolko

функции которые должны работать из коробки

это assign? и что-то еще?

bzick avatar Dec 26 '16 08:12 bzick

assign, доступ к $_GET/$_POST/$_SESSION/другой сервисной переменной php(?) и пока что всё

aolko avatar Dec 26 '16 08:12 aolko

Используете composer? и какая версия PHP у вас (trait поддерживает)?

bzick avatar Dec 26 '16 08:12 bzick

composer + php7(.0.8) (хотя было бы неплохо запилить версию для 5.6 без traitов)

aolko avatar Dec 26 '16 08:12 aolko

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}

bzick avatar Dec 26 '16 08:12 bzick

В итоге у вас будет assign:

не-а

aolko avatar Dec 26 '16 08:12 aolko

У phpstorm-а есть проблемы с примесью, появились в одной из версий и до сих пор не починили. Укажите ему что за объект

$fenom = StorageFenom::factory($tpl_path, $cache_path);
/* @var \Fenom|StorageFenom $fenom */
$fenom->assign('test', 123);

UPD пространство имен подгоните под себя в комментарии

bzick avatar Dec 26 '16 08:12 bzick

Укажите ему что за объект

Бестолку

aolko avatar Dec 26 '16 08:12 aolko

Если смотреть текущий код он не верный, выше вы как раз правильно делали, свой класс с трейтами расширении, а тут вы определили просто класс без трейта и без объявления имени пространства.

maxisoft-git avatar Dec 26 '16 08:12 maxisoft-git

@aolko убедитесь что у вас в vendor-ах есть пакет fenom/storage с классом StorageFenom. Выглядит как-будто у вас проблема с пакетами в шторме

bzick avatar Dec 26 '16 08:12 bzick

aolko avatar Dec 26 '16 09:12 aolko

maxisoft-git avatar Dec 26 '16 09:12 maxisoft-git

вот так сразу нельзя было подсказать?

aolko avatar Dec 26 '16 09:12 aolko

Честно можно было, просто не посмотрел на этот момент, пока не сделал сам :) бывает такое.

maxisoft-git avatar Dec 26 '16 09:12 maxisoft-git

@bzick это не в шторме дело, а в кривом и местами отсутствующем теге @package и такой require секции composer.json

WinterSilence avatar Apr 12 '20 05:04 WinterSilence