Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu queria ter uma base de como implementar na minha view uma função na qual eu passe os dados do php com outras tags pro html, parecido com o Smarty, incluindo o foreach para caso eu necessite passar vários dados de uma array em uma única variável...
Alguém pode me dá uma ideia de como fazer?
Não quero usar Smarty por que meio que quero aprender a desenvolver meus próprios frameworks, se eu usar Smarty meio que irei me sentir "limitado" ou "dependente".
^^
Obrigado Enrico.
Irei da uma olhada sim, abraços. c:
Porque não escreve seus "templates" em .phtml usando o próprio PHP pra manipular ?
Porque não escreve seus "templates" em .phtml usando o próprio PHP pra manipular ?
Já faço isso, mas se for olhar bem, uma das metas do MVC é separar php do html correto?
Mesmo que eu use apenas o básico como echo, print ou foreach, eu estaria usando o php dentro do html. rs
Ou se eu fizer isso não há problema algum?
Não há problema. f***-se o MVC, isso não importa, o que importa é que o código esteja bem organizado e legível. Eu prefiro mil vezes uma template engine por facilitar o trabalho do front, além de ser mais bonito visualmente.
>
Já faço isso, mas se for olhar bem, uma das metas do MVC é separar php do html correto?
Mesmo que eu use apenas o básico como echo, print ou foreach, eu estaria usando o php dentro do html. rs
Ou se eu fizer isso não há problema algum?
Nah, isso ai não importa, PHP foi feito pra ficar dentro de HTML ou vice-versa, sei que esses dois caras estão ali.
E a meta do MVC não é mudar isso, é apenas a separação de camadas, true ?
Abraços!
Separar camadas não significa separar o PHP do HTML.As camadas que o MVC separa tem muito mais a ver com responsabilidade do que com conteúdo.
Macarrão por macarrão, deixa o espaguete de HTML com PHP, pelo menos quem come sabe a marca só de olhar.
Por mais simples de usar que um sistema de templates seja, nem sempre que mexer com o frontend vai saber que aquilo é um framework de template, que possui uma sintaxe própria e etc.
Concordo, mas fica muito mais claro. E existem template engines (Mustache por exemplo) que é uma template engine de JS adaptada para PHP.
Mas no MVC, o que eu disse é correto?
Nas views posso usar o php apenas para imprimir dados como foreach para extrair as arrays e echo e validações e envio de dados para o Model faço no controller?
Metade do que você disse está certo.
Nos templates você vai iterar os arrays de dados vindos do banco por intermédio da Model através do Controller e, invariavelmente, vai ecoar alguma coisa.
Já quanto a verificação, uns dizem que toda a validação deve ser feita no Controller, outros dizem que na Model, eu já acho que tem de haver um meio termo. Pra mim o Controller valida os dados e a Model o que os dados representam.
Por exemplo, uma aplicação de que exige que o CEP seja informado a fim de preencher dados na tela seguinte. O Controller verificaria se o CEP foi preenchido e a "Model" (entre aspas porque não é bem uma Model), verificaria se o CEP é válido (existe uma ER pra isso) e em caso positivo, efetuaria a consulta.
>
Metade do que você disse está certo.
Nos templates você vai iterar os arrays de dados vindos do banco por intermédio da Model através do Controller e, invariavelmente, vai ecoar alguma coisa.
Já quanto a verificação, uns dizem que toda a validação deve ser feita no Controller, outros dizem que na Model, eu já acho que tem de haver um meio termo. Pra mim o Controller valida os dados e a Model o que os dados representam.
Por exemplo, uma aplicação de que exige que o CEP seja informado a fim de preencher dados na tela seguinte. O Controller verificaria se o CEP foi preenchido e a "Model" (entre aspas porque não é bem uma Model), verificaria se o CEP é válido (existe uma ER pra isso) e em caso positivo, efetuaria a consulta.
Entendi... Então é o que eu realmente estou fazendo, mas tirou uma grande dúvida da minha cabeça cara. rs
Obrigado. ;)
Você pode usar o PHP para isso. Melhor que o Smarty é o Twig. Uma template engine é algo complexo, você pode começar a ter uma ideia lendo o código do Twig aqui: https://github.com/fabpot/Twig