Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago - Bulfaitelo

Em relação a estrutura de um código PHP

Recommended Posts

Boa tarde Galera, eu estou para tomar vergonha na cara para colar em pratica um projeto que quero desenvolver, então pelo menos quero ao menos começar corretamente. a minha duvida e relativamente simples.

 

Vou mostrar dois Exemplos:

 

<?php

$texto = "Hola mundo";

?>

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Exemplo:</title>
</head>
<body>
	<h1><?php echo $teste; ?> </h1>
</body>
</html>

 

E o segundo Exemplo :

 

<?php

$texto = "Hola mundo";

$html ="

<!doctype html>
<html lang='en'>
<head>
	<meta charset='UTF-8'>
	<title>Exemplo:</title>
</head>
<body>
	<h1> $teste </h1>
</body>
</html>
";

echo $html;
?>

Como podem ver a diferença é que eu em um exemplo vou imprimindo as variáveis de acordo com o decorrer do código, e o outro exemplo eu salvo os valores dentro de uma variável e imprimo essa variável. a minha duvida é a seguinte, Existe alguma diferença entre eles ? e relação desempenho estabilidade ou qualquer coisa ?

Desde já agradeço a atenção e Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

da segunda forma vc vai ficar louco...

 

quero ver fazer isso em uma página com umas 5000 linhas de código...

Compartilhar este post


Link para o post
Compartilhar em outros sites

da segunda forma vc vai ficar louco...

 

quero ver fazer isso em uma página com umas 5000 linhas de código...

 

 

Já fiz ou melhor ainda faço já que aqui no estágio foi quase tudo desenvolvido dessa forma.

 

O que mais me preocupa é em relação a desempenho muda algo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

da segunda forma vc vai ficar louco...

 

quero ver fazer isso em uma página com umas 5000 linhas de código...

 

Na realidade eu prefiro a segunda forma do que o "emaranhado de <?php echo ?>" na página.

 

E Hoje em dia é extremamente inviável criar rotinas de 5000 linhas, ainda mais com as 5000 patterns pra você fazer tudo separadinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP = HTML Pre-Processor

 

Isso significa que você deve adicionar PHP ao HTML e não o contrário. Essa segunda forma é um CRIME (do qual eu já fui culpado).

Na realidade eu prefiro a segunda forma do que o "emaranhado de <?php echo ?>" na página.

A partir da versão 5.4, você pode usar as shorts tags [inline]<?= $var ?>[/inline] para exibir um valor.

 

Edit: tome cuidado com linhas em branco. O doctype da página DEVE vir na primeira linha de saída de dados. Veja:

<?php

$texto = "Hola mundo";

?>
****** Remover esta linha *****
<!doctype html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu utilizo da primeira forma...

 

Claro que não coloco <?php antes do <!DOCTYPE> né... ;)

 

<!DOCTYPE> só tem utilidade a nível de navegador. ou estou enganado?

 

 

PHP = HTML Pre-Processor

 

Isso significa que você deve adicionar PHP ao HTML e não o contrário. Essa segunda forma é um CRIME (do qual eu já fui culpado).

 

A partir da versão 5.4, você pode usar as shorts tags [inline]<?= $var ?>[/inline] para exibir um valor.

 

Edit: tome cuidado com linhas em branco. O doctype da página DEVE vir na primeira linha de saída de dados. Veja:

<?php

$texto = "Hola mundo";

?>
****** Remover esta linha *****
<!doctype html>

 

Eu pensava que php era :Hypertext Preprocessor, mais deve ser a mesma coisa.

 

O confuso que até agora ainda não chegamos a conclusão de qual seria o melhor ou correto.

 

Qual problema que você teve ao cometer o crime ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, não sabia dessa da shorts tags

 

isso é muito prático... mas é correto isso?

 

 

Na realidade eu prefiro a segunda forma do que o "emaranhado de <?php echo ?>" na página.

 

E Hoje em dia é extremamente inviável criar rotinas de 5000 linhas, ainda mais com as 5000 patterns pra você fazer tudo separadinho.

 

pode até ser difícil, mas acontece. mesmo páginas menores, ficar misturando o php com o html vira um inferno, principalmente na hora das aspas, barras e tudo mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensava que php era :Hypertext Preprocessor, mais deve ser a mesma coisa.

HTML = HyperText Markup Language, mas está correto, o oficial é Hypertext Preprocessor.

isso é muito prático... mas é correto isso?

Antes do PHP 5.4, a diretiva [inline]short_open_tag[/inline] deveria ser habilitada para permitir isso. O problema é que existem 2 tipos de short tags:
<? //equivalente ao <?php
<?= //equivalente ao <?php echo
O problema com a primeira forma é que isso pode ser confundido com o header de um XML, logo, NUNCA use.

 

A segunda forma não tem nenhum problema e desde o PHP 5.4 está SEMPRE habilitada, independentemente do valor de [inline]short_open_tag[/inline].

