====PHP====

Membros:

Erick Chemevski Espindula

Lisandro Luiz da Silva

Rafael Faleiro Schulze


A linguagem PHP

PHP (“ Hypertext Preprocessor”, originalmente Personal Home Page) é uma linguagem interpretada livre e utilizada para gerar conteúdo dinâmico na World Wide Web. O PHP é considerada uma poderosa linguagem de scripting que atua apenas no lado do servidor (Server-Side).

Quando um utilizador visita a página PHP, o servidor web processa o código PHP. Depois determina que partes é que precisa mostrar ao utilizador (conteúdo e imagens) e que partes necessita de esconder (Operações de ficheiros, cálculos matemáticos, etc.). Posteriormente traduz o PHP numa página HTML e envia-a para o browser do utilizador.


Um pouco de história e características

A linguagem PHP foi concebida 1994 por Rasmus Lerdorf e a primeira versão utilizada por utilizadores foi disponibilizada em 1995, e ficou conhecida como “Personal Home Page Tools” (ferramentas para página pessoal).

PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP. É possível abrir sockets e interagir com outros protocolos. E as bibliotecas de terceiros expandem ainda mais estas funcionalidades. Existem iniciativas para utilizar o PHP como linguagem de programação de sistemas fixos. A mais notável é a PHP-GTK. Trata-se de um conjunto do PHP com a biblioteca GTK, portada do C++, fazendo assim softwares inter-operacionais entre Windows e Linux. Na prática, essa extensão tem sido muito pouco utilizada para projetos reais.


Vantagens

  • É uma linguagem gratuita (Open Source).
  • É veloz e robusta (o ASP tende a deixar o servidor mais lento, o PHP raramente causa este problema.).
  • É estruturada e de orientação a objetos.
  • De fácil ligação a bases de dados. (Ex: SQL)
  • Funciona em qualquer plataforma onde for possível instalar um servidor Web. Há também versões para Linux, FreeBSD, Solaris, Windows NT, IRIX, HP-UX.
  • A sua sintaxe é familiar, isto é, grande parte da sua sintaxe é “aproveitada” do C, Java e Perl com um pequeno conjunto de funcionalidades específicas.
  • É fácil obter ajuda, existem muitos sites com “helps”
  • Possui muitas funções e funciona com muitas tecnologias (BD, XML, etc.).
  • Muitas pessoas o utilizam pois possibilita boas oportunidades no mundo do trabalho.

Desvantagens

  • Possui alguma incompatibilidade entre versões, isto é, falta de padronização. Por exemplo, um comando que funciona numa determinada versão pode não funcionar noutra
  • Possui documentação incompleta, pois como a maioria dos programas Open Source, frequentemente os recursos surgem antes de estarem documentados. O site da organização ajuda bastante, mas é comum encontrar recursos sem documentação e, principalmente, sem exemplos que possam ajudar o aprendiz.

Segundo os especialistas, a utilização de Servlets e do JSP deixa os códigos mais seguros do que o PHP pois são pré-compilados


Sintaxe

Um script em PHP começa sempre com

No fim de cada instrução usa se o “;”.Echo e print para imprimir os resultados e “”para comentar uma linha de código. Exemplo: As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome da variável. Os nomes de variável no PHP fazem distinção entre maiúsculas e minúsculas (case sensitive).

  • As variáveis locais não necessitam de ser declaradas e devem ser inicializadas.
  • As variáveis definidas dentro de uma função são locais e não podem ser acedidas fora da função tal como as variáveis definidas fora de uma função também não podem ser acedidas dentro da mesma. Para que seja possível aceder, dentro de uma função, a funções definidas fora desta é necessário definir a variável como global dentro da função.

Variáveis Super Globais

Superglobais são variáveis nativas ou pré-definidas no PHP, o que significa que elas estão disponíveis em todo o script. Não há necessidade de fazer Global “$variavel;” para lhes aceder dentro de funções. Estas variáveis super globais são:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Você pode definir uma constante utilizando-se da função define(), ou utilizando a palavra-chave const fora da definição de uma classe a partir dor PHP 5.3.0. Quando uma constante é definida, ela nunca mais poderá ser modificada ou anulada.

Somente dados escalares (boolean, integer, float e string) podem ser colocados em constantes. É possível ter consntantes com um resource (recurso), mas deve ser evitado já que pode causar resultados não esperados.

