Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manoaj

Artigo falando sobre php e templates

Recommended Posts

Pessoal tava lendo alguma coisas sobre os sistemas feitos com templates e achei este artigo falando sobre o assunto em um blog rafaeldx7, queria saber qual opnião de vocês sobre o assunto contido no artigo e se concordam com o mesmo.

 

 

PHP Puro e Limpo!

Gostaria imensamente de saber o motivo que leva a todos os livros de PHP a implementar exemplos totalmente horrorosos e mal estruturados.

 

Eu já fui numa livraria especializada em livros técnicos com o objetivo exclusivo de procurar um livro bom em PHP. Um livro que mostrasse exemplos e abrisse a mente do futuro programador não só pra nova linguagem, mas também pra uma boa prática de programação. Não encontrei nenhum. Pilhas de livros, do básico ao avançado, do mais barato ao mais caro, nacionais, importados, traduzidos. Olhei vários. Não encontrei nenhum que de fato faça com que o estudante tenha de cara uma boa abordagem de maneira simples. Se você conhecer algum, me indique. Do que estou falando? Disto:

 

<?php
session_start();

if (!empty($POST)) {
  $SESSION[var_export($POST["note], constant constant_language constant_language_php">true)] = $POST["note"];

  if ($POST["Enviar] keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_php">== "Limpar Notas)
    variable variable_other variable_other_global variable_other_global_safer variable_other_global_safer_php">$SESSION = array();
}

echo "
";
echo "
Lista de Notas
";
echo "
Exemplo de PHP bem feito
";
echo "
Exemplo de como fazer um site em php bem feito sem usar uma linguagem de template
";
echo "

Esse site é apenas um exemplo. Não tenho o compromisso aqui de fazer um html perfeito ou";
echo "uma programação impecável. Quero apenas demonstrar que dá pra fazer PHP direito sem apelação!
";
echo "";
echo "<form method="post" action="index.php">";
echo "Digite uma nota:";
echo "<input type="text" name="note" />";
echo "<input type="submit" name="Enviar" value="Enviar" />";
echo "<input type="submit" name="Enviar" value="Limpar Notas" />";
echo "";
echo "";

echo "
Notas gravadas
";
echo "<hr width="40%" />";

echo "

    ";

    if (!empty($SESSION)) {
    foreach ($SESSION as $note) {
    echo "
     keyword keyword_operator keyword_operator_string keyword_operator_string_php">. $note . "
    ";
    }
    }

    echo "

";

echo "<hr width="40%" />";
echo "<a href="http://dx7lab.com">Dx7lab";
echo "
";
?>
Todos concordam que isso é horrível, péssimo e não serve pra fazer nenhum sistema decente, certo? Código PHP misturado com HTML que chega a ser ilegível. LIXO! Livros de mais de 300 páginas com exemplos assim, desse tipo. É quase inacreditável. Vamos imaginar um bom conhecedor de HTML querendo aprender a programar. Ele olharia isso e desistiria imediatamente de PHP. Coisas assim nos levam a concluir que PHP não presta pra escrever código organizado e limpo. Mas isso não é verdade!

 

 

Alguns livros de um nível mais intermediário chegam a falar nas famosas linguagens de template. Smarty, [TinyButStrong, entre outras. Os mais avançados chegam a criar uma estrutura complexa pra encapsular o HTML e criar uma view mais limpa. Tudo bem, mas isso não é necessário. Os autores que escrevem pra iniciantes podem argumentar dizendo que não querem inserir ainda mais complexidade no início do aprendizado. Concordo! Mas não precisa fazer nem uma coisa nem outra. Sinceramente? Eu não gosto dessas linguagens de template. Já usei algumas mas elas não fazem nada que não dê pra fazer simplesmente usando a linguagem. Dá pra fazer Código em PHP PURO e LIMPO! Por mais inédito que isso possa parecer. Usando coisas básicas da linguagem, que geralmente os livros abordam logo no início.

 

 

Abaixo está um exemplo que faz a mesma coisa que o código acima, mas de uma maneira limpa. Teremos 2 arquivos, um para o template que será chamado template.tpl e outro para o código PHP puro chamado index.php.

 

 

Vejamos o template.tpl:

<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> 
<html xmlns="http://www.w3.org/1999/xhtml entity entity_other entity_other_attribute-name entity_other_attribute-name_html">xml:lang="en entity entity_other entity_other_attribute-name entity_other_attribute-name_html">lang="en">
<head>
<meta http-equiv="Content-Type entity entity_other entity_other_attribute-name entity_other_attribute-name_html">content="text/html; charset=UTF-8" />
<title>Exemplo de PHP bem feito</title>
</head>

<body>
  <center>
    <h1>Lista de Notas</h1>
    <h2>Exemplo de PHP bem feito</h2>
    <h3>Exemplo de como fazer um site em php bem feito sem usar uma linguagem de template</h3>
    <p>Esse site é apenas um exemplo. Não tenho o compromisso aqui de fazer um html perfeito ou
       uma programação impecável. Quero apenas demonstrar que dá pra fazer PHP direito sem apelação!</p>

    <hr />

    <form method="post entity entity_other entity_other_attribute-name entity_other_attribute-name_html">action="index.php">
      Digite uma nota:
      <input type="text entity entity_other entity_other_attribute-name entity_other_attribute-name_html">name="note" />
      <input type="submit entity entity_other entity_other_attribute-name entity_other_attribute-name_html">name="Enviar entity entity_other entity_other_attribute-name entity_other_attribute-name_html">value="Enviar" />
      <input type="submit entity entity_other entity_other_attribute-name entity_other_attribute-name_html">name="Enviar entity entity_other entity_other_attribute-name entity_other_attribute-name_html">value="Limpar Notas" />
    </form>

    <hr />

    <h4>Notas gravadas</h4>
    <hr width="40%" />

    <ul>
      <? if (!empty($SESSION)): ?>
        <? foreach ($SESSION as $note): ?>
          <li><?= $note ?></li>
        <? endforeach ?>
      <? endif ?>
    </ul>

    <hr width="40%" />
    <small><a href="http://dx7lab.com">Dx7lab</a></small>
  </center>

</body>
</html>
Aqui temos um XHTML válido que um designer pode entender com muita facilidade. Diríamos pra ele: Senhor designer, temos aqui um códido HTML com algum PHP que deixará a página dinâmica. Tudo que estiver entre as tags <? ?> ou <?= ?> é PHP. Qualquer dúvida é só perguntar.. Por mais incrível que isso possa parecer, um designer consegue entender isso e continuar o seu trabalho naturalmente.

 

 

Alguns podem argumentar que mesmo nesse exemplo tem PHP misturado com HTML. Vamos ser pragmáticos! Não tem nem como comparar os exemplos nesse nível. Antes tinhamos PHPcuspindo tags HTML com echo e tudo misturado, fazendo uma verdadeira salada. Agora temos HTML com algumas tags PHP embutidas, assim como teríamos em uma linguagem de templates. Qual a diferença em usar <? if ($a $ B): ?> e { if $a $b } do Smarty? É basicamente a mesma coisa sem introduzir complexidade com uma nova ferramenta. O problema não é ter HTML com PHP embutido. O problema é ter PHPcuspindo HTML! Não temos esse problema no template.tpl. Todas as tags PHP são atômicas: fazem apenas uma coisa e são independentes. Isso é o importante. Em um projeto que precisa usar MVC, esse é um bom exemplo de View simples com PHP Puro.

 

 

A outra parte seria o PHP propriamente dito.

<?php
session_start();

if (!empty($POST)) {
  $SESSION[var_export($POST["note], constant constant_language constant_language_php">true)] = $POST["note"];

  if ($POST["Enviar] keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_php">== "Limpar Notas)
    variable variable_other variable_other_global variable_other_global_safer variable_other_global_safer_php">$SESSION = array();
}

require_once "./template.tplterminatorexpression punctuationterminatorexpressionphp">;
section punctuationsectionembedded punctuationsectionembeddedend punctuationsectionembeddedendphp">php">?>
Temos aqui um PHP bem simples de fácil entendimento que, no final do arquivo, inclui o template.tpl nossa View e faz tudo funcionar de forma organizada.

 

 

Não é difícil. O problema é pensar fora da caixa. Como todo mundo aprende assim, programa assim e pronto, sem questionamentos. Pra melhorar criaram ferramentas de templates e quem não usá-las será condenado! Besteira! As ferramentas de templates têm o seu valor e a sua aplicação, todavia não estamos amarrados a elas pra poder escrever código limpo. Isso é o que eu queria mostrar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria imensamente de saber o motivo que leva a todos os livros de PHP a implementar exemplos totalmente horrorosos e mal estruturados.

 

- livros/artigos/video aulas antigas.....

- Disseminação de pessimas praticas....... 'bem pq funcionam e eu ja uso isso faz uns 5 anos nunca deu problema.'

- falta de interesse do 'estudante' em se aprofundar no assunto. qual é o motivo de ver tanto mysql_query perdido por ai?

 

se vc se instui com conteudo antigo/ruim o codigo produzido tbm sera ruim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não me instrui com o conteudo como disse queria sabera opinião de vcs quanto a esse pensamento pq o conteudo apresentado é antigo mas se vc for ver tem muita gente hoje que ainda pensa dessa maneira eu to começando na programação orientada e nos templates e sem duvida economiza muito meu tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente é triste. EU, particularmente nunca encontrei um livro de PHP com exemplos enxutos. Sua grande maioria abordam códigos antigos e de péssimo entendimento, creio que, essa deficiência provém do velho Ctrl+C / Ctrl+V

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu to lendo o livro de php orientação a objetos mas é complicado pq os exemplos dados não são muito claros principalmente depois que chega na parte de OO, e como não existe um curso desse por aqui sou obrigado a ler os livros de programação que encontro .

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkkk Você não tem "SAÍDA" maguei kkk blz cara vlw dúvidas tenho d+ mas sempre quebro a cabeça te o ultimo minuto pra tentar entender essas coisas senão não aprendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É verdade, mais nunca é de mais perguntar, também se ganha experiência perguntando, é conhecimento. Já passei por isso que você está passando. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow Shini vlw vou da uma olhada nele e quem sabe ate troco pelo que to lendo por enquanto :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois disso, um livro (não é sobre PHP, os exemplos são em Java) de utilidade para QUALQUER dev seja PHP, Ruby, até JavaScript, chamado Clean Code, do Uncle Bob. É o melhor livro sobre como criar um bom código.

 

http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

 

O "melhor" livro consiste em "atender" com perfeição a necessidade do leitor/aprendiz. Logo, existém vários livros de como produzir um código puro e limpo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim eu acho que não adianta conhecer varias linguagens de programação sem primeiro se especializar em uma e dominar ela completamente. pra mim um livro de programação tem que focar em um conteudo especifico se seu real objetivo for ensinar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim eu acho que não adianta conhecer varias linguagens de programação sem primeiro se especializar em uma e dominar ela completamente. pra mim um livro de programação tem que focar em um conteudo especifico se seu real objetivo for ensinar.

 

 

Concordo plenamente !.. + 1 :yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.