A biblioteca Sheetsu PHP está disponível no Composer.
Você pode editar seu arquivo composer.json ou apenas pressionar este comando em seu terminal
composer require emilianozublena/sheetsu-php
Você precisa instanciar o objeto principal do Sheetsu e dar ao Sheetid, você pode encontrar esse URL no painel do Sheetsu. Lembre -se de usar o AutoLoad do Composer.
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId '
]); Se você tiver autenticação básica HTTP ativada para sua API, você deve passar key e secret aqui, como:
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
]);Se precisar, você pode reinicializar (ou inicializar) a biblioteca após a criação
# Initialize after creation
$ sheetsu = new Sheetsu ();
$ sheetsu -> initialize ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
])A biblioteca Sheetsu PHP vem com uma pequena implementação de um tipo de dados abstrato de coleção.
Os modelos são unidades de coleções (neste caso, cada modelo representa uma linha da folha fornecida).
Em vez de dar matrizes ao cliente Sheetsu (para operações da CRUD), você pode fazer algo assim:
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );Coleções e modelos são os 2 objetos que você receberá toda vez que você chama a API também.
Link para documentos
Para adicionar dados às planilhas do Google, envie uma matriz, uma matriz de matrizes ou, mais simplesmente, trabalhe com modelos ou coleções;)
# Adds single row from array
$ sheetsu -> create ([ ' name ' => ' John ' ]);
# Adds multiple rows from array
$ sheetsu -> create ([
[ ' name ' => ' John ' ],
[ ' name ' => ' Steve ' ]
]);
# Adds single row from Model
$ sheetsu -> create (Model:: create ([ ' name ' => ' John ' ]));
# Adds multiple rows from Collection
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );Após a chamada, retorna um objeto de resposta.
Link para documentos
Leia a folha inteira
$ response = $ sheetsu -> read ();
$ collection = $ response -> getCollection ();A função de leitura permite 2 parâmetros
limit - Número limite de resultadosoffset - Comece do N Primeiro Record # Get first two rows from sheet starting from the first row
$ response = $ sheetsu -> read ( 2 , 0 );
$ collection = $ response -> getCollection ();Link para documentos
Para obter linhas que correspondem aos critérios de pesquisa, passe uma matriz com critérios
# Get all rows where column 'id' is 'foo' and column 'value' is 'bar'
$ response = $ sheetsu -> search ([
' id ' => ' foo ' ,
' value ' => ' bar '
]);
$ collection = $ response -> getCollection ();
# Get all rows where column 'First name' is 'Peter' and column 'Score' is '42'
$ response = $ sheetsu -> search ([
' First name ' => ' Peter ' ,
' Score ' => ' 42 '
]);
$ collection = $ response -> getCollection ();
# Get first two row where column 'First name' is 'Peter',
# column 'Score' is '42' from sheet named "Sheet3"
$ response = $ sheetsu -> search ([
' First name ' => ' Peter ' ,
' Score ' => ' 42 '
], 2 , 0 );
$ collection = $ response -> getCollection ();
# Get first two row where column 'First name' is 'Peter',
# column 'Score' is '42' from sheet named "Sheet3"
# with ignore case
$ response = $ sheetsu -> search ([
' First name ' => ' Peter ' ,
' Score ' => ' 42 '
], 2 , 0 , true );
$ collection = $ response -> getCollection ();Link para documentos
Para atualizar as linhas (s), passe o nome da coluna e seu valor usado para encontrar linhas e uma matriz ou modelo com os dados a serem atualizados.
# Update all columns where 'name' is 'Peter' to have 'score' = 99 and 'last name' = 'Griffin'
$ model = Model:: create ([ ' score ' => ' 99 ' , ' last name ' => ' Griffin ' ]);
$ response = $ sheetsu -> update ( ' name ' , ' Peter ' , $ model ); Por padrão, a solicitação de patch é enviada, que está atualizando apenas valores que estão na coleção passada para o método. Para enviar solicitação de put, passe o 4º argumento sendo true . Leia mais sobre a diferença entre put e patch nos documentos de sheetsu.
Link para documentos
Para excluir a (s) linha (s), passe o nome da coluna e seu valor usado para encontrar linhas (s).
# Delete all rows where 'name' equals 'Peter'
$ response = $ sheetsu -> delete ( ' name ' , ' Peter ' );Se você precisar alterar a folha em que está trabalhando, pode fazê -lo usando a função da folha e passando o novo sheetsu ID
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )Você também pode encadear essa função com outras pessoas, como assim:
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )-> read ();Se você precisar usar toda a planilha, é fácil:
# Back to whole spreadsheet
$ sheetsu -> whole ()Você também pode encadear essa função com outras pessoas, como assim:
# Back to whole spreadsheet
$ sheetsu -> whole ()-> read ();A biblioteca Sheetsu PHP lida com a conexão através da classe de conexão. Esta classe usa o CLL para fazer conexões e usa a classe de resposta como retornos. O objeto de resposta é o responsável por fornecer as coleções, modelos ou erros (ou qualquer outra resposta da última chamada), o manuseio de erros também é feito através do objeto de resposta (a resposta usa a classe ErrorHandler para abstrair o bloco de tentativa/captura e está fortemente acoplado à classe PHP Errorexception)
$ response = $ sheetsu -> read ();
#if you need only the error messages, you can get the errors like this
$ errors = $ response -> getErrors ();
$ firstError = $ response -> getError ();
#if you need to get the exceptions thrown, do it like this.
$ exceptions = $ response -> getExceptions ();
$ firstException = $ response -> getException ();Esta biblioteca possui acima de 97% da cobertura de código. Alguns dos testes não estão usando objetos simulados, isso está em nossa lista de tarefas e espero que o faremos. Os testes estão preparados para serem usados com phpunit e o conjunto de testes é configurado via XML, então você só precisar
./vendor/bin/phpunit