Você pode obter o valor de uma constante simplesmente especificando seu nome. Diferentemente de variáveis, você não prefixa uma constante com um sinal de $. Você também pode utilizar a função constant() para ler o valor de uma constante, se você precisar obter seu valor dinamicamente. Utilize get_defined_constants() para obter a lista de todas as constantes definidas.

Nota: As constantes e variáveis (globais) estão em espaços de nomes diferentes. Isto implica, por exemplo, que TRUE e $TRUE são geralmente diferentes.

Se você usar uma constante indefinida, o PHP assume o nome da constante como seu próprio valor, como se você tivesse uma string (CONSTANT vs “CONSTANT”). Um erro de nível E_NOTICE será lançado quando isso acontecer. Veja também a referência do manual sobre como $foo[bar] é errado (a não ser que você primeiro define() bar como uma constante). Se você simplesmente quer checar se uma constante foi definida, utilize a função defined().

Estas são as diferenças entre constantes e variáveis:

  • Constantes não podem ter um sinal de cifrão ($) antes delas;
  • Constantes só podem ser definidas utilizando a função define(), e não por simples assimilação;
  • Constantes podem ser definidas e acessadas de qualquer lugar sem que a regras de escopo de variáveis seja aplicadas;
  • Constantes não podem ser redefinidas ou eliminadas depois que elas são criadas; e
  • Constantes só devem conter valores escalares.

Exemplo #1 Definindo Constantes

Exemplo #2 Definindo Constantes usando a palavra-chave const

Nota: Ao contrário das funções definidas através de define(), as constantes definidas usando a palavra-chave const devem ser declarados no escopo de topo (principal) pois são definidas no tempo de compilação. Isso significa que elas não podem ser definidas dentro de funções, laços ou ifs.

Mais um exemplo

Constantes do Objeto

É possível definir valores constantes em cada classe permanecendo a mesma e imutável. Constantes diferem de variáveis normais no não uso do símbolo $ para declará-las ou usá-las.

O valor deve ser uma expressão constante, não podendo ser (por exemplo) uma variável, um membro de uma classe, o resultado de uma operação matemática, ou uma chamada de função.

É possível também interfaces terem constantes. No PHP 5.3.0, é possível referenciar a classe usando uma variável. O valor da variável não pode ser uma palavra chave (e.g. self, parent e static).

Exemplo #1 Definindo e usando uma constante

Exemplo #2 Exemplo com informação estática


Get

Os dados passam entre páginas, embebidas no URL. Os dados estão visível para o utilizador.

Exemplo: http://www.tdipt/index.php?nome=alunos (Neste caso a variável nome é transmitida com o valor “alunos”).

Este tipo de envio tem algumas desvantagens como:

  A tecnologia está mais exposta
  (Reconhecimento visual) É fácil encontrar os parâmetros.
  O tamanhos dos dados a enviar está condicionado pelo tamanho do URL

Vantagens: Este tipo de URL é portável – é possível fazer o bookmark da página, enviar por email, etc.


Post

No caso do POST podemos passar valores através de formulários Os dados passam entre páginas de modo invisível para o utilizador. Este tipo de envio tem algumas desvantagens como:

  Problemas com o refresh em alguns browsers.

Vantagens:

 Não existe tamanho limite para os dados a enviar. 
 A informação transmitida é invisível ao utilizador, proporcionando maior segurança na transmissão dos dados.

Cookies

As cookies são simples e pequenos pedaços de dados armazenados no sistema operativo do utilizador normalmente num ficheiro ( “cookies.txt” ) ou num directório (“C:\DocumentsandSettings\userid\Cookies” ) em ficheiros individuais. Permitem a utilização de dados guardados numa visita anterior ao site.

Nota: muitas vezes as cookies não armazenam os dados que queremos seguir mas sim um ID que referencia os dados armazenados no servidor .


Sessions

As sessões (sessions) podem ser usadas para guardar informações relativas à autenticação de utilizadores para prevenir acesso de pessoas não autorizadas a determinada página e que poderão ser acedidos a partir de qualquer página do nosso site uma vez que se trata de uma variável “super global”.


Interação do PHP

PHP é uma linguagem que possibilita a interação com outras linguagens.

Ex: HTML JavaScript SQL XML


Validações e Expressões Regulares

Todos os dados introduzidos pelo utilizadores devem sempre ser verificados pelo servidor , para garantir uma maior segurança do site.

