2015-10-26 13 views
8

Próbuję użyć interfejsu API bazy monet. Próbuję wykonać prosty test, aby sprawdzić, czy mogę go uruchomić, ale otrzymuję różne błędy kompozytora.nieoczekiwane "użycie" (T_USE) podczas próby użycia kompozytu

Obecnie jestem coraz nieoczekiwane t „użytkowania” dla tego kodu:

  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; 

Tak, to moi stosowanie oświadczenia w złym miejscu? Próbowałem ich poza funkcją indeksowania i poza klasą. Oba dają zupełnie odmienne zbiory wyników.

Poza klasy Keks, mam

Fatal error: Class 'Coinbase\Wallet\Configuration' not found in /home/content/61/11420661/html/beta/application/controllers/keks.php on line 15

i wewnątrz klasy, lecz na zewnątrz funkcji index() otrzymuję

Fatal error: Trait 'Coinbase\Wallet\Client' not found in >/home/content/61/11420661/html/beta/application/controllers/keks.php on line 4

Czy jest coś złego w moim composer.json może?

Pełne kontroler jest tutaj: http://pastebin.com/4BjPP6YR

+0

Którą wersję php używasz? W razie wątpliwości spróbuj ' VolkerK

+0

hostowanie hostów? złej kontroli –

+0

Następnie uruchom ' VolkerK

Odpowiedz

25

Nie można używać „używać” gdzie używasz go.

Słowo kluczowe "użyj" znajduje się przed definicją klasy, aby zaimportować inne klasy/interfejsy/cechy do własnej przestrzeni nazw lub znajduje się w klasie (ale nie w metodzie), aby dodać cechy do klasy.

<?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 
    } 
} 
+0

rozwiązało to mój problem. dzięki! ~ laravelrookie – ITWitch

+0

tak, jego praca dla mnie –

4

Używam codeigniter kiedy próbuję użyć słowa kluczowego "use" jego błąd rzucania w ramach metody.

Po prostu przeniosłem go do deklaracji klasy wyższej.

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

    class Home extends CI_Controller { 

    } 
?> 

Działa poprawnie.

Powiązane problemy