La Biblioteca PHP de Sheetsu está disponible a través del compositor.
Puede editar su archivo composer.json o simplemente presionar este comando en su terminal
composer require emilianozublena/sheetsu-php
Debe instanciar el objeto de sábanas de las sábanas y darle a los platos que puede encontrar esta URL en el tablero de sábanas. Recuerde usar el compositor Autoload.
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId '
]); Si tiene la autenticación básica HTTP activada para su API, debe pasar key y secret aquí, como:
require ( ' vendor/autoload.php ' );
use Sheetsu Sheetsu ;
$ sheetsu = new Sheetsu ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
]);Si lo necesita, puede reinicializar (o inicializar) la biblioteca después de la creación
# Initialize after creation
$ sheetsu = new Sheetsu ();
$ sheetsu -> initialize ([
' sheetId ' => ' sheetId ' ,
' key ' => ' key ' ,
' secret ' => ' secret '
])La biblioteca PHP Sheetsu viene con una pequeña implementación de un tipo de datos de resumen de colección.
Los modelos son unidades de colecciones (en este caso, cada modelo representa una fila de la hoja dada).
En lugar de dar matrices al cliente de Sheetsu (para operaciones CRUD), puede hacer algo como esto:
$ collection = new Collection ();
$ collection -> addMultiple ([
Model:: create ([ ' name ' => ' John ' ]),
Model:: create ([ ' name ' => ' Steve ' ])
]);
$ response = $ sheetsu -> create ( $ collection );Las colecciones y modelos son los 2 objetos que también obtendrá cada vez que llame a la API.
Enlace a los documentos
Para agregar datos a las hojas de cálculo de Google, envíe una matriz, una matriz de matrices, o más simplemente, trabaje con modelos o colecciones;)
# 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 );Después de hacer la llamada, devuelve un objeto de respuesta.
Enlace a los documentos
Lea la hoja completa
$ response = $ sheetsu -> read ();
$ collection = $ response -> getCollection ();La función de lectura permite 2 parámetros
limit : límite número de resultadosoffset - Comience desde N First Record # Get first two rows from sheet starting from the first row
$ response = $ sheetsu -> read ( 2 , 0 );
$ collection = $ response -> getCollection ();Enlace a los documentos
Para obtener filas que coincidan con los criterios de búsqueda, pase una matriz con criterios
# 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 ();Enlace a los documentos
Para actualizar las filas, pase el nombre de la columna y su valor que se utiliza para encontrar filas y una matriz o modelo con los datos para actualizar.
# 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 defecto, se envía una solicitud de parche, que está actualizando solo los valores que están en la colección pasada al método. Para enviar la solicitud de Put, pase el cuarto argumento que es true . Lea más sobre la diferencia entre Put y Patch en Docsu Sheetsu.
Enlace a los documentos
Para eliminar la fila (s), pase el nombre de la columna y su valor que se usa para encontrar filas.
# Delete all rows where 'name' equals 'Peter'
$ response = $ sheetsu -> delete ( ' name ' , ' Peter ' );Si necesita cambiar la hoja en la que está trabajando, puede hacerlo usando la función de la hoja y pasando la nueva identificación
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )También puede encadenar esta función con otros, como así:
# Change active sheetsu to 'THIS'
$ sheetsu -> sheet ( ' THIS ' )-> read ();Si necesita usar toda la hoja de cálculo es fácil:
# Back to whole spreadsheet
$ sheetsu -> whole ()También puede encadenar esta función con otros, como así:
# Back to whole spreadsheet
$ sheetsu -> whole ()-> read ();La biblioteca PHP Sheetsu maneja la conexión a través de la clase de conexión. Esta clase usa Curl para hacer conexiones y usa la clase de respuesta como devoluciones. El objeto de respuesta es el responsable de dar a las colecciones, modelos o errores (o cualquier otra respuesta de la última llamada) El manejo de errores también se realiza a través del objeto de respuesta (la respuesta usa la clase ErrorHandler para abstraer el bloque de try/captura y está estrechamente acoplado a la clase de PHP de 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 tiene más del 97% de la cobertura del código. Algunas de las pruebas no están utilizando objetos simulados, esto está en nuestra lista de tareas pendientes y espero que lo hagamos así. Las pruebas están preparadas para usarse con Phpunit y el conjunto de pruebas se configura a través de XML, por lo que solo necesitará ejecutar phpunit en su versión bifurcada de este repositorio así:
./vendor/bin/phpunit