PHPackages                             ziack/zoho-crm-orm - 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. [Database &amp; ORM](/categories/database)
4. /
5. ziack/zoho-crm-orm

ActiveLibrary[Database &amp; ORM](/categories/database)

ziack/zoho-crm-orm
==================

An ORM like package used to manipulate data from your Zoho CRM Account through the API.

1.6(5y ago)059PHPPHP &gt;=5.5

Since Apr 25Pushed 5y ago2 watchersCompare

[ Source](https://github.com/jloracudris/zoho-crm-orm)[ Packagist](https://packagist.org/packages/ziack/zoho-crm-orm)[ Docs](http://mouf-php.com)[ RSS](/packages/ziack-zoho-crm-orm/feed)WikiDiscussions 1.1 Synced today

READMEChangelog (5)Dependencies (6)Versions (7)Used By (0)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/79ff5ceae139b5be4e288b21ed2d78f1238ea259d0902fa5ff37ac874f82810a/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f576162656c2f7a6f686f2d63726d2d6f726d2f6261646765732f7175616c6974792d73636f72652e706e673f623d312e31)](https://scrutinizer-ci.com/g/Wabel/zoho-crm-orm/?branch=1.1)[![Build Status](https://camo.githubusercontent.com/1b13a42b99e645e7d0d59f452327f3724b5e98a76e5402dd452742e65efbe648/68747470733a2f2f7472617669732d63692e6f72672f576162656c2f7a6f686f2d63726d2d6f726d2e7376673f6272616e63683d312e31)](https://travis-ci.org/Wabel/zoho-crm-orm)[![Coverage Status](https://camo.githubusercontent.com/d613f3f13c3ede97ea4a45cc589b3e008aeaf54fe6eef924b85a202efeb10ec4/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f576162656c2f7a6f686f2d63726d2d6f726d2f62616467652e7376673f6272616e63683d312e31)](https://coveralls.io/r/Wabel/zoho-crm-orm?branch=1.1)

Wabel's Zoho-CRM ORM
====================

[](#wabels-zoho-crm-orm)

Heavily forked from [mctekk's work](https://github.com/mctekk/zohocrm)

What is this?
-------------

[](#what-is-this)

This project is a PHP connector to Zoho CRM. Use this connector to access ZohoCRM data from your PHP application.

Who is it different from other connectors?
------------------------------------------

[](#who-is-it-different-from-other-connectors)

Unlike other Zoho CRM clients, the Zoho-CRM ORM uses a **code generator** to generate Beans and DAOs to easily access Zoho objects from PHP.

Beans and DAOs?
---------------

[](#beans-and-daos)

A small bit of code is better than a long phrase, here you go with a sample:

```
use \Wabel\Zoho\CRM\ZohoClient;

// The ZohoClient class is the low level class used to access Zoho.
$zohoClient = new ZohoClient($zohoAuthToken);

// Use the "DAO" class to write to some module of Zoho.
// Each module (even custom ones) has its own class.
$contactZohoDao = new ContactZohoDao($zohoClient);

// For each DAO, there is a bean associated.
$contact = new Contact();
$contact->setLastName("Doe");
$contact->setFirstName("John");

// Use the "save" method to save the bean.
$contactDao->save($contact);

// Use the "searchRecords" method to fetch data from Zoho.
$records = $contactDao->searchRecords("(Last Name:FooBar)");
foreach ($records as $record) {
    // Each record is a "Contact" object.
    echo $record->getLastName();
}
```

What you must always remember:

- **Beans** are used to map records in Zoho. There is one class per Zoho module
- **DAOs** are used to send beans to Zoho. There is one DAO per Zoho module

But how do I generate Beans and DAOs?
-------------------------------------

[](#but-how-do-i-generate-beans-and-daos)

There are several techniques.

Using pure PHP code:

```
use \Wabel\Zoho\CRM\ZohoClient;

// The ZohoClient class is the low level class used to access Zoho.
$zohoClient = new ZohoClient($zohoAuthToken);

// The EntitiesGeneratorService class is in charge of generating Beans and DAOs.
$entitiesGenerator = new EntitiesGeneratorService($client);

// The target directory we will write into.
$directory = __DIR__.'/src/TestNamespace/';
// The namespace for the beans and DAOs.
$namespace = 'TestNamespace';
// That returns an array containing each created Dao by using the fully qualified class name
$generator->generateAll($directory, $namespace);
```

Setting up unit tests
---------------------

[](#setting-up-unit-tests)

Interested in contributing? You can easily set up the unit tests environment:

- copy the `phpunit.xml.dist` file into `phpunit.xml`
- change the stored `auth_token`
- run the tests: `vendor/bin/phpunit`

Troubleshooting
---------------

[](#troubleshooting)

- I'm saving a bean (using the `save` method of the DAO) and searching for it afterwards (using `searchRecords`). The bean is not returned.
    This is a Zoho issue. Zoho takes about one minute to index the records you insert. So you must wait about one minute before the Zoho bean you saved will be findable using the `searchRecords` method.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

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

###  Release Activity

Cadence

Every ~186 days

Recently: every ~140 days

Total

7

Last Release

2186d ago

PHP version history (2 changes)1.0.x-devPHP &gt;=5.4

1.2PHP &gt;=5.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/9c8178d7beaf431fc71b974b86b36d52a735ab8f62100829c04d253974a4419a?d=identicon)[Ziack](/maintainers/Ziack)

---

Top Contributors

[![moufmouf](https://avatars.githubusercontent.com/u/1290952?v=4)](https://github.com/moufmouf "moufmouf (65 commits)")[![WizMik](https://avatars.githubusercontent.com/u/5702056?v=4)](https://github.com/WizMik "WizMik (27 commits)")[![jloracudris](https://avatars.githubusercontent.com/u/17204647?v=4)](https://github.com/jloracudris "jloracudris (8 commits)")[![rbergDrox](https://avatars.githubusercontent.com/u/11984931?v=4)](https://github.com/rbergDrox "rbergDrox (7 commits)")[![ZiackGlobant](https://avatars.githubusercontent.com/u/43887276?v=4)](https://github.com/ZiackGlobant "ZiackGlobant (3 commits)")[![Ziack](https://avatars.githubusercontent.com/u/1650463?v=4)](https://github.com/Ziack "Ziack (2 commits)")[![GDesclaux](https://avatars.githubusercontent.com/u/9569613?v=4)](https://github.com/GDesclaux "GDesclaux (1 commits)")

---

Tags

ormZohoZoho CRMZohoCRM

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ziack-zoho-crm-orm/health.svg)

```
[![Health](https://phpackages.com/badges/ziack-zoho-crm-orm/health.svg)](https://phpackages.com/packages/ziack-zoho-crm-orm)
```

###  Alternatives

[propel/propel

Propel2 is an open-source Object-Relational Mapping (ORM) for PHP.

1.3k5.3M110](/packages/propel-propel)[hautelook/alice-bundle

Symfony bundle to manage fixtures with Alice and Faker.

19519.4M34](/packages/hautelook-alice-bundle)[theofidry/alice-data-fixtures

Nelmio alice extension to persist the loaded fixtures.

32528.5M70](/packages/theofidry-alice-data-fixtures)[directorytree/ldaprecord

A fully-featured LDAP ORM.

5782.9M10](/packages/directorytree-ldaprecord)[topthink/think-orm

the PHP Database&amp;ORM Framework

4542.0M218](/packages/topthink-think-orm)[cycle/database

DBAL, schema introspection, migration and pagination

64690.9k31](/packages/cycle-database)

PHPackages © 2026

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