As expressões regulares servem para verificar se uma string tem, ou não, determinados caracteres, serve para validar por exemplo um email.


SQL Injection

SQL Injection ou injecção de SQL é uma técnica de invasão de sistemas que se tornou famosa na Internet que pode ser utilizada em qualquer linguagem de programação.

Ocorre quando o atacante consegue inserir uma série de instruções SQL dentro de uma 'query' através da manipulação da entrada de dados de uma aplicação.


Framework

 Uma framework é uma estrutura de suporte definida em que um outro projecto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar a desenvolver e juntar diferentes componentes de um projecto de software.  Frameworks são projectados com a intenção de facilitar o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinando nas exigências do software do que com detalhes tediosos de baixo nível do sistema.


Exemplo de Framework

 Zend Framework: uma colecção de arquivos com várias funções de base de dados, RSS, AJAX, E-mail, PDF e Busca. Foi desenvolvida pelos criadores do PHP e tem um excelente documentação sobre o assunto  Magpie RSS: Framework que permite que se carregue feeds RSS no site de maneira simples. Simples e rápido de usar;  CakePHP: é um Framework escrito em PHP que tem como principais objectivos oferecer uma estrutura que possibilite aos programadores de PHP de todos os níveis desenvolverem aplicações robustas rapidamente, sem perder flexibilidade


CMS

CMS – Content Managment System ou, em português, Sistema de Gestão de Conteúdo, são plataformas web pré-programadas usadas para a construção de sites, portais ou intranets dinâmicos. A grande vantagem no uso destas plataformas é o de permitirem que o conteúdo do site possa ser modificado rapidamente, sem alteração de qualquer linha de código e em qualquer altura, sendo apenas necessário um computador ligado à Internet.

Estes sistemas de gestão de conteúdos têm duas áreas diferentes: frontend e backend. O frontend é a zona do site acessível a todos os visitantes, é o que consultamos quando digitamos o endereço do site na Internet. O backend é a parte administrativa do mesmo. Apenas os gestores autorizados (através do nome de utilizador e palavra-chave) conseguem entrar. Dentro do backend é também possível criar zonas restritas para os diferentes tipos de utilizadores.


Drupal:

O Drupal é uma framework modular (organiza-se por módulos) e um sistema de Gestão de Conteúdos (CMS) escrito em PHP. O Drupal permite criar e organizar conteúdo, manipular a aparência, automatizar tarefas administrativas, e definir permissões e papéis para utilizadores e colaboradores. Por ser desenvolvido em PHP, o Drupal é independente do sistema operativo, no entanto requer um servidor HTTP compatível com PHP e um Servidor de Base de Dados para funcionar. O Drupal é normalmente descrito como uma Framework de Gestão de Conteúdos, pois além de oferecer as funcionalidades básicas de um CMS também tem implementadas uma série de APIs robustas e apresenta uma estrutura modular que facilita o desenvolvimento de módulos complexos. O Drupal é um software livre e de código aberto, por isso qualquer um pode ver como o Drupal funciona, fazer modificações, redistribuir com ou sem as modificações, além de poder propor e participar em mudanças no projecto principal. Tudo isso de acordo com a licença GPL, da GNU. A comunidade Drupal é activa e prestável. Existem vários módulos com funções importantes que foram criados por utilizadores comuns.


Joomla:

Desenvolvido a partir do Mambo o Joomla escrito em PHP e pode ser executado tanto num servidor Web Apache como num IIS e base de dados MySQL.É um projecto de código aberto (licença GNU/GPL) e a sua última versão estável é a 1.5.14 (em 30 de Julho de 2009).


Wordpress:

Trata-se um sistema de gestão de conteúdos na web, escrito em PHP e recorrendo a base de dados MySQL, especialmente usado para a criação de blogs. O WordPress foi criado a partir do já desaparecido b2/cafelog e é hoje, junto com o Movable Type, o mais popular na criação de Blogs. As causas do seu rápido crescimento são, entre outras, seu tipo de licença (de código aberto), a facilidade de uso e suas características como gestor de conteúdos. Criado por Ryan Boren e Matthew Mullenweg, é distribuído sob a GNU General Public sendo de uso gratuito.


Referencias

 
php-1-trabalho.txt · Last modified: 2012/03/18 19:35 by clp · [Old revisions]