wirecardBrasil / moip-sdk-php

Cliente em PHP para integração server-side com APIs Moip v2
MIT License
124 stars 90 forks source link

autoload manual #108

Closed czmarcos closed 7 years ago

czmarcos commented 7 years ago

Como faço um load manual das classes sem usar o autoload/composer?

O sdk php do Moip foi instalado corretamente com o composer. Porém, estou tentando implementar o moip-php-sdk junto com uma api utilizando o slim framework e ao chamar a classe em alguma função do routes.php ele acusa que a mesma não existe:

meu arquivo index.php do slim (exemplo simplificado):

require 'vendor/autoload.php';
$settings = require 'settings.php';
$app = new \Slim\App($settings);
include 'db.php';
use Moip\Moip;
use Moip\MoipBasicAuth;
include 'routes.php';
$app->run();

Parte da função do meu arquivo routes.php (exemplo simplificado):

$app->post('/pay/product', function ($request, $response) {

    $token = '01010101010101010101010101010101';
    $key = 'ABABABABABABABABABABABABABABABABABABABAB';

    $moip = new Moip(new MoipBasicAuth($token, $key), Moip::ENDPOINT_SANDBOX);

Erro mostrado no log:

[Tue May 02 22:47:45.284613 2017] [:error] [pid 4264] PHP Fatal error: Class 'Moip' not found in /var/www/html/api/v1/routes.php on line 3542

SOSTheBlack commented 7 years ago

Olá @czmarcos, bom dia! Tudo bem com você?

Qual a versão do sdk que está no seu composer?

czmarcos commented 7 years ago

Opa, blz @SOSTheBlack !

Versão v 1.1.2

SOSTheBlack commented 7 years ago

@czmarcos aqui está funcionando normal. Se você instancia a Moip class antes do $app->run() funciona?

SOSTheBlack commented 7 years ago

Acabei de rodas os testes unitário e também passou todos

czmarcos commented 7 years ago

Solved! Instanciei a classe Moip direto no arquivo routes.php e deu certo! @SOSTheBlack valeu pela ajuda!

rukaLukas commented 6 years ago

@czmarcos você tem um exemplo do seu código do routes.php, por que estou tentando integrar o sdk com o slim e estou encontrando o mesmo problema que você estava tendo.

czmarcos commented 6 years ago

@rukaLukas inclua as classes do moip direto no topo do seu arquivo do routes.php

use Moip\Moip;
use Moip\Auth\BasicAuth;

dai vc consegue usar nas suas endpoints, ex:

$app->post('/add/pagamento', function ($request, $response) {
$moip = new Moip(new BasicAuth($token, $key), Moip::ENDPOINT_PRODUCTION);

...

}