sapo sessions php
PHP
Ontem fui a assistir a uma sessão de php
Aqui fica um pequeno resumo da sessão :
Optimização de código
Usar sempre que possivel require_once em vez de include.
Nas strings usar o explode em vez do preg_split.
Usar arrays o php trabalha bem com arrays.
Evitar gravar as sessões e cookies em ficheiros, pois o acesso ao filesystem é sempre mais lento, de preferência utilizar o memcached.
Reduzir ciclos, querys , stats, remote resquests.
Não misturar HTML no meio da lógica . HTML Deve ser HTML.
Evitar as mensagens de erro do php, warnings, notices pois se aparecem é má programação.
<– Apache –>
Directory index
Se o nosso ficheiro de index é index.php deve estar logo na 1ª linha do directory index.
A maior parte dos casos temos.. index.html,index.js, index.asp, index.htm e só no fim é que aparece o index.php
.htaccess
Se não estamos a utilizar ficheiros .htaccess desligar o mesmo do apache.
Evitar os symlinks.
Novidades do PHP 5
Namespace
Reflection
Late Static Binding
Interface
Final Class
anonymous function
clone
SPL – Standard PHP library
SOLR
DATETIME
definir um date_default (sempre que se trabalha com datas)
Timezone
Memcache(d)
PECL
SQL – PDO
DataBase access layer
Simple XML
Webservices
O auth
SOAP
Streams
- Stream filters
–Stream contexts
–Stream erros
Magic quotes
Filter sanitize
Special chars
SuhosinPATH
desactivar CURL
desactivar remote links
Banir Ficheiros / binary
Zend server
Zend platform
Zend guard
Zend studio edit (debug)
APC (op code cache)
Strace
XDebug
Webgriad
Boas Práticas
Utilizar ficheiros de config, classes, definir sempre o time zone, classe debug, classe procedure, classe log, fire php.
Smarty Templates
Quem usa ?
Zend , xcart, xoops, open
Objectivo
Separar a lógica da apresentação
Estrutura de pastas do smarty
libs
templates
templates_c
cache
As smarty templates atenuam o cross site (XSS – injecção e colocação de exploits)
Frameworks php
Log4PHP
PHP — Controlo de erros (Debug)
Analise dos logs enquanto se desenvolve
Um dos erros muito comuns no desenvolvimento em qualquer linguagem interpretada é não usarmos a totalidade das vantagens da análise de logs. No PHP para um uso mais eficiente do relatório de erros e avisos, a propriedade error_reporting, no ficheiro php.ini, deverá ser definida como E_ALL.
error_reporting = E_ALL
Para um desenvolvimento mais efectivo, desligo sempre a visualização de erros no “screen”, preferindo a análise dos mesmos no ficheiro de log. Para isso defino o display_errors como desligado.
display_errors = Off
Necessitamos ainda, de indicar ao PHP para efectuar o log dos erros para um ficheiro e indicar qual o caminho para o ficheiro onde desejamos gravar as mensagens de erro.
log_errors = On ; Desejamos gravar as mensagens em ficheiro
error_log = “/var/logs/php.log” ; Caminho para o ficheiro onde desejamos gravar as mensagens
Depois basta abrir uma consola onde estou a monitorizar toda a actividade do ficheiro de log do php.
tail –f /var/logs/php.log
Xdebug
A extensão XDebug para PHP permite efectuar profilling e debugging de uma forma muito simples, com funções como xdebug_memory_usage( ), que nos permite analisar o uso da memória do script currente, que também tem correspondente na versão nativa do php, memory_get_usage(), a função xdebug_call_class(), que permite saber em que class foi o método invocado, entre muitas outras.
A extensão XDebug proporciona uma melhoria na visualização de mensagens de erro, podendo-se observar o caminho de execução do script até ao momento em que aconteceu o erro, por exemplo.
Mais informações sobre a extensão na página da mesma.
