La bibliothèque Sheetsu PHP est disponible via le compositeur.
Vous pouvez modifier votre fichier composer.json ou simplement appuyer sur cette commande dans votre terminal
composer require emilianozublena/sheetsu-php
Vous devez instancier l'objet SheetSu principal et donner au sheed que vous pouvez trouver cette URL sur le tableau de bord Sheetsu. N'oubliez pas d'utiliser le compositeur automatique du compositeur.
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId '
]); Si vous avez activé l'authentification de base HTTP pour votre API, vous devez passer key et secret ici, comme:
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
]);Si vous en avez besoin, vous pouvez réinitialiser (ou initialiser) la bibliothèque après la création
# Initialize after creation
$ sheetsu = new Sheetsu ();
$ sheetsu -> initialize ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
])La bibliothèque Sheetsu PHP est livrée avec une petite implémentation d'un type de données abstrait de collecte.
Les modèles sont des unités de collections (dans ce cas, chaque modèle représente une ligne de la feuille donnée).
Au lieu de donner des tableaux au client Sheetsu (pour les opérations de crud), vous pouvez faire quelque chose comme ceci:
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );Les collections et les modèles sont les 2 objets que vous obtiendrez à chaque fois que vous appelez l'API.
Lien vers les documents
Pour ajouter des données aux feuilles de calcul Google, envoyez un tableau, un tableau de tableaux, ou plus simplement, travaillez avec des modèles ou des collections;)
# 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 );Une fois l'appel passé, renvoie un objet de réponse.
Lien vers les documents
Lisez la feuille entière
$ response = $ sheetsu -> read ();
$ collection = $ response -> getCollection ();La fonction de lecture permet 2 paramètres
limit - Limite Nombre de résultatsoffset - Commencez à partir du premier enregistrement # Get first two rows from sheet starting from the first row
$ response = $ sheetsu -> read ( 2 , 0 );
$ collection = $ response -> getCollection ();Lien vers les documents
Pour obtenir des lignes qui correspondent aux critères de recherche, passez un tableau avec des critères
# 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 ();Lien vers les documents
Pour mettre à jour les lignes, passer le nom de la colonne et sa valeur qui est utilisée pour trouver des lignes et un tableau ou un modèle avec les données à mettre à jour.
# 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 ); Par défaut, la demande de patch est envoyée, qui met à jour uniquement les valeurs qui sont dans la collection transmise à la méthode. Pour envoyer la demande de put, passez le 4ème argument étant true . En savoir plus sur la différence entre Put et Patch dans Sheetsu Docs.
Lien vers les documents
Pour supprimer les lignes, passez le nom de la colonne et sa valeur qui est utilisée pour trouver des lignes.
# Delete all rows where 'name' equals 'Peter'
$ response = $ sheetsu -> delete ( ' name ' , ' Peter ' );Si vous devez modifier la feuille sur laquelle vous travaillez, vous pouvez le faire en utilisant la fonction de feuille et en passant le nouvel ID SheetSu
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )Vous pouvez également enchaîner cette fonction avec d'autres, comme ainsi:
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )-> read ();Si vous avez besoin d'utiliser toute la feuille de calcul est facile:
# Back to whole spreadsheet
$ sheetsu -> whole ()Vous pouvez également enchaîner cette fonction avec d'autres, comme ainsi:
# Back to whole spreadsheet
$ sheetsu -> whole ()-> read ();La bibliothèque Sheetsu PHP gère la connexion via la classe de connexion. Cette classe utilise Curl pour établir des connexions et utilise la classe de réponse comme retour. L'objet de réponse est celui chargé de donner aux collections, aux modèles ou aux erreurs (ou à toute autre réponse du dernier appel), la gestion des erreurs est également effectuée via l'objet de réponse (la réponse utilise la classe ErrorHandler pour résumer le bloc Try / Catch et est étroitement couplé à la 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 ();Cette bibliothèque a plus de 97% de la couverture du code. Certains tests n'utilisent pas d'objets simulés, c'est dans notre liste de tâches et j'espère que nous le ferons ainsi. Les tests sont préparés pour être utilisés avec PHPUnit et la suite de tests est configurée via XML, vous n'aurez donc qu'à exécuter PhpUnit dans votre version fourchue de ce référentiel comme:
./vendor/bin/phpunit