# Hyperwave API Functions

## Introduction

Hyperwave has been developed at » IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at » http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

> Note: This extension has been moved to the » PECL repository and is no longer bundled with PHP as of PHP 5.2.0.

## Requirements

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

## Installation

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

## Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

## Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Hyperwave API configuration options
Name | Default | Changeable | Changelog
--- | --- | --- | ---
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |

For further details and definitions of the PHP_INI_* constants, see the php.ini directives.

## Resource Types

This extension has no resource types defined.

## Predefined Constants

This extension has no constants defined.

## Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

- HW_API
- HW_API_Object
- HW_API_Attribute
- HW_API_Error
- HW_API_Content
- HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

- objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".
- parentIdentifier The name or id of an object which is considered to be a parent.
- object An instance of class HW_API_Object.
- parameters An instance of class HW_API_Object.
- version The version of an object.
- mode An integer value determine the way an operation is executed.
- attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.
- objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

> Note: Methods returning boolean can return `TRUE`, `FALSE` or HW_API_Error object.

## Table of Contents

- hw_api_attribute->key — Returns key of the attribute
- hw_api_attribute->langdepvalue — Returns value for a given language
- hw_api_attribute->value — Returns value of the attribute
- hw_api_attribute->values — Returns all values of the attribute
- hw_api_attribute — Creates instance of class hw_api_attribute
- hw_api->checkin — Checks in an object
- hw_api->checkout — Checks out an object
- hw_api->children — Returns children of an object
- hw_api_content->mimetype — Returns mimetype
- hw_api_content->read — Read content
- hw_api->content — Returns content of an object
- hw_api->copy — Copies physically
- hw_api->dbstat — Returns statistics about database server
- hw_api->dcstat — Returns statistics about document cache server
- hw_api->dstanchors — Returns a list of all destination anchors
- hw_api->dstofsrcanchor — Returns destination of a source anchor
- hw_api_error->count — Returns number of reasons
- hw_api_error->reason — Returns reason of error
- hw_api->find — Search for objects
- hw_api->ftstat — Returns statistics about fulltext server
- hwapi_hgcsp — Returns object of class hw_api
- hw_api->hwstat — Returns statistics about Hyperwave server
- hw_api->identify — Log into Hyperwave Server
- hw_api->info — Returns information about server configuration
- hw_api->insert — Inserts a new object
- hw_api->insertanchor — Inserts a new object of type anchor
- hw_api->insertcollection — Inserts a new object of type collection
- hw_api->insertdocument — Inserts a new object of type document
- hw_api->link — Creates a link to an object
- hw_api->lock — Locks an object
- hw_api->move — Moves object between collections
- hw_api_content — Create new instance of class hw_api_content
- hw_api_object->assign — Clones object
- hw_api_object->attreditable — Checks whether an attribute is editable
- hw_api_object->count — Returns number of attributes
- hw_api_object->insert — Inserts new attribute
- hw_api_object — Creates a new instance of class hw_api_object
- hw_api_object->remove — Removes attribute
- hw_api_object->title — Returns the title attribute
- hw_api_object->value — Returns value of attribute
- hw_api->object — Retrieve attribute information
- hw_api->objectbyanchor — Returns the object an anchor belongs to
- hw_api->parents — Returns parents of an object
- hw_api_reason->description — Returns description of reason
- hw_api_reason->type — Returns type of reason
- hw_api->remove — Delete an object
- hw_api->replace — Replaces an object
- hw_api->setcommittedversion — Commits version other than last version
- hw_api->srcanchors — Returns a list of all source anchors
- hw_api->srcsofdst — Returns source of a destination object
- hw_api->unlock — Unlocks a locked object
- hw_api->user — Returns the own user object
- hw_api->userlist — Returns a list of all logged in users