2017 © Pedro Peláez
 

library ejabberd

Ejabberd implementation using REST API

image

gylraj/ejabberd

Ejabberd implementation using REST API

  • Monday, February 26, 2018
  • by gylraj
  • Repository
  • 1 Watchers
  • 0 Stars
  • 5 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 67 % Grown

The README.md

ejabberd PHP REST API integration

Current implementation aims to integrate Ejabberd within your PHP implementation by using it' new API capabilities., (*1)

Ejabberd already offered a XML RPC, but according to their documentation this will soon be droped in flavor of their newer REST one. Although I searched the entire packagist.org repo, I could only find one (https://github.com/cloudadic/php-ejabberd), which ... isn't the best one: Guzzle is not properly required within composer.json and many code duplication (although it might be good for documentation), (*2)

Installation

composer require gylraj/ejabberd  
composer install

Usage

<?php

require __DIR__ . '/vendor/autoload.php';

use Ejabberd\Rest\Client;  
$client = new Client([
    'apiUrl' => 'http://127.0.0.1:5280/api/',
    'host' => 'chat.example.com'
    ]);

Examples

// Add User
$user = 'mumu';
$password = '123'
$client->createAccount($user, $password);

// Add a second User
$user = 'mumu-friend';
$password = '123'
$client->createAccount($user, $password);

// Add Roster between the two
$client->addRosterItem('mumu', "mumu-friend"));

More examples are placed under /examples folder, (*3)

php examples/checkStatus.php

Disclaimer

When started with this wrapper, I was surprised by the lack (or active) support within PHP for XMPP. Most of the libraries were RPC based, which Ejabberd claim to drop its support.
For this, based on small talks ... arrived to three possibilities: 1. The https://github.com/cloudadic/php-ejabberd style, but their code was the one that started me with this project 2. A Factory pattern, but for someone that is not used with Ejabberd server it' hard to work with and no autocompletion within IDE 3. Proxy: Same as above: no autocomplete 4. Traits: Winner! A lot of wrappers, a lot of methods but we should split them in traits and reuse what we can reuse, (*4)

Added Disclaimer

I really need this functions and can't wait for updates. I admire the owner and creator of this project. I just want to test my skills and add functions for the missing api., (*5)

The Versions

26/02 2018

dev-master

9999999-dev https://github.com/gylraj/ejabberd

Ejabberd implementation using REST API

  Sources   Download

MIT

The Requires

 

by Gian Olivar

api rest ejabberd

26/11 2017

1.0.0

1.0.0.0 https://github.com/dndam/ejabberd

Ejabberd implementation using REST API

  Sources   Download

MIT

The Requires

 

api rest ejabberd