Download the PHP package obuchmann/odoo-jsonrpc without Composer

On this page you can find all versions of the php package obuchmann/odoo-jsonrpc. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package odoo-jsonrpc

Access Odoo via JsonRPC

Connect to odoo via the json-rpc api. If you are in a laravel project, this package registers a provider. But laravel is not required for this package.

Installation

You can install the package via composer:

The service provider will automatically register itself if you are in a laravel project.

You can publish the config file with:

Usage

Basic Usage

Laravel Usage

Fixed User ID for Performance

In scenarios where performance is critical and the Odoo user context is static (e.g., in some Dockerized enterprise deployments or for specific integration users), you can bypass repeated authentication calls by using a fixed User ID.

This is achieved by setting the ODOO_FIXED_USER_ID environment variable or the fixed_user_id key in the configuration file (config/odoo.php in Laravel projects).

How it works:

If fixed_user_id is set to a valid, positive integer, the library will skip the standard username/password authentication step (the common.authenticate RPC call to Odoo) and will use this provided User ID for all subsequent operations. This can reduce latency by avoiding an extra network request for authentication on each instantiation or connection attempt.

Configuration:

  1. Environment Variable:

  2. Configuration File (e.g., config/odoo.php for Laravel):

Important Considerations:

Laravel Models

Laravel Models are implemented with Attributes

Casts

Field type casting is a powerful feature that allows you to convert data between Odoo's native format (often strings, integers, or simple arrays) and specific PHP types or objects. This makes working with Odoo data in your PHP application more type-safe, convenient, and object-oriented. For instance, Odoo typically stores dates and times as strings (e.g., '2023-12-31 15:45:00'). With casting, these can be automatically converted to PHP \DateTime or \DateTimeImmutable objects when you read data, and back to Odoo's string format when you save data.

How Casting Works

Casting is handled by dedicated cast classes. To create a custom cast, you extend the Obuchmann\OdooJsonRpc\Odoo\Casts\Cast abstract class and implement three key methods:

  1. getType(): string: This method returns the fully qualified name of the PHP class that this cast is responsible for (e.g., \DateTime::class, App\ValueObjects\MyCustomType::class).
  2. cast($raw): This method takes the raw value from Odoo and converts it into an instance of the PHP type specified by getType().
  3. uncast($value): This method takes an instance of your PHP type and converts it back into a format that Odoo expects.

Global Cast Registration

Casts are registered globally using the static Odoo::registerCast() method.

Once a cast is registered for a specific PHP type (e.g., \DateTime::class), it will automatically be applied to any OdooModel property that is type-hinted with that PHP type.

Example: Using DateTime Casting

Let's say you have an Odoo model with a create_date field, and you've registered the DateTimeCast.

First, define your OdooModel in PHP:

Now, when you interact with this model:

If the create_date field in Odoo can be false (empty), ensure your PHP property is nullable (?\DateTime). The DateTimeCast provided will return null if the raw value from Odoo is false or an invalid date string. Similarly, if you set the property to null, it will be uncasted appropriately (typically to false for Odoo).

Creating Custom Casts

You can write custom casts for any data type by extending the Obuchmann\OdooJsonRpc\Odoo\Casts\Cast class. Here's the structure of the built-in DateTimeCast as an example:

This provides a robust way to handle specific data types and ensures that your PHP models work with rich PHP objects, while the library handles the conversion to and from Odoo's expected formats.

bash composer test


All versions of odoo-jsonrpc with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
guzzlehttp/guzzle Version ^7.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package obuchmann/odoo-jsonrpc contains the following files

Loading the files please wait ....