Перейти к содержанию
sv2109

To twig or not to twig? И другие вопросы связанные с переносом модулей на OpenCart 3

Рекомендуемые сообщения

Все кроме меня уже наверное перенесли свои модули на 3 версию или по крайней мере начали этот процесс. Следовательно вопросы кто как делает

 

1. Переписываете ли все шаблоны на twig или оставляете на старом шаблонизаторе. Последнее очень соблазнительно в силу того, что не нужно тратить кучу времени на перенос на twig, но как мне кажется менее кошерно, так как весь движок уже перешел на twig и очень желательно чтобы все модули тоже работали на нем же, а не использовали какие-то костыли, тем более что из модулей придется свой код добавлять в twig шаблоны через ocmod и получится что в одном модуле будет каша из разных шаблонов. Но с другой стороны строгого правила делать именно так я нигде не видел. Поэтому кто что по этому поводу думает?

 

2. Как собирать модули. Вроде как стандартом под 3 версию есть архив модуля, который можно полностью загружать и устанавливать через админку. Но далеко не у всех пользователей это настроено на сервере и загрузить таким способом не все смогут. Поэтому опять кто как делает?
Тут кстати, если я правильно понимаю, то вижу потенциальную дыру в безопасности. Ведь для того, чтобы загружать модули через админку нужно чтобы все файлы и каталоги имели владельца www-data а дав всем файлам и каталогам такого владельца мы даем возможность любому php скрипту сделать с любым файлом все что угодно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой..
2. Есть доступные директории куда можно грузить

5 минут назад, sv2109 сказал:

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

И... Что ты хочешь предложить?

 

 

1, Да на твиге, а в чем проблема,?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, chukcha said:

 

И... Что ты хочешь предложить?

 

да вот даже в 2.3 была возможность грузить файлы через фтп при установке модулей, это и намного проще настроить пользователю (так как фтп доступ у всех есть, прописал 1 раз  и все) и безопаснее (в плане доступа к файлам из php скриптов, конечно хранить фтп доступы открыто в настройках это тоже дыра та еще) но в 3 версии это удалили, спрашивается зачем?

 

1 hour ago, chukcha said:

 

1, Да на твиге, а в чем проблема,?

 

Проблему я описал выше, она заключается в том, что для каждого модуля нужно переделывать все шаблоны + так как twig менее функционален и многих функций там нету + своя специфика, то для каких-то сложных шаблонов нужно потратить прилично времени. С другой стороны 2 строчками кода можно подключить к своему модулю шаблон на старом движке и все на ура будет работать и весь перенос модуля с 2 на 3 займет считанные минуты вместо часов. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, sv2109 сказал:

Все кроме меня уже наверное перенесли свои модули на 3 версию или по крайней мере начали этот процесс. Следовательно вопросы кто как делает

 

1. Переписываете ли все шаблоны на twig или оставляете на старом шаблонизаторе. Последнее очень соблазнительно в силу того, что не нужно тратить кучу времени на перенос на twig, но как мне кажется менее кошерно, так как весь движок уже перешел на twig и очень желательно чтобы все модули тоже работали на нем же, а не использовали какие-то костыли, тем более что из модулей придется свой код добавлять в twig шаблоны через ocmod и получится что в одном модуле будет каша из разных шаблонов. Но с другой стороны строгого правила делать именно так я нигде не видел. Поэтому кто что по этому поводу думает?

 

И twig и tpl а в модуле выбор шаблонизатора
tpl в twig один кликом то ;)

https://phptotwig.com/

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем одним, но очень приличный инструмент

Т.е. если нет наворотов шаблонах, что можно было позволить себе в php, то да

 

13 минут назад, sv2109 сказал:

это удалили, спрашивается зачем?

Уходим в облака.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 minutes ago, markimax said:

И twig и tpl а в модуле выбор шаблонизатора
tpl в twig один кликом то ;)

https://phptotwig.com/

ну я использовал php2twig.com 
но "одним кликом" это только в теории получается, а реально там потом еще куча времени нужно потратить, чтобы все заработало, так как
1. на сложных условиях (когда много вложенностей циклов и условий) он постоянно неправильно закрывает эти условия и ничего не работает
2. на тернарных операторах тоже лаги постоянные
3. сложные архивы делает не правильно,
напр. из  $description[$language['language_id']]['name']
делает description.language.language_id.name
а нужно description[language.language_id].name
4. если раньше в шаблонах можно было на крайний случай использовать немного php кода, но с twig-ом это не пройдет и нужно переделывать логику, все выносить в контроллер. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это кажется, есть фильтры

{{ var|lower }}

 

Я пару раз сталкивался с "утяжелением", но каждый раз все получалось

 

Как совет - при разработке включить strict

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
29 минут назад, sv2109 сказал:

ну я использовал php2twig.com 
 

В мусорку php2twig.com 

