prhost / new-opencart

Discussões sobre mudanças e melhorias na plataforma Opencart
6 stars 0 forks source link

Template parser e funções especialmente para opencart (twig) #4

Open prhost opened 8 years ago

prhost commented 8 years ago

Comentem suas opniões sobre usar ou não, na minha opnião template parser é uma das coisas que mais ajudam no desenvolvimento do front-end, o opencart atualmente não suporta template parser, a extensão .tpl que eles usam nos arquivos é apenas nomeclatura, mas o loader das views no final das contas da um require na view.tpl . Acho essencial o uso de um deles como o twig que é um dos componentes mantido pela Symfony, é muito facil de usar. Eu copiei e modifiquei algumas funções feitas em twig para opencart deste repositorio https://github.com/vanderson139/opencart-twig é muito útil, o tema fica mais limpo e facil de desenvolver, sem precisar ficar toda hora setando language, assets, links no $data da controller e passando para a view, assim a controller também fica mais limpa e transmite apenas os dados que importa.

oc - themes

vilsongabriel commented 8 years ago

Podemos também integrar já o gulp para automatizar várias tarefas, como compilar SASS e minificar o JavaScript, e usar também o BrowserSync, o JointsWP e o Sage do WordPress possuem diversos recursos bacanas.

Outra coisa que sinto falta é um arquivo no estilo do functions.php do WordPress.

prhost commented 8 years ago

@vilsongabriel Sim ótima idéia, não entendo muito de front-end, mas o gulp e pré compiladores são ótimos, outra coisa legal que acho que vc conhece é os gerenciadores de pacotes como bower e o npm. Já sobre o functions.php do wp, ele foge um pouco do padrão MVC, mas é porque o opencart atual não usa namespace, quando implementarmos isso no autoload, você vai ver como é fácil criar funções (métodos) e usa-los em qualquer lugar (:

vilsongabriel commented 8 years ago

Sim, sim, esses temas que comentei usam o Bower, não tinha utilizado ainda o composer e tinha achado que faziam as mesmas funções por isso não comentei, mas agora já dei um esclarecida.

Quanto ao function, talvez então um controller pro tema, igual alguns temas por ai meio que já fazem.

prhost commented 8 years ago

@vilsongabriel Nossa vc teve uma otima ideia, um controller para gerenciar o tema, genial. Já ate adotei isso como algo a ser desenvolvido kkk, se puder crie uma issue com essa ideia e vamos amadurecendo ela (:

FelipoAntonoff commented 8 years ago

Sou a favor de usar, todo projeto que faço costumo usar o Twig, mas aceito usar qualquer outro que for bom, uso ele por ser um dos mais populares, bem documentado e bom desempenho.

Sobre o Controller para o tema, não seria o próprio controller do Catalog?, que no OC seria o mesmo que da View. @vilsongabriel Esse functions.php do WP seria para qual uso? Acho a ideia de Gulp muito boa, uso muito as bibliotecas do Node.js para otimizar certas tarefas, essa seria uma melhoria mais focada em desenvolvedores.

prhost commented 8 years ago

A ideia da controller junto com o tema seria mais uma class unica carregada junto com o tema, nela voce pode criar metodos, e usar no seu tema, sem precisar modificar ou sobrepor uma controller existente do core com uma extensao. Bem que uma funcao em twig que chame qualquer metodo ja resolveria isso (:

victorhramos commented 8 years ago

Acompanhei junto ao Vanderson a implementação do Twig. Dei a sugestão de também aproveitar o render nativo do opencart, assim podendo usar algumas facilidades do twig sem perder a compatibilidade com o default. Porém se perde muitos recursos interessantes do twig também, como includes, extends e etc... A parte boa de usar o Twig integralmente é a facil modularização de blocos pra receber os módulos e de fato uma padrozinação de layouts e até facilitando a implementação de frameworks ou theme engines. Como o uso do Composer já se fez necessário, a implementação dele é bem simples na engine do Opencart.

[index.php] image

[engine/loader.php] image

prhost commented 8 years ago

@victorwbuzz A idéia que você deu sobre suportar os dois tipos é muito bom, eu uso ele mas dentro do metodo view, e la ele identifica se é twig ou não. Meu voto vai ser sempre twig (+1)