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/cpanelPara 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