В https://phptotwig.com/  не надо потом допиливать ничего

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

полностью markimax'а поддерживаю

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, еще одним плюсом для twig-а в опенкарт является то, что в опенкарт 3 есть редактор тем, думаю пользователям он очень понравится и все будут активно его использовать для мелких правок, а он только twig поддерживает. Так что php шаблонизатор как бы удобен не был, но наверное в опенкарт 3 и дальше от него придется отказаться. 

 

19 minutes ago, markimax said:

В мусорку php2twig.com 

В https://phptotwig.com/  не надо потом допиливать ничего

спасибо, попробую. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, sv2109 сказал:

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

Не будут :(

 

Потому что к ним не применяется ocmod

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ссори за оффтоп, Но как по мне, то разговор о тпл на 3-ке, это как на 2-ке о vqmod, когда некоторым авторам просто лень переделать свой хмл. Надеюсь на тройку vqmod уже тулить не будут 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

уже тулят

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 часов назад, chukcha сказал:

уже тулят

А потом клиенты прибегают и кричат , надо версию обновить, а то сильно все тормозит :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, VTstudio сказал:

А потом клиенты прибегают и кричат , надо версию обновить, а то сильно все тормозит :)

Спорный вопрос, тормоза есть, но такие ли они критичные?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 hours ago, VTstudio said:

Ссори за оффтоп, Но как по мне, то разговор о тпл на 3-ке, это как на 2-ке о vqmod, когда некоторым авторам просто лень переделать свой хмл. 

да, вы правы, и достаточно точная аналогия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, sv2109 сказал:

да, вы правы, и достаточно точная аналогия.

А что там "переделывать" :)
Один клик правильного (сделанного согласно требований opencart) tpl и уже twig

https://phptotwig.com/

Проверено - идеально без ошибок конвертирует

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

конвертирует без ошибок простое
но не в стиле twig OC - доступ к полям массива

Не совсем корректно отрабатывает "фильтры", например  count(array)  array|length

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, chukcha сказал:

конвертирует без ошибок простое
но не в стиле twig OC - доступ к полям массива

Не совсем корректно отрабатывает "фильтры", например  count(array)  array|length

Согласно стандартов синтаксиса twig
Просто кому как "нравится" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да я ж  не против, 80% совместимо
все остальное - пыль

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот наступил тот прекрасный момент, когда опенкарт из цмс превращается в в фреймверк, подключают нормальный шаблонизатор, гляди теперь в вьюхе мы не увидим обращений на БД. Но Нет, будем ставить тпл и vqmod. В целом конечно это дело каждого разработчика, но то что я вижу, так это - если человек делает на совесть да еще и с последующим обслуживанием, то он не будет создавать себе гемор, а если так что бы на от..сь и просто срубить и побежать искать ло Клиента дальше, то это как правило тема, vqmod и хренова туча модулей, ну вот на тройке добавится еще и тпл. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
32 минуты назад, VTstudio сказал:

ну вот на тройке добавится еще и тпл. 

Я не думаю, что это не будет массовым явлением, кроме того, чтобы загрузить tpl, нужно .. или событие, или ломать шаблонизатор..

 

Кроме того, vqmod придется ручками грузить, а вот  двойка постепенно отучала
Так что

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, chukcha сказал:

Кроме того, vqmod придется ручками грузить, а вот  двойка постепенно отучала
Так что

ХЗ, 90% того что доводилось видеть за этот год с 

Цитата

Доработайте, ато тормозит

это дофига модулй половина на vqmod

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, VTstudio said:

Вот наступил тот прекрасный момент, когда опенкарт из цмс превращается в в фреймверк, подключают нормальный шаблонизатор, гляди теперь в вьюхе мы не увидим обращений на БД. Но Нет, будем ставить тпл и vqmod. В целом конечно это дело каждого разработчика, но то что я вижу, так это - если человек делает на совесть да еще и с последующим обслуживанием, то он не будет создавать себе гемор, а если так что бы на от..сь и просто срубить и побежать искать ло Клиента дальше, то это как правило тема, vqmod и хренова туча модулей, ну вот на тройке добавится еще и тпл. 

любая технология это просто инструмент, а от того какой на выходе получится код зависит больше от разработчика, можно написать хороший код на tpl без обращений к базе, кучи логики внутри итд, а можно написать плохой код и на twig 
 

 

51 minutes ago, chukcha said:

кроме того, чтобы загрузить tpl, нужно .. или событие, или ломать шаблонизатор..

 

я так пробовал, 1 строчка кода и все работает:

$this->registry->get('config')->set('template_engine', 'Template');
$this->response->setOutput($this->load->view('extension/module/my_module', $data));		

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 24.12.2017 в 17:46, sv2109 сказал:

я так пробовал, 1 строчка кода и все работает:

 

А что будет дальше, после изменения глобального конфига?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.