Advertisement

[YouTube] Criei uma aplicação dinâmica usando apenas php e Google Sheets



1- Introdução


Soluções simples para problemas do dia-a-dia são importantíssimas para manter a informática acessível a qualquer pessoa. Nesse tutorial você irá entender como criar uma aplicação em PHP que utiliza como base de dados uma planilha do Google Sheets. Ambas as tecnologias são gratuitas e podem ser utilizadas facilmente até mesmo por pessoas que não tem afinidade com o mundo da informática. 

Nesse exemplo iremos criar uma loja virtual (e-commerce), no entanto, você pode usar esse modelo para qualquer outro tipo de informação que queira armazenar no seu banco de dados.

2- Criando uma planilha pública no Google Sheets


O primeiro passo é criar uma planilha dentro da sua conta Google. Para isso basta acessar o Google Docs e criar uma nova planilha, onde você poderá colocar as informações dos produtos que deseja vender em seu e-commerce. 



A seguir você deverá clicar no menu "Arquivo" e selecionar a opção "Publicar na web":


Ao selecionar a opção, uma caixa de opções irá perguntar o que você deseja fazer com esse documento. Você deve selecionar a planilha que você deseja publicar (ou então documento inteiro) e também publicá-lo como pagina da web:


A partir desse momento você poderá acessar esse documento no formato JSON. Isso pode ser feito usando o seguinte link:

https://spreadsheets.google.com/feeds/cells/<ID_DA_SUA_PLANILHA>/1/public/full?alt=json

Para acessar esse link, você precisará do ID da planilha criada, que fica disponível ao acessar essa planilha em seu Google Docs:



3- Criando sua aplicação no PHP

Sua aplicação PHP deverá percorrer o JSON publicado anteriormente e exibir os itens em qualquer formato que você desejar. Primeiramente devemos fazer o "request" para o documento e capturar esse JSON:

  
     $url = 'https://spreadsheets.google.com/feeds/cells/19vT4qkWn-PdfvIwKI9sVnDrOFqzb_fjeN9sEGhrNqE8/1/public/full?alt=json';
 	 $file = file_get_contents($url);
     $produtosDeInformatica = json_decode($file);
  	  $produtos = $produtosDeInformatica->{'feed'}->{'entry'};
  
A seguir, você deverá criar um vetor para armazenar os itens da tabela como Strings:

   $prodAsStrings = Array();
   foreach ($produtos as $prod) {
        array_push($prodAsStrings, $prod->{'gs$cell'}->{'$t'});
   }
  
Após extrair os itens no formato de String, é interessante separar cada item como um "objeto". Isso facilita a manipulação dos dados e permite que você deixe seu código mais legível.

    $produtosObjetos = Array();
    for ($i = 0; $i < sizeof($prodAsStrings); $i = $i + 5) {
    
        // pega os itens no array e separa por "atributo" do objeto
        $nome = $prodAsStrings[$i];
        $categoria = $prodAsStrings[$i + 1];
        $descricao = $prodAsStrings[$i + 2];
        $imagem = $prodAsStrings[$i + 3];
        $preco = $prodAsStrings[$i + 4];
		
        // Declara um novo array
        $item = Array();

		// adiciona todos os itens ao novo array
        array_push($item, $nome);
        array_push($item, $categoria);
        array_push($item, $descricao);
        array_push($item, $imagem);
        array_push($item, $preco);

		// Adiciona todo o item ao array de produtosObjetos
        array_push($produtosObjetos, $item);
    }

  
Nesse caso, se você gostaria de melhorar esse código, seria interessante utilizar objetos e não apenas "arrays". Veja um exemplo:

    class Produto{
    	public $nome;
        public $categoria;
        public $descricao;
        public $imagem;
        public preco;
    }
  
    $produtosObjetos = Array();
    for ($i = 0; $i < sizeof($prodAsStrings); $i = $i + 5) {
    
        // Cria um novo produto 
        $p1 = new Produto();
        
        $p1->nome = $prodAsStrings[$i];
        $p1->categoria = $prodAsStrings[$i + 1];
        $p1->descricao = $prodAsStrings[$i + 2];
        $p1->imagem = $prodAsStrings[$i + 3];
        $p1->preco = $prodAsStrings[$i + 4];
		
		// Adiciona todo o item ao array de produtosObjetos
        array_push($produtosObjetos, $p1);
    }

  
Por fim, você poderá iterar sobre esse "array" de objetos e mostrá-los na tela de sua loja:

  <?php for ($i = 1; $i < sizeof($produtosObjetos); $i++) { ?>
	  <div class="col-md-6 card-deck mb-3 text-center">
      	<div class="card mb-4 shadow-sm">
        	<div style="text-align: center">
            	<img height="300" width="300" src="<?= $produtosObjetos[$i][3] ?>">
            </div>
            <div class="card-header">
            	<h4 class="my-0 font-weight-normal"><?= $produtosObjetos[$i][0] ?></h4>
            </div>
            <div class="card-body">
            	<h1 class="card-title pricing-card-title"><?= $produtosObjetos[$i][4] ?></h1>
            <div>
				<?= $produtosObjetos[$i][2] ?>
			</div>
				<button type="button" class="btn btn-lg btn-block btn-outline-primary">Comprar agora</button>
			</div>
		</div>
	</div>
   <?php } ?>
  
O código completo dessa aplicação você pode fazer download no Github:



Esse tutorial também está no nosso YouTube:



Nenhum comentário

Conta pra mim sua opinião!

Fale comigo