API cPanel

126 views
Skip to first unread message

João Batista Neto

unread,
Jul 4, 2011, 11:29:53 AM7/4/11
to apis-p...@googlegroups.com
Olá pessoal,

Para começar minha participação no Coletivos, resolvi escrever uma biblioteca completa para integração com cPanel.

Acredito que a grande maioria das hospedagens, atualmente, utilizam o cPanel; Com essa biblioteca é possível fazer, via script, qualquer coisa que pode ser feita via painel.

Nesse instante, grande parte do módulo de contas está implementado e gostaria de convidá-los à ajudar na conclusão da biblioteca.

A lista de operações existentes na API do cPanel (WHM) está em: http://docs.cpanel.net/twiki/bin/view/SoftwareDevelopmentKit/XmlApi

A biblioteca está separada da seguinte forma:

cPanel => Módulo => Operações

o cPanel é uma classe que configura a conexão HTTP e serve de fachada para os vários módulos da API

Cada Módulo serve de fachada para as várias operações da API

Por exemplo:

/**
 * @brief    Módulo para gerenciamento de contas.
 * @return    AccountModule
 */
public function account() {
    return new AccountModule( $this );
}

Esse é o método account() da classe cPanel, ele retornará uma instância do objeto AccountModule que terá as chamadas às operações:

class AccountModule extends cPanelModule {
    /**
     * @param    string $user
     * @return    AccountSummaryOperation
     */
    public function accountSummary( $user = null ) {
        $accountSummaryOperation = new AccountSummaryOperation( $this->cpanel );

        if ( !is_null( $user ) ) {
            $accountSummaryOperation->setUser( $user );
        }

        return $accountSummaryOperation;
    }

As particularidades de cada operação ficam encapsuladas nos objetos respectivos.

O único requerimento para a criação de uma operação é implementar o método abstrato getOperationName(); Se a operação tiver parâmetros obrigatório, opcionais ou qualquer particularidade, ela deverá tratar internamente esses dados.

O código está disponível no github do iMastersDev e pode ser acessado em: https://github.com/iMastersDev/cpanel

Para clone:

git clone git://github.com/iMastersDev/cpanel.git


Para testar:

<?php
require_once 'com/imasters/php/cpanel/cPanel.php';
require_once 'com/imasters/php/cpanel/cPanelBasicAuthentication.php';

$cpanel = new cPanel( 'demo.cpanel.net' , new cPanelBasicAuthentication( 'demo' , 'demo' ) );
$cpanel->useSecureConnection( false );

$cpanelOperation = $cpanel->account()->accountSummary( 'demo' );
var_dump( $cpanelOperation->call() );

--
João Batista Neto
Desenvolvedor engenheiro de aplicações web

João Batista Oliveira Neto

unread,
Jul 4, 2011, 11:58:59 AM7/4/11
to apis-p...@googlegroups.com
1º Master Certified Professional do PayPal Brasil

Tiago Baeta

unread,
Jul 4, 2011, 12:05:29 PM7/4/11
to [Coletivos iMasters] APIs Públicas
Muito boa João!

Aproveitando, quando destacamos essa API no iMasters, já fizemos
também uma chama para o nosso coletivo de APIs Públicas, valorizando o
mesmo.

O link completo da notícia no iMasters é
http://imasters.com.br/noticia/21330/desenvolvimento/imasters-cria-biblioteca-gratuita-de-integracao-com-cpanel.

Abraços!

Tiago Baeta
iMasters

On Jul 4, 12:58 pm, João Batista Oliveira Neto
Reply all
Reply to author
Forward
0 new messages