sábado, 9 de fevereiro de 2013

No meu GitHub

Há uns meses criei uma conta no github, onde havia postado algumas bibliotecas de código C++ e PHP. Aos poucos pretendo ir adicionando bibliotecas, projetos e exemplos de código, usando também outras linguagens, como Java e JavaScript.

Na minha última atualização na php-util, por exemplo, adicionei um arquivo invoker.php, que permite invocar métodos PHP parametrizados numa requisição HTTP. Por exemplo:
<script type="text/javascript" src="jquery.js" ></script>
<script type='text/javascript' >
var data = { _c : 'SomeClass', _m : 'someMethod' };
var showResponse = function( response ) {
alert( 'Success: ' + response.success
+ ' Message: ' + response.message
+ ' Data: ' + ( response.data ? response.data : '' )
);
}
$.post( 'invoker.php', data, showResponse, 'json' );
</script>

Será enviado para o invoker.php os parâmetros _c e _m com, respectivamente, o nome da classe e do método desta classe a ser invocado. O arquivo que contém a classe será automaticamente incluído, uma instância da classe criada, seu método invocado e seu retorno obtido. Sendo a execução realizada com sucesso ou não, o resultado será serializado como JSON e enviado de volta para o cliente encapsulado em um objeto Response.


Continuando com o exemplo acima, será invocado o método someMethod de uma classe SomeClass. Se esta classe for simplesmente definida como a abaixo, a string "hello" será retornada para o cliente.

<?php
class SomeClass {
function someMethod() {
return "hello";
}
}
?>
Então, será enviada uma resposta para o cliente (em JSON) como:
{ "success" : true, "message" : "", "data" : "hello" }

Isto permite automatizar coisas repetitivas, como criar um arquivo PHP simplesmente para invocar o método desejado e obter seu retorno como JSON. O encapsulamento da resposta ao cliente sempre realizada através de um objeto de Response permite padronizar a comunicação, tornando mais fácil extrair os resultados das requisições.


Por exemplo, pode-se invocar um método de uma classe controladora que irá obter os parâmetros enviados (via POST) de um formulário e salvá-los, e então saber seu retorno.


Ou, por exemplo, invocar um método que retorna uma lista de objetos para serem apresentados na tela. Esse objetos serão colocados no parâmetro data da resposta (JSON) e poderão ser obtidos e manipulados facilmente pelo JavaScript.


Baixe o código, dê uma lida, mande sugestões, correções, dúvidas. Sempre que possível, tentarei colocar coisas úteis lá.

Nenhum comentário: