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

BCLibraries/php-alma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Important

Archived May 2024. No longer used or open for changes.

php-alma

DEPRECATED

This package uses the deprecated Alma SOAP API and has very limited support. For new projects, use the php-alma-client package.

Description

Utilities for interacting with Alma Web Services in PHP. Currently read access is provided for three SOAP service: User Info services, Course services, and Holdings services.

Installation

php-alma uses the Composer dependency management system. To install

  1. If you haven't already, install composer.phar. To install composer.phar in the /usr/bin directory on Linux/OS X:

     sudo curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin
    
  2. Create a composer.json file. The example below will install php-alma:

    { "name": "your-org/your-project", "description": "Describe your project", "license": "MIT", "repositories": [ { "type": "vcs", "url": "https://github.com/BCLibraries/php-alma" } ], "require": { "bclibraries/php-alma": "master", } }

  3. Install using composer.phar:

     php composer.phar install
    

Composer will load all the required dependencies and create an vendor/autoload.php file to handle autoloading classes.

Connecting

The SOAP services (courses and users) have an initialization step:

use BCLib\Alma\AlmaServices;

require_once __DIR__.'/vendor/autoload.php';

$soap_user = ''; // e.g. 'webservice'
$soap_institution = ''; // e.g. '01BC_INST'
$soap_pass = '';

AlmaServices::initialize($soap_user, $soap_pass, $soap_institution);

Holding services use the REST client and does not require this step.

Users

To load a user:

$user_services = AlmaServices::userInfoServices();

if ($user = $user_services->getUser('florinb')) {
    
    echo $user->last_name . ", " . $user->first_name . $user->middle_name . "\n";
    echo $user->email . "\n";
    
    if ($user->is_active) {
        echo "User is active.\n";
    } else {
        echo "User is not active.\n";
    }

    //Identifiers
    foreach ($user->identifiers as $id) {
        echo "\t" . $id->code . " is " . $id->value . "\n";
    }
    
    // Blocks
    foreach ($user->blocks as $block) {
        echo "\t" . $block->code . " " . $block->_type . " " . $block->status . " ";
        echo $block->creation_date . " " . $block->modification_date . "\n";
    }
}

See user-demo.php for a full example.

Courses

To load a course:

$course_services = AlmaServices::courseServices();

if ($courses = $course_services->getCourses('AD100', '03', 0, 10)) {
    foreach ($courses as $course) {

        echo $course->identifier . "\n";
        echo $course->name . "\n";

        foreach ($course->complete_lists as $list) {
            echo "\t" . $list->identifier . "\n";
            echo "\t" . $list->name . "\n";

            foreach ($list->citations as $citation) {
                echo "\t\t" . $citation->title . "\n";
                echo "\t\t" . $citation->author . "\n";
                echo "\t\t" . $citation->open_url . "\n";
            }
        }
    }
} else {
    echo $course_services->lastError()->message;
}

Holdings

Holdings uses REST services.

// Your Alma apikey.
$apikey = 'YOURAPIKEY';

// The base URL of your Alma install.
$base_url = 'https://api-na.hosted.exlibrisgroup.com/almaws/';

$client = \BCLib\Alma\AlmaServices::bibServices($apikey, $base_url);

// Use a valid MMS ID from your collection.
$mms = '99103130010001021';

$holding_result = $client->listHoldings($mms);
foreach ($holding_result->holdings as $holding) {
    echo $holding->call_number . "\n";
}

$first_holding_id = $holding_result->holdings[0]->holding_id;
$item_result = $client->listItems($first_holding_id, $mms);
foreach ($item_result->items as $item) {
    echo "{$item->barcode} is at {$item->temp_library_desc}\n";
}

License

See MIT-LICENSE

About

PHP tools for working with the Alma ILS.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages