Я пытаюсь использовать пакет non-laravel composer в контроллере Laravel. Я добавил проект в файл composer.json так:Laravel использовать не-laravel композиционный пакет в контроллере
"require": {
"laravel/framework": "5.0.*",
"php": ">=5.4.0",
"abraham/twitteroauth": "0.5.2"
},
Я побежал:
composer update
В рамках проекта, который установил пакет в поставщика/каталога, как и ожидалось, и я вижу это там. Однако, при добавлении следующего кода в контроллер:
<?php
namespace App\Http\Controllers;
class HomeController extends Controller {
use Abraham\TwitterOAuth\TwitterOAuth;
public function index()
{
$o = new TwitterOauth();
return view('home');
}
Laravel возвращает следующую ошибку:
Trait 'App\Http\Controllers\Abraham\TwitterOAuth\TwitterOAuth' not found
Я подозреваю, что это что-то делать с тем, что пространство имен уже объявлена, но я не знаю достаточно о пространствах имен PHP, чтобы решить проблему.
Любая помощь была бы рада!
При использовании абсолютного имени я получаю сообщение об ошибке: Trait 'Abraham \ TwitterOAuth \ TwitterOAuth' не найден. Есть какой-то шаг, который я пропустил где-то? – BnMcG
@BnMcG Итак, по крайней мере, он жалуется на правильный класс сейчас. Эта ошибка заставляет это звучать так, как PHP пытается автоматически загрузить Abraham \ TwitterOAuth \ TwitterOAuth, но не находит никакого класса. Запуск «composer dumpautoload» может исправить это, но это должно было произойти автоматически при запуске «обновления для композитора». Является ли Abraham \ TwitterOAuth \ TwitterOAuth указанным в поставщике/композиторе/autoload_psr4.php? –
Я запустил команду обновления композитора на виртуальной машине после ее запуска на моем локальном компьютере, а затем загрузился, и ошибка изменилась на: «Приложение \ Http \ Controllers \ HomeController не может использовать Abraham \ TwitterOAuth \ TwitterOAuth - это не черта». .. autoload_psr4.php содержит следующую строку: «'Abraham \\ TwitterOAuth \\' => array ($ vendorDir. '/ abraham/twitteroauth/src')", поэтому я думаю, что он указан там правильно. – BnMcG