Fala, pessoal! Tudo bom?
Nos últimos artigos temos focado em mostrar bibliotecas PHP para implementarmos diversas funcionalidades em nossos sistemas. Algumas vezes eu acabo não conseguindo passar todo o conteúdo dos objetos gerados pelas bibliotecas. E no artigo de hoje, mostrarei a vocês uma biblioteca para gerar o gráfico de profundidade de um objeto PHP.
A biblioteca koriym/print_o – que parece ser escrita por alguém do Japão -, cria gráficos muito bons com os atributos, os métodos, e mais de uma instância de algum objeto PHP. Então, podemos acabar vendo como extrair melhor as funcionalidades de um objeto de uma biblioteca em específico.
Vamos ao código:
Criaremos uma pasta. No meu caso criei a “object”. Instalaremos a biblioteca em nosso projeto.
composer require koriym/printo
Para realizar os testes dos gráficos de objeto, irei utilizar uma instância de um objeto Guzzle. Para isso, vamos instalar o guzzle no projeto:
composer require guzzlehttp/guzzle
Agora, vamos criar o arquivo de exemplo first.php:
<?php require_once 'vendor/autoload.php'; //autoload do Composer use GuzzleHttp\Client; //utilizando a classe Client do GuzzleHttp use Koriym\Printo\Printo; //utilizando a classe Printo do Koriym\Printo $client = new Client(); //instanciando um Client do Guzzle $res = $client->request('GET', 'https://google.com'); //realizando uma chamada get para o site do google echo (new Printo($res)); //exibindo a imagem do objeto "chamada GET no site do google" pelo Guzzle
Então, vamos validar a imagem. Para isso, vamos ligar o servidor embutido PHP.
php -S localhost:80
E abra localhost/first.php.
O gráfico é muito bom, porém, às vezes acaba vindo informação de mais; então você pode definir algumas propriedades para melhor visualização do objeto. Vamos ao exemplo second.php:
<?php require_once 'vendor/autoload.php'; //autoload do Composer use GuzzleHttp\Client; //utilizando a classe Client do GuzzleHttp use Koriym\Printo\Printo; //utilizando a classe Printo do Koriym\Printo $client = new Client(); //instanciando um Client do Guzzle $res = $client->request('GET', 'https://google.com'); //realizando uma chamada get para o site do google echo (new Printo($res)) //exibindo a imagem do objeto "chamada GET no site do google" pelo Guzzle ->setRange(Printo::RANGE_PROPERTY) //tipo de dados do objeto que aparecerão, no caso as propriedades (atributos) do objeto ->setLinkDistance(130) //distancia da ligação de um item e outro dentro do gráfico ->setCharge(-500); //angulação do arco das imagens(distância de arco), quanto menor o número (por exemplo -1000) maior é a angulação //caso queira ver todos os tipos de Range, só ver a documentação da classe: https://github.com/koriym/print_o/blob/1.x/src/Printo.php
E abrindo o localhost/second.php:
Espero que tenham gostado e possam estudar melhor as instâncias de objeto que vocês usam no dia a dia de desenvolvimento. Abraços e até a próxima!