Sto usando Laravel. Ecco una class su cui sto lavorando:
<?php class InstagramController extends BaseController { /* |-------------------------------------------------------------------------- | Default Home Controller |-------------------------------------------------------------------------- | | You may wish to use controllers instead of, or in addition to, Closure | based routes. That's great! Here is an example controller method to | get you started. To route to this controller, just add the route: | | Route::get('/', '[email protected]'); | */ public function read($q) { $client_id = 'ea7bee895ef34ed08eacad639f515897'; $uri = 'https://api.instagram.com/v1/tags/'.$q.'/media/recent?client_id='.$client_id; return sendRequest($uri); } public function sendRequest($uri){ $curl = curl_init($uri); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); $response = curl_exec($curl); curl_close($curl); return $response; } }
La linea:
return sendRequest($uri);
Rende l'errore: chiamata alla function non definita sendRequest ()
Suppongo che sia perché sto facendo riferimento alla function nel modo sbagliato, ma non riesco a trovare alcuna spiegazione su come farlo.
Provare:
return $this->sendRequest($uri);
Poiché PHP non è un puro linguaggio Object-Orieneted, interpreta sendRequest()
come un tentativo di invocare una function definita globalmente (come per esempio nl2br()
), ma poiché la function fa parte di una class ('InstagramController'), è necessario utilizzare $this
per puntare l'interpnetworking nella giusta direzione.
Sì. Il problema è nella notazione sbagliata. Uso:
$this->sendRequest($uri)
Anziché. O
self::staticMethod()
per methods statici. Leggi anche questo per avere un'idea di OOP – http://www.php.net/manual/en/language.oop5.basic.php