Saturday, November 04, 2006

PHP

O PHP ("PHP: Hypertext Preprocessor") é uma linguagem de programação que foi originalmente pensada para criação de conteúdos dinâmicos em páginas Web.
Trata-se de uma linguagem interpretada no lado do servidor (Server-Side) que pode ser utilizada acendendo ao mesmo remotamente, por linha de comandos (CLI) ou como aplicação gráfica independente (GTK+).

Esta linguagem é constituída internamente por 5 partes:

TSRM (Thread Safe Resource Management) – esta irá ser a camada mais superficial do PHP que irá servir de interpretador e permitir a que uma instância consiga executar múltiplos pedidos sem que hajam conflitos entre eles.
SAPI (Server API) – Interface que permite a comunicação com servidores e controle do ciclo de vida dos processos.
PHP CORE – Gestão de pedidos e eventos no sistema, gestão de erros, operações simples de baixo nível e operações com ficheiros.
ZEND – Compilação, execução e gestão de memória.
EXTENSÕES – Conjunto de livrarias e funções que podem ser utilizadas pelo utilizador.


CICLO DE VIDA DO PHP

Existem 2 tipos de ciclos de arranque no PHP, o do PHP Interpreter que irá iniciar todas a variáveis e estruturas durante o funcionamento da SAPI e os pedidos ocasionais que só acontecem durante o pedido de uma página.
SAPI
Arranque:
Na primeira fase de arranque o PHP ira executar um processo chamado MINIT (inicialização de módulos), que irá declarar variáveis, definir classes e recursos, que poderão ser utilizados a qualquer momento durante todos os tipos de pedidos.
PEDIDO
Arranque:
Quando é efectuado um pedido, o PHP ira correr um método chamado RINIT (inicialização de pedido) que irá aceder a todas a extensões e poder alterar e reiniciar a tabela de símbolos.
Fim:
No fim de cada pedido irá ser executado, ou a pagina ter sido fechada, o método RSHUTDOWN irá ter a finalidade de fazer a “limpeza” da tabela de símbolos e de todos os outros recursos, não persistentes, utilizados neste pedido.

Fim:
Quando todos os pedidos estiverem concluídos o PHP irá correr em todas as extensões o método MSHUTDOWN tem como finalidade libertar todos os recursos iniciados pelo MINIT e limpar tabelas de símbolos.

No comments: