Skip to content

Latest commit

 

History

History
104 lines (71 loc) · 2.46 KB

README.md

File metadata and controls

104 lines (71 loc) · 2.46 KB

InterSystems Caché provider for Laravel (ODBC)

Laracaché

Laracaché is an InterSystems Caché database driver package for Laravel. Laracaché is an extension of Illuminate/Database that uses the php-odbc extension to communicate with Caché. This package plays well with Eloquent.

Quick Installation

PHP >= 8.2 and Laravel >= 11

composer require jeandormehl/laracache

For Laravel 9 require 2.2.1

Environment variables

Modify your .env file to look similar to this.

DB_CONNECTION=isc
DB_WIN_DSN=
DB_UNIX_DRIVER=/usr/local/cache/2018/bin/libcacheodbcur64.so
DB_HOST=127.0.0.1
DB_PORT=1972
DB_DATABASE=LARAVEL
DB_USERNAME=_SYSTEM
DB_PASSWORD=SYS

Configuration

Publish a configuration file by running the following Artisan command.

php artisan vendor:publish --tag=isc

Setup

Create this file /etc/odbc.ini

[ODBC Data Sources]
cache=cache

[cache]
Driver                = /usr/local/cache/2018/bin/libcacheodbcur64.so
Description           = InterSystems Cache ODBC Connection
Protocol              = TCP
Query Timeout         = 1
Static Cursors        = 0
Authentication Method = 0

Install these extra packages and extract the Caché driver file.

ODBC-2018.1.7.721.0-lnxubuntux64.tar.gz

# Extra packages
apt update && apt install -y php8.4-odbc unixodbc libodbccr2 odbcinst

# Create this folder
mkdir -p /usr/local/cache/2018

# Extract the driver to the folder above
tar xvzf ODBC-2018.1.7.721.0-lnxubuntux64.tar.gz -C /usr/local/cache/2018

# Install Caché Driver
cd /usr/local/cache/2018 && ./ODBCinstall 

odbcinst -i -s -f /etc/odbc.ini 

# Binds
ln -s /usr/lib/x86_64-linux-gnu/libodbccr.so.2.0.0 /etc/libodbccr.so

Contribute

You can run this project on VSCODE with Remote Container. Make sure you will use internal VSCODE terminal (inside running container).

composer install
composer test
composer test:coverage

License

The MIT License (MIT). Please see License File for more information.