Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

glpi-project/php-library-glpi

Repository files navigation

GLPI API Client Library for PHP

GLPI banner

License Follow twitter Project Status: WIP Telegram Group Conventional Commits

GLPI (Gestionnaire Libre de Parc Informatique) is a free IT Asset Management, issue tracking system and service desk solution. This open source software is written in PHP.

It helps companies to manage their information system, since it's able to build an inventory of all the organization's assets and to manage administrative and financial tasks.

Table of Contents

Synopsis

This library specifically designed for PHP, features several functionalities common to all GLPI APIs, for example:

  • HTTP transport to APIs.
  • Error handling
  • Authentication
  • JSON parsing
  • Custom Item Types
  • Media download/upload
  • Batching.

You will be able to call to all the methods that belong to the GLPI REST API, for more information visit the project's website.

Build Status

Release channel Beta Channel
Travis build Travis build

Matrix

GLPI Version 9.1.1 9.1.2 9.1.3 9.1.5 9.1.6 9.2.0
GLPI API Client 1.x 1.x 1.x 1.x 1.x 1.x

Installation

You will need the following minimum dependencies to use the library (composer will automatic check for the first two):

  • PHP >= 5.6.0
  • Guzzle >= 6.3
  • GLPI >= 9.1.1
composer require glpi-project/php-library-glpi

Code examples

It's easy to implement, as you see in the following example:

// Instanciate the API client
$client = new Glpi\Api\Rest\Client('http://localhost/glpi/apirest.php/', new GuzzleHttp\Client());

// Authenticate
try {
   $client->initSessionByCredentials('glpi', 'glpi');
} catch (Exception $e) {
   echo $e->getMessage();
   die();
}

// The client handles the session token for you (app token not yet supported)

// do something
$itemHandler = new \Glpi\Api\Rest\ItemHandler($client);
$response = $itemHandler->getItem('User', 2);
$user = json_decode($response['body']);
echo "User name: " . $user->name . "\n";

Documentation

We maintain a detailed documentation of the project on the website.

Versioning

In order to provide transparency on our release cycle and to maintain backward compatibility, GLPI is maintained under the Semantic Versioning guidelines. We are committed to following and complying with the rules, the best we can.

See the tags section of our GitHub project for changelogs for each release version. Release announcement posts on the official Teclib' blog contain summaries of the most noteworthy changes made in each release.

Contact

For notices about major changes and general discussion of GLPI development, subscribe to the /r/glpi subreddit. You can also chat with us via IRC in #GLPI on freenode or @glpien on Telegram.

Contribute

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the Issues Dashboard.

Copying

  • Code: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPLv3).
  • Documentation: released under Attribution 4.0 International (CC BY 4.0).