PHPackages                             heydon/redback - 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. heydon/redback

ActiveLibrary

heydon/redback
==============

PHP Connector for the RocketSoftware RedBack Application

v1.0.4(11y ago)3251[1 issues](https://github.com/gheydon/redback/issues)1MITPHPPHP &gt;=5.3.0

Since Jun 4Pushed 11y ago3 watchersCompare

[ Source](https://github.com/gheydon/redback)[ Packagist](https://packagist.org/packages/heydon/redback)[ Docs](https://github.com/gheydon/redback)[ RSS](/packages/heydon-redback/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (8)Used By (1)

U2 Web Development Environment (RedBack) for PHP [![Build Status](https://camo.githubusercontent.com/593056aa1fe151f33f0a44ee8b5581707af1c2e269f0c6737b81f8c6e803d170/68747470733a2f2f7472617669732d63692e6f72672f67686579646f6e2f7265646261636b2e706e67)](https://travis-ci.org/gheydon/redback)
=================================================================================================================================================================================================================================================================================================

[](#u2-web-development-environment-redback-for-php-)

Allows native communitcation with RocketSoftware's U2 database Enviroments using the U2 Web Development Environment, and also providing methods which allow PHP to make greater use of the native U2 dynamic arrays.

Compatibility
-------------

[](#compatibility)

### U2 Web Development Environment (RedBack) 4

[](#u2-web-development-environment-redback-4)

Full support for Web DE 4.2.16+ in native PHP.

### U2 Web Development Environment (RedBack) 5

[](#u2-web-development-environment-redback-5)

Currently not supported. This is being currently worked on, and any support will be much appreciated.

The major problem with version 5 is that it is no longer running on the old Redback Scheduler, but instead running over UniObjects, so to talk to the the U2 Web DE we need to be able to talk UniObjects. I have started decoding the protocole, and starting an implementation a functioning PHP version, but this will take time.

However because I needed to build the uarray libraries to work with U2 Dynamic Arrays the actual handling of the raw data is almost done. There are areas which will need to be improved, such needing to be able to handle the internal data formats like dates and numbers which will mean that I will need to implement OCONV and ICONV methods to the uArray object.

Installation
------------

[](#installation)

Installation via [composer](http://getcomposer.com) is the only method supported at this stage. Edit your composer.json to add the following.

```
{
    "require": {
        // ...
        "heydon/redback": "1.0.x"
    }
}
```

Usage
-----

[](#usage)

### Initilising the RedBack object

[](#initilising-the-redback-object)

To create a new uObject (RedBack connection object) which will allow access to the u2 Web Development Enviroment.

```
$object = new RocketSoftware\u2\RedBack\uObject();
```

### Connecting to the Web DE Server

[](#connecting-to-the-web-de-server)

To connect to the U2 Web DE server you will require the connection object for [RedBack 4](https://github.com/gheydon/redback4). Once this is install you will be able to use the following to create the connection.

```
$object->connect('RedBack4://127.0.0.1:8401');
```

### Opening a Web DE Object

[](#opening-a-web-de-object)

To open an object use the following.

```
$object->open('EXMOD:Employee');
```

### Authentication

[](#authentication)

To authenticate your object against the server, a user and password can be passed while opening.

```
$object->open('EXMOD:Employee', 'rbadmin', 'redback');
```

### Quick Open

[](#quick-open)

All of the above can be put together for connecting quickly.

```
$object = new RocketSoftware\u2\RedBack\uObject('RedBack4://127.0.0.1:8401', 'EXMOD:Employee', 'rbadmin', 'redback');
```

### Setting a property

[](#setting-a-property)

You can set properties used which have been configured in the RBO.

```
$object->Name = 'Test name';
```

where name is the property "Name". If the property contains a '.' then to access the property using the uObject::set() method.

### Getting the value of a property

[](#getting-the-value-of-a-property)

The same as setting a property you can also do the following:-

```
$name = $object->Name;
```

As with settings properties with a '.' in the property name you can use the uObject::get() method.

### Calling a method

[](#calling-a-method)

Calling methods the same as the calling methods on the standard PHP object.

```
$object->ReadData();
```

However there are also special methods, "Select" and "DispPage" which are on uQuery objects. in this case the uObject will return a uQuery object.

```
$rs = $object->Select();
```

### Using the uQuery object

[](#using-the-uquery-object)

The uQuery object is a standard PHP iterator and can be used with foreach() and other methods to use iterators.

```
foreach ($rs as $key => $item) {
  echo "FirstName: {$item['FIRST.NAME']}";
}
```

uQuery doesn't really work like a normal recordset where each record is retreived 1 at a time, but instead works by downloading an entire page in at a time. The page size is determinded by the 'items\_per\_page' which is set in the RBO and can also be set at runtime, before the initial select is called.

Given this to allow paging via the object you can use the `::getPage()` to get the page of data that you want.

```
$page = $object->Select()->getPage(2);
foreach ($page as $key => $item) {
  echo "FirstName: {$item['FIRST.NAME']}";
}
```

As you can see from the example above you can chain the getPage() command to get the additional information.

\##Symfony To use Redback in symfony you can create the RedBack object as a service, which can then be access.

```
services:
  redback:
    class: RocketSoftware\u2\RedBack\uObject
    arguments: ["RedBack4://127.0.0.1:8401", NULL, NULL, NULL, FALSE]
    scope: prototype
```

To get the RedBack object in a controler do the following.

```
    $uObject = $this->get('redback');
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~114 days

Recently: every ~171 days

Total

7

Last Release

4043d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3139a7bcdce887a3f2714aeb0529321ff16c0702971f5a07c438185be667c7f0?d=identicon)[gheydon](/maintainers/gheydon)

---

Top Contributors

[![gheydon](https://avatars.githubusercontent.com/u/70891?v=4)](https://github.com/gheydon "gheydon (240 commits)")

---

Tags

RedBackRocketSoftwareu2

### Embed Badge

![Health badge](/badges/heydon-redback/health.svg)

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

PHPackages © 2026

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