Cpanel Library / Kohanaphp
Postado | Postado em Cpanel, Kohana, PHP, php-al | Data 20-03-2010

Sexta-Feira passada eu acordei muito mal, corpo mole, dor de cabeça e etc … tentei usar o computador, mas paciência era a única coisa do mundo que eu tinha no momento.
Mias tarde quando eu fui melhorando, voltei a usar o computador, mas ainda estava sem paciência pra dar continuidade aos freelas q eu tenho que entregar, então, pra não enferrujar resolvi fazer algo que pode me ser util algum dia ( pode ser pra outra pessoa tbm ) que foi escrever uma classe q server como interface para acessar a API do Cpanel, um dos mais populares sistemas de hospedagem de sites.
Creio que mais da metade dos servidores de hospedagem ultilizem o Cpanel / WHM como seus sistemas de gerenciamento, então se você ultiliza essas soluções ou precisa interagir com ela pode ultilizar a API que ele disponibiliza e que dá poder pra fazer coisas bastante interessantes.
Escrevi a classe meio que nas coxas, mas devo organiza-la melhor com o tempo. A principio foi escrita pra ser usada junto com o Kohanaphp, e faz parte do pacote Kbase ( uma base pra desenvolvimento extendida do Kohanaphp que eu tenho mantido no Gitorious ). Mas nada impede que seja ultilizada fora de qualquer Framework.
Emfim, vamos aos códigos:
$cpanel = new Cpanel('http://seudominio.com', 'root', 'senhaDoRoot');
$xml = $cpanel->execute('servicestatus');
E assim você recebe um XML com informações dos status dos serviços que estão rodando no seu Cpanel/WHM
Para chamar um método com parametros, basta passar o array de parametros na hora da execução, por exemplo:
$cpanel = new Cpanel('http://seudominio.com', 'root', 'senhaDoRoot');
$xml = $cpanel->execute('domainuserdata', array('domain' => 'outrositenocpanel.com'));
Além disso , é possivel informar a porta para a conexão com o cpanel, e tbm o formato da resposta que pode ser xml ou json, vejam o exemplo:
$cpanel = new Cpanel('http://seudominio.com', 'root', 'senhaDoRoot', '2083');//muda a porta pra 2083
$xml = $cpanel->execute('domainuserdata', array('domain' => 'outrositenocpanel.com'), 'json');
Na página oficial da API existe uma lista com os métodos, e os parametros que eles aceitam:
http://docs.cpanel.net/twiki/bin/view/AllDocumentation/AutomationIntegration/XmlApi
A classe tá disponivel no gitorious ( http://gitorious.org/kbase/kbase/blobs/master/application/libraries/Cpanel.php )
@marco_rosner: Tu n queria saber como escrevia uma library pro kohana ? tá ai

