2015-04-30 2 views
3

У меня есть приложение Laravel 5, где я создаю пользовательский интерфейс OAuth. Все работает хорошо, но я не могу понять, как ссылаться на пакет PECL OAuth, который установлен на сервере. Я уверен, что это что-то довольно простое, но я не могу понять это, и Google странно не очень помог.Нужна помощь, связанная с PECL OAuth из приложения Laravel 5

У меня есть эта строка кода:

$oauth = new OAuth($ConsumerKey, $ConsumerSecret); 

Когда снаружи Laravel, она прекрасно работает, ссылающийся на пакет PHP. Но изнутри Laravel он не может найти класс - потому что его не является частью приложения.

Может ли кто-нибудь помочь?

ответ

4

Какова точная ошибка, по которой PHP отправляет ваш путь? Я спрашиваю, потому что расширения pecl делают функции и классы доступными на уровне PHP - не должно быть никакого значения, какие рамки уровня пользовательской среды (Laravel, Symfony и т. Д.) Вы используете - до тех пор, пока один и тот же PHP-файл/веб-сервер -extension, у вас будет доступ к предоставленным функциям и классам pecl.

Мое предположение, если вы пытаетесь использовать глобальный класс OAuth из файла с именами.

namespace App\Some\Namespace; 
//... 
$object = new OAuth; 

Когда вы сделаете это, вы говорите PHP вы хотите класс OAuth в же пространстве имен. то есть класс с полным именем App\Some\Namespace\OAuth. Сказать PHP вы хотите глобальный класс уровня OAuth, либо ссылаться на имя класса с префиксом пространства имен персонажа

$object = new \OAuth; 

или импортировать глобальный OAuth класс с use заявление.

namespace App\Some\Namespace; 
use OAuth; //confusingly, the `use` statement assumes a global namespace, no prefix needed 
//... 
$object = new OAuth; 
+1

Это то, что я искал !! Спасибо. Я не понимал, что такое глобальное пространство имен, и теперь я это делаю. Я добавил оператор использования как «использовать OAuth», и он работает. Отлично! –