web-dev-qa-db-fra.com

'utilisation' inattendue (T_USE) lors de l'utilisation de composer

Donc, j'essaie d'utiliser l'API coinbase. J'essaie un test simple pour voir si je peux le faire fonctionner, mais je reçois diverses erreurs composer.

Actuellement, je reçois une utilisation inattendue de ce code:

            use Coinbase\Wallet\Client;
            use Coinbase\Wallet\Configuration;

            $apiKey = 'public';
            $apiSecret = 'private';
            $configuration = Configuration::apiKey($apiKey, $apiSecret);
            $client = Client::create($configuration);
            $spotPrice = $client->getSpotPrice();
            echo $spotPrice;

Alors, mes déclarations d'utilisation sont-elles au mauvais endroit? Je les ai essayés en dehors de la fonction d'index et en dehors de la classe. Les deux donnent des ensembles de résultats complètement différents de cela.

En dehors de la classe Keks, je reçois

Erreur fatale: classe 'Coinbase\Wallet\Configuration' introuvable dans /home/content/61/11420661/html/beta/application/controllers/keks.php sur la ligne 15

Et à l'intérieur de la classe mais en dehors de la fonction index () j'obtiens

Erreur fatale: caractère 'Coinbase\Wallet\Client' introuvable dans> /home/content/61/11420661/html/beta/application/controllers/keks.php sur la ligne 4

Y a-t-il quelque chose qui ne va pas dans mon composer.json peut-être?

Le contrôleur complet est ici: http://Pastebin.com/4BjPP6YR

13
Dan Smith

Vous ne pouvez pas utiliser "utiliser" là où vous l'utilisez.

Le mot clé "use" est soit devant une définition de classe pour importer d'autres classes/interfaces/traits dans son propre espace de noms, soit il est à l'intérieur de la classe (mais pas à l'intérieur d'une méthode) pour ajouter des traits à la classe.

<?php
namespace Foo;

use Different\Class; // use can go here

class Bar {
  use TraitCode; // use can go here

  public function baz() {
    $this->traitFunction('etc');
    // use CANNOT go here
  }
}
47
Sven

J'utilise codeigniter lorsque j'essaie d'utiliser le mot clé "use" son erreur de lancement dans une méthode.

Donc je viens de le déplacer vers la déclaration de classe ci-dessus.

<?php
  defined('BASEPATH') OR exit('No direct script access allowed');
  use Auth0\SDK\Auth0;

  class Home extends CI_Controller {

  }
?>

Son fonctionne bien.

7
user2215155