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 :D



Comente

Spam protection by WP Captcha-Free