PHPackages                             gurwinderantal/crs - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. gurwinderantal/crs

ActiveLibrary[HTTP &amp; Networking](/categories/http)

gurwinderantal/crs
==================

A PHP library to connect to SynXis/Windsurfer CRS.

1221PHP

Since Aug 7Pushed 7y ago1 watchersCompare

[ Source](https://github.com/gurwinderantal/crs)[ Packagist](https://packagist.org/packages/gurwinderantal/crs)[ RSS](/packages/gurwinderantal-crs/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

CRS PHP Connector
=================

[](#crs-php-connector)

This package provides methods to connect to SynXis and Windsurfer central reservation systems (CRS) by means of a SOAP API. It is currently under development and not ready for use just yet.

Getting Started
---------------

[](#getting-started)

### Prerequisites

[](#prerequisites)

This package depends on certain operators that are only available in **PHP 7.0 or later**.

It also uses PHP's SOAP extension to connect to SOAP APIs. Please ensure that you have the **PHP SOAP** extension installed.

You can look for the SOAP extension in your phpinfo to see if it is already installed.

```
$ php -i | grep -i soap

```

If you don't see it, install it as follows (Ubuntu/Debian):

```
$ sudo apt-get install php-soap

```

A server restart may be required after installation.

### Installation

[](#installation)

```
composer require gurwinderantal/crs

```

### Usage

[](#usage)

This library is currently able to connect to SynXis and Windsurfer central reservation systems.

Build an array with all the credentials provided by your CRS provider. This will be used in the SOAP request header.

```
$credentials = [
    'username'   => 'MyUsername',
    'password'   => 'MyPassword',
];

```

The `username` and `password` keys *must* be present in your credential array, or else trying to instantiate a connector class will throw an exception. Other keys (such as `systemId`) are optional but may lead to incorrect results. Follow your CRS provider's documentation carefully.

Instantiate a connector class for the CRS you want:

```
$wsdl = 'https://example.path/to/Service.asmx?WSDL';
$synxis_connector = new SynxisConnector($wsdl, $credentials);
$windsurfer_connector = new WindsurferConnector($wsdl, $credentials);

```

Call the required method:

```
$response = $connector->getFunctions();

```

Available methods are:

1. **getFunctions**: Gets a list of available methods for the CRS service.
2. **checkAvailability**: Checks availability based on the parameters provided. All parameters must be put in a single array. The array keys must match the SOAP request's XML request exactly. Refer to your service's WSDL for available attributes. For example: ```
    $params = [
        'ID'           => 'xx',
        'ID_Context'   => 'Open Hospitality',
        'Code'         => 'xxxx',
        'RatePlanCode' => 'MYRATECODE',
        'HotelCode'    => 'MYHOTELCODE',
        'Start'        => '2018-06-03',
        'End'          => '2018-06-07',
        'Quantity'     => 1,
        'Count'        => [
            'Child' => 0,
            'Adult' => 2,
        ],
    ];

    ```

    If multiple elements with the same attributes are allowed (such as `count` in the above example), make it an array with different keys. A list of expected keys will be provided in the documentation once there is a stable release for this package.
3. **createReservation**
4. **modifyReservation**
5. **cancelReservation**

Response objects in most cases will be returned as a single object containing attributes, arrays or references to other objects. The response object will be structured as per the response XML of the corresponding SOAP request. For example, to get the name of the hotel you requested availability for:

```
$hotelName = $response->RoomStays->RoomStay->BasicPropertyInfo->HotelName;

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 65.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e80349672256146da26f41937e222ff965dd5439639c684f1283633161a87b2?d=identicon)[gurwinderantal](/maintainers/gurwinderantal)

---

Top Contributors

[![gurwinderantal](https://avatars.githubusercontent.com/u/26553730?v=4)](https://github.com/gurwinderantal "gurwinderantal (74 commits)")[![khiminrm-lemberg](https://avatars.githubusercontent.com/u/27729821?v=4)](https://github.com/khiminrm-lemberg "khiminrm-lemberg (39 commits)")

---

Tags

composercrsphp7synxiswindsurfer

### Embed Badge

![Health badge](/badges/gurwinderantal-crs/health.svg)

```
[![Health](https://phpackages.com/badges/gurwinderantal-crs/health.svg)](https://phpackages.com/packages/gurwinderantal-crs)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
