@Rus_K_o
Веб программист

Как добавить пользовательскую библиотеку в laravel?

Я хочу сделать проверку в контроллере, с какого устройства пользователь зашёл на страницу, и с её помощью выяснять какую вьюху выдавать пользователю. Простым языком - хочу сделать мобильную версию личного кабинета.
Нашёл для этого прекрасный PHP-класс Mobile Detect, но, к удивлению, не нашёл инфы о том как подключить его к laravel.

Решил сделать очень грубо и возможно неправильно:

Я тупо закинул файл по адресу /vendor/user_bib/Mobile_Detect.php.
После в файле /vendor/composer/autoload_classmap.php подключил нужный мне класс:
// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'User\\Mobile_Detect' => $vendorDir . '/user_bib/Mobile_Detect.php', //Вот мой класс
	
    'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
    'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php',
    'App\\Http\\Controllers\\AdminController' => $baseDir . '/app/Http/Controllers/AdminController.php',
    'App\\Http\\Controllers\\AjaxController' => $baseDir . '/app/Http/Controllers/AjaxController.php',
    //Ниже ещё огромный список, который я решил не вставлять 
)


Тут я сделал все нормально.
После, в файле /config/app.php, сделал следующее:
'aliases' => [

        'Mobile_Detect' => User\Mobile_Detect::class, //Вот мой класс

        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
	// Опять же, ниже список продолжается, вставлять его не стал 
        ]


Здесь я тоже, вроде, сделал все хорошо.
И уже в контроллере попытался его подключить и использовать:
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use Mobile_Detect;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{

    public function index()
    {
		if(Auth::user()->moderated == 0){
			header('Location: https://domain.ru/home/edit'); 
		}else{
			
			$detect = new Mobile_Detect; //Эта строка должна быть по инструкции, но она вызывает ошибку: Class 'User\Mobile_Detect' not found
			
			if ( $detect->isMobile() ) {
				return view('lk.home_mobail');
			}else{
				return view('lk.home');
			}
		}
    }
}

Ошибка понятна, только я не понимаю где именно я ошибся, или я что то пропустил.
Как показывает, debag, ошибка в файле: /vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php.

5c5bf78f3edf1155279889.png

Я только хотел сам проверить что там не так, но чет подумал, что я иду по самому тупому пути и, возможно, все это я мог сделать через терминал или чего то подобного, и решил спросить, стоит ли продолжать это варварство или все же есть какие то русскоязычные документации по этой теме.
Сам файл стачивал с офф сайта: http://mobiledetect.net.

Спасибо за внимание
  • Вопрос задан
  • 596 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
https://getcomposer.org/

composer require mobiledetect/mobiledetectlib
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы