[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 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:
Post a Comment