pode até ser difícil, mas acontece. mesmo páginas menores, ficar misturando o php com o html vira um inferno, principalmente na hora das aspas, barras e tudo mais.

Se te incomoda tanto, hora de usar alguma template engine.

 

Qual problema que você teve ao cometer o crime ?

Só o fato de ter que escapar todas as aspas dentro da string já condenam.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, não sabia dessa da shorts tags

 

isso é muito prático... mas é correto isso?

 

 

 

pode até ser difícil, mas acontece. mesmo páginas menores, ficar misturando o php com o html vira um inferno, principalmente na hora das aspas, barras e tudo mais.

 

Quando possui variáveis eu utilizo "{$mamae}" como templates utilizam

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensava que php era :Hypertext Preprocessor, mais deve ser a mesma coisa.

HTML = HyperText Markup Language

 

cara, não sabia dessa da shorts tags

 

isso é muito prático... mas é correto isso?

Correto é. Mas vai de cada projeto e desenvolvedor. Isso é algo que você, junto com sua equipe de desenvolvimento, deve definir como será. Uma vez definido, não deve ser alterado durante o projeto.

 

Isso entra em conjunto, com todos os outros detalhes, que devem ser discutidos para com o projeto, tais como: nomeclaturas (CamelCase, underscore case), caracteres por linha (80, 100, 120, etc), prefixos/sufixos (variáveis, sgbd, serviços).

 

A saída de HTML também pode ser feita por algum template parser, vai de cada um. Eu, particulamermente, prefiro separar as camadas de tratamento de objeto (tratamento para a view) e estruturação. Não que seja errado não fazê-lo, mas é uma padronização que temos aqui, aonde eu trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP nasceu para ser embutido no HTML.

 

A partir da versão 5.4, você pode usar as shorts tags

 

No 5.4 não existe a necessidade de habilitar o short_open tags nas configs do PHP? E aquele papo que sempre ouvi para usar sempre o "<?php echo ""; ?> porque um dia iriam remover as short_tags? :(

 

-- EDIT

 

O @Henrique Barcelos editou o post dele #4 explicando isso, no mesmo instante em que postei... rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

O uso de short open tags continua sendo desencorajado, por este motivo:

PHP also allows for short open tags <? and ?> (which are discouraged because they are only available if enabled with short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).

Entretanto, a antiga forma de impressão (<?= $variavel ?>), de short open tag, não é mais apenas disponível quando short open tags estiver ativo, agora é padrão do PHP. Logo, somente o uso da "impressão de forma compacta" não é mais desencorajado. O uso de short open tags continua sendo desaconselhado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta questão da short_tags serve só para tirar o padrão da codificação. Fica uma salada de código com tags <?php ?> , <? ?>, <% %> e <script language="php">.

 

Quando o manual diz que é para se dar preferência para adoção da tag <?php ?>, é para evitar conflito de tag com outras linguagens como o jsp por exemplo <%%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha humilde opinião, a melhor prática seria separar o php do html em arquivos distintos e usar o ajax para fazer a comunicação entre eles html (cliente) e php (servidor). Isso seria algo seguindo uma estrutura MVC.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com @Raphael Monte,

"Dividir para conquistar" é sempre a melhor opção, isso ajuda na legibilidade e organização do código. Em todo caso eu usaria um framework com o padrão MVC pois como um amigo já citou aqui, existem vários padrões de projeto que podem ser adotados para promover esta separação. Eu humildemente recomendo, e sinceramente vejo a segunda forma como um POG criminoso. rsrs

Permitido, e sim já cometi este crime e paguei por ele quando precisei fazer manutenção no código alguns meses depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha humilde opinião, a melhor prática seria separar o php do html em arquivos distintos e usar o ajax para fazer a comunicação entre eles html (cliente) e php (servidor). Isso seria algo seguindo uma estrutura MVC.

E como você vai guardar os templates HTML no cliente? Em algum momento, eles terão que vir do servidor.

 

A solução seria, no entanto, retornar apenas dados a partir do PHP (JSON ou XML) e deixar o trabalho de renderização todo para o cliente. Entretanto, isso gera um certo overhead na hora de obter os templates: ou você embute tudo na página, aumentando o tamanho da mesma e, por conseguinte, o tempo de carga, ou você se obriga a fazer uma nova requisição e obter o template correto para renderizar.

 

Hoje em dia existem até frameworks que auxiliam essa arquitetura, como o Backbone.js e o Angular.js

Compartilhar este post


Link para o post
Compartilhar em outros sites

E soa bem estranho.

 

Pq eu vou mandar o template e os dados separados pro cliente fazer o parsing, se posso já mandar a resposta pronta?

 

Claro que existem casos onde isso é vantajoso, como, por exemplo, num site muito dinâmico que requer muita utilização do XHR (vulgo Ajax), mas na maioria das vezes, é mais fácil e mais performático enviar a resposta prontinha pra ser exibida.

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.