+
Skip to content
/ core Public

Esqueleto básico para montar classes especializadas em gerenciamento de máquinas remotas

License

Notifications You must be signed in to change notification settings

crphp/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crphp/core

No contexto deste documento, o termo "classe" refere-se a todas as classes, interfaces e traits.

Está biblioteca representa um esqueleto inicial para se trabalhar com gerenciamento de hosts remotos. Já a biblioteca crphp/wmi é um bom exemplo de implementação que usa está coleção de classes.

As palavras-chave "DEVE", "NÃO DEVE", "REQUER", "DEVERIA", "NÃO DEVERIA", "PODERIA", "NÃO PODERIA", "RECOMENDÁVEL", "PODE", e "OPCIONAL" neste documento devem ser interpretadas como descritas no RFC 2119. Tradução livre RFC 2119 pt-br.

  1. Referências
  2. Funcionalidades
  3. Requisitos (recomendados)
  4. Baixando o pacote crphp/core para o servidor
  5. Exemplos de uso
  6. Licença (MIT)

1 - Referências

2 - Funcionalidades

No contexto desta biblioteca as funcionalides abaixo são classe que precisam ser implementadas. Conforme já foi dito, a biblioteca crphp/wmi é um bom exemplo de implementação que usa está coleção de classes genéricas:

  • Consultar CPU
  • Consultar RAM
  • Consultar Disco Rígido
  • Listar Serviços
  • Stop / Start de serviço
  • Listar processos
  • Alterar prioridade do processo
  • Matar / Finalizar processos
  • Transformação de unidades
  • Transformação de timestamp Windows para data/hora

3 - Preparando o servidor

❗ Os requisitos sugeridos logo abaixo representam as versões utilizadas em nosso ambiente de desenvolvimento e produção, logo não garantimos que a solução aqui apresentada irá rodar integralmente caso as versões dos elementos abaixo sejam outras.

3.1 - Requisitos (recomendados)

Servidor

  • REQUER Apache >= 2.4.10
  • REQUER PHP >= 5.5.12

Cliente

  • NÃO REQUER instalar nenhum componente

4 - Baixando o pacote crphp/core para o servidor

Para a etapa abaixo estou pressupondo que você tenha o composer instalado e saiba utilizá-lo:

composer require crphp/core

Ou se preferir criar um projeto:

composer create-project --prefer-dist crphp/core nome_projeto

Caso ainda não tenha o composer instalado, obtenha este em: https://getcomposer.org/download/

5 - Exemplos de uso

Temos dois bons exemplos de bibliotecas que implementam este core, são respectivamente crphp/wmi e crphp/ssh.

Veja um exemplo de implementação utilizado pela biblioteca crphp/wmi:

use COM;
use \Exception;
use \RuntimeException;
use Crphp\Core\Sistema\Conector;

class Wmi extends Conector
{
    public function conectar($host, $usuario = null, $senha = null, $porta = 135, $timeout = 10)
    {
        // Aqui você abre uma comunicação com o host remoto
    }

    public function executar($instrucao)
    {
        // Aqui você executa uma instrução remotamente
    }

    /*
     * Os métodos status() e mensagemErro() possuem um comportamento genérico, provavelmente 
     * você não irá precisar reescrevê-los
     */
}

Veja um exemplo de implementação utilizado pela biblioteca crphp/ssh:

use \Exception;
use \RuntimeException;
use phpseclib\Net\SSH2;
use Crphp\Core\Sistema\Conector;

class Ssh extends Conector
{
    public function conectar($host, $usuario = null, $senha = null, $porta = 135, $timeout = 10)
    {
        // Aqui você abre uma comunicação com o host remoto
    }

    public function executar($instrucao)
    {
        // Aqui você executa uma instrução remotamente
    }

    /*
     * Os métodos status() e mensagemErro() possuem um comportamento genérico, provavelmente 
     * você não irá precisar reescrevê-los
     */
}

Para maiores informações, leia o arquivo de licença disponibilizado junto desta biblioteca.

About

Esqueleto básico para montar classes especializadas em gerenciamento de máquinas remotas

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载