Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago - Bulfaitelo

Estrutura da pagina em PHP + HTML

Recommended Posts

Olá, pessoal,

Eu ainda estou desenvolvendo meu sisteminha, após ter “terminado” a parte visual do sistema dei inicio a integração do PHP com o HTML, então, vou mostrar abaixo e queria saber se a forma que estou estruturando é a melhor e mais optimizada possível.

<!DOCTYPE html>
<html lang="en">
<head>
<?php
	// faz o require do arquivo contendo os cabesalhos para cada pagina, conforme o necessário.
	require("arquivo_header.php");
	// entra na sessão da pagina 
	if($secao == "valor"){
		// recebe valor da pagina 
		if($acao == 'valor'){
			// caso exista ação ele realiza.
		}
	}
	elseif ($seao == "valor2") {
		if($acao == "valor_jujuba"){
			// caso exista aqui também ele entra na sessão.
		}
	}
?>
</head>
<body>
<?php
	// faz o require do arquivo contendo o html interno da pagina  para cada pagina, conforme o necessário.
	require("arquivo_body.php");
	// entra na sessão da pagina 
	if($secao == "valor"){
		// recebe valor da pagina 
		if($acao == 'valor'){
			// caso exista ação ele realiza.
		}
	}
	elseif ($seao == "valor2") {
		if($acao == "valor_jujuba"){
			// caso exista aqui também ele entra na acao.
		}
	}
?>

	
</body>
</html>

Desde já agradeço a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu estruturo como você, mas vão dizer que é errado.

 

Dizem que o ideal é utilizar templates, separando a programação do restante de código HTML, sem misturar nunca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu estruturo como você, mas vão dizer que é errado.

 

Dizem que o ideal é utilizar templates, separando a programação do restante de código HTML, sem misturar nunca.

 

Entendi,

Eu pretendo "modular" meu código deixando as funções separadas,

Por exemplo: A classe Usuário a qual vai manipular os dados para usuários vai ter seu código separado e também vai existir o módulo para receber esses dados trabalhar e assim retornar.

Na minha ideia:

1) dados retornando um vetor;

2) função recebendo vetores e montando a estrutura com base nela.

Assim eu já garanto que minha aplicação vai ser um pouco mais fácil de realizar uma futura adaptação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise sobre Padrões de Projeto .

 

Eu dei uma pesquisada antes, o que mais achei foi o Abstract Factory, mais todos os exemplo que vejo só estão relacionados a suas classes e operações nada relacionado a essa integração que mencionei. a minha duvida em questão é desempenho. pois não é muita vantagem utilizar um Patterns o qual só vai me mais mais linhas para digitar sem me retornar vantagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

queria saber se a forma que estou estruturando é a melhor e mais optimizada possível.

hum.. não é a "melhor e mais otimizada possível" não.

1. Veja alguns problemas até de manutenção:

<!DOCTYPE html>
<html lang="en">
<head>
<?php
porque você não jogou esse DOCTYPE dentro do header.php também?

assim se você por exemplo quiser mudar o lang="en" para pt-BR não precisa sair alterando em diversos arquivos.

 

E isso se repete em outros trechos como o fechamento do </head>..

 

2. Você notou também a duplicação dos IFs, certo ?

Você tem uma cadeia de IFs no header e a mesma lógica no footer.

Isso por si só, já te indica que tem algo errado: você ter que dar manutenção em dois lugares de uma coisa igual (código duplicado).

Nesse teu caso, o "padrão" que você pode utilizar é um Controller, e assim deixar de repetir código.

Vantagens: melhor manutenção, não ter código duplicado, melhor legibilidade (parar de misturar camadas)

Então o controller pode processar e entender o que é para ser feito em um único lugar, e a view só utiliza esse resultado e mostra. (views devem ser burras e não entupidas de lógica)

 

3. Se os teus ifs são apenas da forma que você mostrou, em vez de encaixar, você pode deixar mais legível assim:

if($secao == "valor" && $acao == 'valor'){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente meu exemplo estava bem ruim, eu parei e pensei um pouco melhor, decidir mudar um pouco isso, e fazer cada módulo controlando tudo, por exemplo:

ira existir o index. o qual vai fazer a requisição da home por exemplo, nela vão existir as variáveis de cabeçalho body, footer, que será somente será montado e exibido na tela nesses módulos, por trás deles irá existir a classe de manipulação dos dados. um exemplo bem básico:

<!DOCTYPE html>
<html lang="pt-Br">
<head>
<?php	
	if($secao == 'home'){
		require('html_home.php');
	}
	elseif ($sevao == 'contato') {
		require('html_contato.php');
	}
	echo "$html_header";
?>	
</head>
<body>
<?php	
	echo "$html_body";
	echo "$html_body_footer";
	echo "$html_footer_footer_script";
?>	
</body>
</html>


<!-- html_home.php -->
<?php

	require("Home.class.php")

	$html_header = "<style> backgruns:silver;</style>";
	if($acao == "hue"){
		$html_body = " <h2>HUE HUE</h2>";
	}
	elseif($acao != "hue"){
		$html_body = " <h2> NÃO HUE</h2>";		
	}
	$html_body_footer = " <h4>Footer</h4>";
	$html_footer_footer_script = "<script> alert(\"hue\"); </script>";
?>
Ps. muito obrigado pela explicação,

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.