SimpleXML

XML é uma linguagem de notação, baseada em tags, para mantermos informação de maneira uniforme, flexível, organizada e legível. Simples e descomplicada é o formato ideal para troca de informação entre diferentes sistemas. Exemplos de uso: webservices, RSS, Podcasts, Configuração de sistemas, arquivos de troca de informação simples, etc…

SimpleXML é uma funcionalidade embutida no PHP5, que visa trabalhar, de maneira simples, XML no PHP. Trabalhando numa estrutura de ojetos, é bem fácil trabalhar com ele:
Para começar vamos a um pouco de código:

$sxe = simplexml_load_file(’teste.xml’);

Supondo que teste.xml Seja um xml válido, $sxe receberá uma instância de SimpleXMLElement, referente ao nó raiz do xml; caso contrario receberá false.

Você pode adionar elementos com addChild, e attributos com addAttribute, como a seguir:

$ne = $sxe->addChild(’novo_elemento’);
$ne->addAttribute(’novo_atributo’,’valor_do_novo_atributo’);

Note que addChild retorna uma referência ao novo elemento criado.

A informação no SimpleXML é editada facilmente:

$sxe->elemento[0]->descendente = ‘dado textual do descendente’;
$sxe->elemento[0][’atributo_do_elemento’] = ‘novo valor do atributo’;

Os atributos de SimpleXMLElement são os elementos descendentes da tag raiz do xml, respeitando sua hierarquia. Esses elementos podem ser acessados via Array de índíce numérico nos atributos do objeto. Agora falando dos atributos do xml: estes são aceesados por arrays de índice textual.
Para exportar as edições feitas para o xml, usa-se o método asXML:

$sxe->asXML();

Simples não? O SimpleXML ainda permite importação de Elementos DOM do php, além de pesquisas com XPath. Só peca por não conte métodos de remoção de elementos.
SimpleXML foi tema de minha apresentação na última PHP Conference Brasil ‘06. Você pode ver a apresentação em Apresentação SimpleXML – PHPConf ‘07

__autoload()::Santa função

Quem trabalha com PHP sabe o parto que é ficar incluindo os arquivos com as classes da sua aplicação, que se não estão bem estruturadas em pastas/diretórios/pacotes torna-se tudo uma bagunça. Se você trabalha centralizando as requisições em um arquivo para ai rodar os diferentes scripts dos seu projeto e não quer ficar incluindo todas os arquivos de classes em cada programa que faz eis a solução: __autoload(). Segue a descrição do PHP.net para esta belezura:

Muitos desenvolvedores ao desenvolver aplicações orientadas a objeto criam um arquivo PHP para cada definição de classe. Um dos maiores contratempos é ter de escrever uma longa lista de includes no início de cada script(um include para cada classe necessária).

Com PHP 5 isso não é mais necessário. Você pode definir uma função __autoload que é automaticamente chamada no caso de você tentar usar uma classe que ainda não foi definida. Ao chamar essa função o ’scripting engine’ tem uma última chance para carregar a classe antes que o PHP falhe com erro.

Digamos que você tenha um arquivo “index.php”. Onde voce faria:(lógico, supondo que suas classes estejam em “/classes/”)

<?
include_once(”classes/User.class.php”);
include_once(”classes/Store.class.php”);
include_once(”classes/Book.class.php”);
$oUser = new User();
$oStore = new Store();
$oBook = new Book();
?>

Com o autoload você faz assim:

<?
function __autoload($class_name) {
require_once(”classes/”. $class_name . “.class.php”;
}
$oUser = new User();
$oStore = new Store();
$oBook = new Book();
?>

E todos seus objetos serão instanciados como se com o include/require no script.

Vamos além… sou um cara muito preguiçoso, e tenho classes em 3 pastas: “domain”,”engine” e “util”:

<?
$sep = PATH_SEPARATOR
set_include_path(get_include_path() . “$sep./domain/$sep./engine/$sep./util/”);
function __autoload($className){
include($className . “class.php”);
}
$oUser = new User();
$oStore = new Store();
$oBook = new Book();
?>

Viu como é bom ser preguiçoso? até a linguagem apóia! Lógico que é muito bom ter um controle de “o que é incluído quando”, mas às vezes temos que utilizar certas coisas do tipo pra facilitar nossa vida.

PHP – Começando

PHP – História: lá pros idos de 1995, Rasmus Lerdorf criou um conjunto de funcionalidades para seus projetos que chamou de Personal Home Pages. A coisa evoluiu, chegando ao “PHP2″.
Algum tempo depois Zeev Zuraski e Andi Gutmans abraçaram o projeto: criaram uma empresa para cuidar profissionamente do PHP, a Zend, e refizeram a base da linguagem, a agora Zend Engine; o significado de PHP também mudou: PHP Hypertext Preprocessor. Lançaram o PHP3, que rapidamente estourou como linguagem de programação para a web. Isto evoului e chegamos ao PHP4 com significativas mudanças na maneira como o PHP trabalha com a Zend Engine.
Em 2005 foi lançada a versão 5 da linguagem, que trouxe a Orientação a Objetos como maior destaque na evolução. Hoje o PHP é a linguagem mais utilizada na internet, com grandes comunidades e “seguidores”, inclusive este que vos escreve.

Bom, o que precisamos então para utilizar o PHP como linguagem de programação? vamos à receita de bolo:

  • Servidor Web
  • PHP
  • Browser

Só explicando os itens: Servidor Web Software que irá “servir” arquivos sob requisições do protocolo de internet (HTTP); dentre os mais comuns estão o Apache, IIS, Xitami, etc. O PHP será executado no servidor assim que este receber uma requisição, tratando-a e devolvendo ao navegador. O procedimento de instalação não é o foco deste artigo, porém não é nada do outro mundo.

Supondo que você já tenha seu servidor web rodando, você terá uma pasta que será a Raiz, ou seja, de onde o servidor irá começar a buscar arquivos (algo como o “C:/” para o windows). Esta pasta no windows pode ser c:\inetpub\wwwroot\ para o IIS ou c:\htdocs no caso do apache; no linux as distribuições baseadas em Debian geralmente criam por padrão a \var\www para este propósito
Para se criar um pequeno programa em PHP, crie um arquivo novo com o nome de “artigo.php” nesta pasta raiz. Abra-o e insira o seguinte código:

<?
echo “Olha só, escrevi no navegador”;
?>

Abra seu navegador, entre no endereço “http://localhost/artigo.php” [não esqueça o http://] e voilá

Concluindo: este artigo foi só uma apresentação rápida sobre o PHP, e como rodar um script simples. Em outro artigo explico como se começa a programar em PHP. Duvidas? a parte de comentários está ai pra isso

« Página anterior