Agora vamos ver algumas observações sobre o uso de Spoon, como realizar umas mensagens de depuração, para mostrar o estado das variáveis e veremos também como armazenar referências a objetos. Tudo isso são tarefas muito elementares.
<?php
echo "<pre>";
var_dump($objeto);
echo "</pre>";
?>
Porém, Spoon dispõe de uma função para fazer isso mesmo, porém escrevendo menos código.
<?php
Spoon::dump($objeto, false);
?>
O método dump() da classe Spoon recebe como primeiro parâmetro a variável ou objeto que queremos inverter na tela e como segundo parâmetro um booleano que serve para indicar se desejamos ou não deter a execução da página chegado a esse ponto.
Agora podemos ver um código completo de uma página que mostra várias variáveis através do método dump() de Spoon.
<?php
//Definir o diretório onde está a pasta com as bibliotecas
define('PATH_LIBRARY', 'C:/xampp/htdocs/');
// Adicionar esse diretório à rota de includes
set_include_path(get_include_path() . PATH_SEPARATOR . PATH_LIBRARY);
//incluo as bibliotecas básicas de Spoon
require_once 'spoon/spoon.php';
//imprimo por tela variáveis simples
$string = 'spoon library';
$int = 13;
$float = 1.3;
Spoon::dump($string, false);
Spoon::dump($int, false);
Spoon::dump($float, false);
//defino uma classe qualquer com PHP 5
class QualquerCoisa{
public $x;
private $y;
var $z;
function __construct($x,$y,$z){
$this->x = $x;
$this->y = $y;
$this->z = $z;
}
}
//crio um objeto
$objeto = new QualquerCoisa("olá", "provando", "qualquercoisa");
//imprimo por tela as propriedades desse objeto
Spoon::dump($objeto, false);
?>
À princípio, até onde chegamos neste manual sobre Spoon, talvez não tenha muito sentido comentar estas referências, porém junto com dump() são os métodos que existem na classe principal: Spoon.
Vejamos o código seguinte:
<?php
define('PATH_LIBRARY', 'C:/xampp/htdocs/');
set_include_path(get_include_path() . PATH_SEPARATOR . PATH_LIBRARY);
//incluo Spoon
require_once 'spoon/spoon.php';
//defino uma classe qualquer com PHP 5
class QualquerCoisa{
public $x;
private $y;
var $z;
function __construct($x,$y,$z){
$this->x = $x;
$this->y = $y;
$this->z = $z;
}
function sumar(){
$this->x = $this->y + $this->z;
}
}
//Crio um objeto
$object = new QualquerCoisa(1,2,3);
//Adiciono o objeto ao registro de Spoon
Spoon::setObjectReference('theNameIWant', $object);
//faço algo com o objeto
Spoon::getObjectReference('theNameIWant')->sumar();
//faço o dump do objeto
Spoon::dump(Spoon::getObjectReference('theNameIWant'), false);
//destruo a referência
Spoon::killObjectReference('theNameIWant');
?>
No anterior código se cria um objeto e se salva uma referência no registro com setObjectReference(). Logo, através de getObjectReference() acesso ao objeto salvo e posso invocar seus métodos ou mostrá-lo em tela com o método dump() visto anteriormente. Por último se mostra como se destrói a referência no registro, a partir do método killObjectReference().