Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addons are deprecated #261

Open
aolko opened this issue Dec 24, 2016 · 26 comments
Open

Addons are deprecated #261

aolko opened this issue Dec 24, 2016 · 26 comments

Comments

@aolko
Copy link

aolko commented Dec 24, 2016

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

@maxisoft-git
Copy link
Member

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

@maxisoft-git
Copy link
Member

maxisoft-git commented Dec 26, 2016

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

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

@maxisoft-git
Copy link
Member

maxisoft-git commented Dec 26, 2016

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

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

<?php

namespace MaxiSoft\Render;

use Fenom;

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

да что вы говорите...
Начнём с того что в вики страница аддонов не локализована,

помимо этого она ссылается на экстра пак, который, о какая жалость,

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

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

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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}

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

не-а

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

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

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

Бестолку

@maxisoft-git
Copy link
Member

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

@bzick
Copy link
Member

bzick commented Dec 26, 2016

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

@aolko
Copy link
Author

aolko commented Dec 26, 2016

@maxisoft-git
Copy link
Member

@aolko
Copy link
Author

aolko commented Dec 26, 2016

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

@maxisoft-git
Copy link
Member

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

@WinterSilence
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants