exchangecore / yii2-progress-driver
A Yii2 driver for Progress OpenEdge
Installs: 79
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=5.4.0
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-10-25 04:38:06 UTC
README
This library is licensed under the MIT License.
Purpose
The purpose of this library is to allow Yii2 to leverage Progress OpenEdge databases. Each version of Progress OpenEdge may receive it's own tagged version in the repository if appropriate which will directly correspond to the version of Progress OpenEdge driver being used.
Installing & Setup
To install this library simply add the appropriate branch to your composer.json file in your yii application and run the
composer update
command. Your composer.json require section might look something like this:
"require": {
"exchangecore/yii2-progress-driver": "*"
},
Once composer has added the library you can configure your database the same as you would other yii databases except you
will now need to use the modified connection class. Here is a sample of connecting to an ODBC DSN on windows that is called
MyProgressDb
:
'db' => [
'class' => 'exchangecore\yii2\progress\driver\db\Connection',
'driverName' => 'progress',
'dsn' => 'odbc:MyProgressDb',
'username' => 'testuser',
'password' => 'testpass',
];
Usage Notes
Handling Primary Keys
Because Progress does not use primary keys as constraints or unique identifiers the driver makes a best guess at what might actually be a primary key constraint and what probably isn't. It does this by checking for a key marked as primary and unique; if it is primary but not unique it will not be treated as a primary key. Because it's possible that not every table will have a primary key you may need to add one manually to your model in order to leverage certain Yii functionality. Additionally, if you find the driver has inaccurately determined a primary key you may need to set it manually. Example of manually setting a primary key in a model:
/**
* @inheritdoc
*/
public static function primaryKey()
{
return ['usr_userid'];
}