Categoria: "PHP"
PSR PHP. O que vem a ser isso?
As PSRs (PHP Standards Recommendations) são recomendações de especificações para desenvolvimento de componentes/bibliotecas e interfaces PHP.
Estas especificações são elaboradas pelo FIG (Framework Interpor Group) que é composto por desenvolvedores ligados aos principais projetos PHP como Zend Framework, Symfony, Doctrine, Laravel, SugarCRM, Composer, Propel, Phalcon, phpBB, dentre outros.
O objetivo principal do FIG é elaborar estas especificações para que os componentes/bibliotecas e interfaces possuam uma interoperabilidade maior entre si, criando assim um padrão para desenvolvimento PHP incluindo padrão de codificação.
É importante ressaltar que estes padrões não são imposições e sim recomendações, ou seja, um projeto não é obrigado a usa-las e caso decida por não usar ele estará perdendo a compatibilidade com componentes de outros projetos que poderiam ser reaproveitados.
Alterando páginas da loja OpenCart
Olá pessoal. Hoje vou mostrar a vocês onde alterar as páginas do sistema de comércio eletrônico OpenCart.
Você poderá alterar todas as páginas do sistema, incluindo os menus. E essa alteração é bem simples.
Para fazermos isto, basta acessar a pasta do tema e o template que deseja alterar.
Como exemplo, vamos alterar o header da página. Para isto, acessaremos catalog/view/theme/DEFAULT/template/common/header.tpl
Dentro do arquivo header.tpl (fragmento de código mostrado abaixo), fazemos as alterações que achamos necessárias, salvamos o arquivo e voilá. A página já terá a customização que pretendíamos realizar.
PHP
<header id="header"> | |
<?php if ($logo) { ?> | |
<h1 id="logo"> | |
<a href="<?php echo $home; ?>"><br /> | |
<img src="<?php echo $logo; ? />" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /><br /> | |
</a><br /> | |
</h1> | |
<?php } ?> | |
<?php echo $language; ?> | |
<?php echo $currency; ?> | |
<?php echo $cart; ?> | |
<section id="search"> | |
<div class="button-search"></div> | |
<?php if ($filter_name) { ?> | |
<input type="text" name="filter_name" value="<?php echo $filter_name; ? />" /> | |
<?php } else { ?> | |
<input type="text" name="filter_name" value="<?php echo $text_search; ? />" /> | |
<?php } ?> | |
</section> | |
<section id="welcome"> | |
<?php if (!$logged) { ?> | |
<?php echo $text_welcome; ?> | |
<?php } else { ?> | |
<?php echo $text_logged; ?> | |
<?php } ?> | |
</section> | |
<nav class="links"> | |
<a href="<?php echo $home; ?>"><?php echo $text_home; ?></a> | |
<a href="<?php echo $wishlist; ?>" id="wishlist_total"><?php echo $text_wishlist; ?></a> | |
<a href="<?php echo $account; ?>"><?php echo $text_account; ?></a> | |
<a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a> | |
</nav> | |
</header> |
* DEFAULT é o tema que nossa loja utiliza.
* .tpl é a extensão para arquivos de template (utilizados por alguns softwares, como o OpenCart)
Instalando e configurando o PhpStorm no Debian
Neste post irei demonstrar como instalar e configurar o PhpStorm 8 no Debian, mais especificamente na sua última versão, a Jessie. Mas para quem não conhece, o que vem a ser o PhpStorm? O PhpStorm é uma IDE para desenvolvimento PHP que tem como foco, auxiliar o seu usuário a construir suas páginas com mais facilidade e rapidez, além de possibilitar uma organização fácil para a sua estrutura de arquivos. É uma das melhores IDE's do mercado para se trabalhar com código, principalmente para web.
Agora que você já foi apresentado ao PhpStorm, é hora de configurarmos o nosso ambiente para instalá-lo. Abaixo os passos que devem ser seguidos:
1° Passo
O primeiro passo é verificar se você possui o Java Instalado. Pode ser o OpenJDK (na sua versão 1.7 ou superior) ou o JDK (ou Java da Oracle). Por padrão o OpenJDK já está instalado no Debian, mas caso você prefira o JDK, basta instalá-lo como é demonstrado neste post. O post se refere a versão 7 (Wheezy) do Debian, mas o procedimento é o mesmo para quem já está usando a versão 8 (Jessie).
Ah sim, a princípio o PhpStorm só roda no Gnome ou no KDE.
2° Passo
O segundo passo é o menos complicado. Acesse o site de download do PhpStorm (https://www.jetbrains.com/phpstorm/download/) faça o download do mesmo e siga estes procedimentos:
Descompacte o arquivo PhpStorm-*.tar.gz usando o seguinte comando:
Code
tar xfz PhpStorm-*.tar.gz |
Rode o phpstorm.sh que está dentro do subdiretório bin.
PHP: Mudanças nas funções htmlspecialchars() e htmlentities()
Desde a versão 5.4 do PHP, as funções htmlspecialchars() e htmlentities() passaram por um refactoring e tiveram grandes porções internas de código reescritas. Além de melhorias e correções de bugs, o terceiro parâmetro destas funções (que até então tinha como default ISO-8859-1), passou a ser UTF-8, refletindo o encoding usado pela maioria das aplicações.
Entretanto, alguns cuidados devem ser adotados, principalmente por quem ainda utiliza PHP sobre bases de dados ISO-8859-1. Ao utilizar uma dessas funções sobre uma string ISO com caracteres acentuados, o retorno (que antes funcionava), agora passa a ser vazio (string vazia).
Para testar, basta digitar o conteúdo a seguir e salvar em um arquivo ISO. Você verá que o retorno será string vazia.
PHP
<?php | |
var_dump(htmlspecialchars( 'São Paulo')); | |
?> |
Como dito anteriormente, o encoding padrão aguardado por estas funções passou a ser UTF-8. Assim, quando você utilizar essas funções com uma string que não está em UTF-8, deverá indicar o encoding como parâmetro, como no exemplo a seguir.
PHP
<?php | |
var_dump(htmlspecialchars( 'São Paulo', 0, "iso-8859-1")); | |
?> |
Gerar PDF com PHP através da biblioteca DOMPDF
Quando falamos em desenvolvimento web, é muito comum a necessidade de gerar arquivos PDF's de algum relatório. Muitos já devem ter tido alguma dificuldade com a configuração de algumas bibliotecas para fazer esta geração.
Com a a biblioteca DOMPDF conseguimos fazer a conversão de uma página HTML para PHP de forma fácil, rápida e com possibilidades de incluir imagens, cabeçalho, rodapé, CSS, número de páginas, tamanho e orientação do papel, etc.
Para baixar a biblioteca DOMPDF é só acessar https://github.com/dompdf/dompdf/downloads e voilà. A biblioteca é gratuita e vem com diversos exemplos, dos mais simples aos mais complexos, o que facilita ainda mais o seu entendimento.
Vamos a alguns exemplos de utilização:
Aqui um pequeno trecho HTML que depois será convertido em PDF. Notem que é possível utilizarmos CSS de forma bem simples.
PHP
$html = " | |
<html> | |
<head> | |
<style ='text/css'> | |
body { | |
font-family: Calibri, DejaVu Sans, Arial; | |
margin: 0; | |
padding: 0; | |
border: none; | |
font-size: 13px; | |
} | |
| |
#exemplo { | |
width: 100%; | |
height: auto; | |
overflow: hidden; | |
padding: 5px 0; | |
text-align: center; | |
background-color: #CCC; | |
color: #FFF; | |
} | |
</style> | |
</head> | |
<body> | |
<div id='exemplo'> | |
Gerar PDF com a classe DOMPDF para PHP.<br /> | |
</div> | |
</body> | |
</html>"; |
No trecho acima criamos um HTML simples, com uma mensagem dentro de uma div. A div e a mensagem foram estilizadas com CSS Embed. Esse código HTML foi atribuído à variável $html que utilizaremos abaixo.
Um dos recursos da DOMPDF é a possibilidade de utilizar CSS's e não precisar ficar definindo posições X e Y de cada elemento, como algumas bibliotecas o fazem.
Agora vamos ao código que irá fazer a conversão do conteúdo HTML da variável $html para PDF.
PHP
<?php | |
// Incluímos a biblioteca DOMPDF | |
require_once("dompdf/dompdf_config.inc.php"); | |
| |
// Instanciamos a classe | |
$dompdf = new DOMPDF(); | |
| |
// Passamos o conteúdo que será convertido para PDF | |
$dompdf->load_html($html); | |
| |
// Definimos o tamanho do papel e | |
// sua orientação (retrato ou paisagem) | |
$dompdf->set_paper('A4','portrait'); | |
| |
// O arquivo é convertido | |
$dompdf->render(); | |
| |
// Salvo no diretório temporário do sistema | |
// e exibido para o usuário | |
$dompdf->stream("nome-do-arquivo.pdf"); | |
?> |
Bem simples, não?
Alguns Cuidados:
Fontes
Ter fontes true type (.ttf) instaladas no servidor é o bastante para exibí-las corretamente na tela mas para que a biblioteca DOMPDF reconheça essas fontes é preciso carregá-las para o diretório da biblioteca.
Para carregar novas fontes para a biblioteca DOMXML, basta seguir o tutorial disponível em http://www.dirtyhandsphp.com/2013/03/dompdf-new-font-installation.html.
Imagens
Se no seu código HTML forem utilizadas imagens locais (dentro do mesmo servidor onde a biblioteca DOMPDF está instalada) não precisa se preocupar. Mas se você utiliza imagens externas é necessário habilitar a função DOMPDF_ENABLE_REMOTE. No arquivo compdf_config.inc.php, na linha 289, defina DOMPDF_ENABLE_REMOTE como true.
Como vimos, a criação do de um documento PDF através da DOMPDF é muito simples. Em casos de dúvidas, dêem uma olhada nos exemplos que estão disponíveis junto com a documentação da biblioteca.