animafac / civicrm-api
Library that allows you to easily use the CiviCRM PHP API
Requires (Dev)
- mockery/mockery: ~1.2.0
- phpunit/phpunit: ~6.5.2
- squizlabs/php_codesniffer: ~3.4.0
- symfony/var-dumper: ~3.4.1
This package is not auto-updated.
Last update: 2024-12-13 21:00:02 UTC
README
This library allows you to easily use the CiviCRM PHP API.
The civicrm_api3
class is great but it only returns stdClass
objects.
This library uses full class objects with useful methods and exceptions.
Usage
Classes
The following classes are available:
Address
Contact
ContactType
Country
Email
EntityTag
LocationType
Note
Phone
Relationship
RelationshipType
StateProvince
Tag
User
Website
They all correspond to CiviCRM entities.
Methods
All these classes share a set of common methods.
get
Returns a property from this object.
$contact = new Contact($id);
$contact->get('display_name');
set
Add a property to this object.
$contact = new Contact($id);
$contact->set('display_name');
save
Saves the object to the database
$contact = new Contact();
$contact->set('display_name');
$contact->save();
delete
Removes the object from the database.
$contact = new Contact($id);
$contact->delete();
getAll
Get all objects from this type.
Contact::getAll();
// Or if you only want a subset.
Contact::getAll(['contact_type' => 'Organization']);
getCount
Get the number of objects from this type.
Contact::getCount();
// Or if you only want a subset.
Contact::getCount(['contact_type' => 'Organization']);
getSingle
Get a single object that matches the specified constraints.
Contact::getSingle(['first_name' => 'foo', 'last_name' => 'bar']);
Setup
You can install this library with Composer:
composer require animafac/civicrm-api
Then you need to include both this library (preferably via the Composer autoloader) and the CiviCRM class.api.php
file.
use CivicrmApi\Api;
use CivicrmApi\Contact;
require_once __DIR__.'/vendor/autoload.php';
require_once 'path/to/civicrm/api/class.api.php';
Api::$path = '/path/to/civicrm/config/';
$contact = new Contact($id);
echo $contact->get('display_name');
Grunt tasks
Grunt can be used to run some automated tasks defined in Gruntfile.js
.
Your first need to install JavaScript dependencies with Yarn:
yarn install
composer install
Lint
You can check that the JavaScript, JSON and PHP files are formatted correctly:
grunt lint
Tests
You can run PHPUnit tests:
grunt test
Documentation
phpDocumentor can be used to generate the code documentation:
grunt doc
CI
Gitlab CI is used to run the tests automatically after each commit.