Carlos Gonçalves: Bem Vindo à Web 2.0! Este blog é direccionado a todos os níveis de web designers e programadores. Todos os assuntos serão discutidos, incluindo CSS, Javascript, Java, PHP, entre outros!

[PHP] Sintaxe Alternativa

Se já tiveste a agradável experiência de aprofundar o código do WordPress, provavelmente já viste uma sintaxe alternativa nas estruturas de controlo. Um exemplo disso é o seguinte código:

$codigo = 5;
if($codigo == 2):
	echo 'O processo foi bem sucedido.';
else:
	echo 'O processo falhou.';
endif;

O mesmo funciona com um ciclo while, for, foreach e loops, bem como a instrução switch:

$conteudo = array('PHP','jQuery','AJAX');
foreach($conteudo as $conteudo ):
	echo $conteudo;
endforeach;

Devo utilizar esta sintaxe? Se sim quando?

Se deves ou não utilizar esta sintaxe é contigo – depende do teu estilo de programação e o que consideras (ou não) ser legível. Pessoalmente, vejo esta sintaxe a ser muitas vezes utilizada quando são usadas muitas estruturas de controlo dentro do mesmo bloco de código, a sintaxe “end____” torna muito mais legível a estrutura que estás a terminar (do que simplesmente usar “}”). Também costumo ver esta sintaxe utilizada com mais frequência do que a sintaxe tradicional quando o código PHP está embutido no código HTML.

Qual a tua opinião?

Gostaria de saber a tua opinião sobre esta sintaxe.
Comecei a utilizar esta sintaxe cada vez mais… pois, além de ser mais legível, faz mais sentido, pelo menos para mim.
Mas já houve quem me dissesse que não gosta dela, outros que torna o código menos legível.
E tu, o que achas?


Muito FracoFracoRazoávelBomMuito Bom (2 votos, média: 5,00 num total de 5)
Loading ... Loading ...

[Questionário 2] – Questões

Há quase um mês atrás, criei o primeiro questionário onde poderia colocar-me as vossas questões.

Questionário

Questionário


Hoje, quase um mês depois, volto a fazer o mesmo, porque tenho novamente recebido alguns e-mails com perguntas sobre temas desde MooTools, PHP, CSS, entre outros.

Por essa razão, decidi optar por criar estes “Questionários”, sendo este o segundo.
Vamos ver que tipo de questões são colocadas desta vez, e não se esqueçam de ler o questionário anterior.
Coloquem as questões num comentário.
Irei compilar as melhores, ou as que achar mais interessante e irei responde-las num post, sensivelmente dentro de uma semana.


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 4,00 num total de 5)
Loading ... Loading ...

[PHP] Funções de Cache e Obter Conteúdo

Uma forma de aumentar a rapidez do teu site de forma exponencial é com recurso a cache de pedidos remotos e internos.
Porquê fazer a mesma solicitação à Base de Dado a cada vez que a página é carregada se a mesma raramente muda?
Criei uma função que verifica se há novos conteúdos na cache e retorna o conteúdo de uma fonte se novos conteúdos não estiverem disponíveis.

A Função PHP

/* obtem o conteudo de um ficheiro se ele existir, caso contrário coloca em cache */
function obter_conteudo($ficheiro,$link,$horas = 24,$fn = '',$fn_args = '')
{
	//variáveis
	$hora_actual = time(); $hora_expira = $horas * 60 * 60; $hora_ficheiro = filemtime($ficheiro);
	//decisões
	if(file_exists($ficheiro) && ($hora_actual - $hora_expira < $hora_ficheiro)) {
		//echo 'retorna a cache do ficheiro';
		return file_get_contents($ficheiro);
	}
	else
	{
		$conteudo = obter_link($link);
		if($fn){ $conteudo = $fn($conteudo,$fn_args); }
		$conteudo.= '<!-- cached:  '.time().'-->';
		file_put_contents($ficheiro,$conteudo);
		//echo 'retorna o novo conteudo de '.$link.':: '.$conteudo;
		return $conteudo;
	}
}

/* obtem o conteudo do link com recurso a curl */
function obter_link($link)
{
	$ch = curl_init();
	curl_setopt($ch,CURLOPT_URL,$link);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
	$conteudo = curl_exec($ch);
	curl_close($ch);
	return $conteudo;
}

A minha função obter_conteudo aceita quatro argumentos:

  1. O ficheiro para obter o conteúdo. Se esse ficheiro não existir, o ficheiro é criado e com esse mesmo conteúdo.
  2. O LINK do qual vamos obter o conteúdo se o conteúdo que estiver em cache não for recente.
  3. O nome da função para passar o conteúdo recente.
  4. Os argumentos a passar para o terceiro argumento da função

A função é, naturalmente, muito “primitiva”.
Porém eu gosto da minha função porque ela tanto trata da recuperação e do armazenamento em cache para que eu não precise de repetir o código sempre que queira colocar conteúdo em cache.

Existem muitas (e mais avançadas) classes em PHP para manipulação de cache disponíveis, mas a minha função acima abrange a maior parte das minhas necessidades.

Espero que também te ajude!


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...