Я хочу использовать Mobile Detect в файле m routes.php. Я добавил пакет как необходимый в composer.json, и он установлен в файле поставщика. Как я могу использовать его сейчас?
Я пробовал этот ответ и не повезло, потому что класс не был найден: Laravel 4 с использованием классов поставщиков
{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "laravel/framework": "4.2.*", "mobiledetect/mobiledetectlib": "*" }, "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-create-project-cmd": [ "php artisan key:generate" ] }, "config": { "preferred-install": "dist" }, "minimum-stability": "stable" }
EDIT: Я попытался использовать этот: https://github.com/jenssegers/Laravel-Agent , но псевдоним никогда не работал, потому что класс не был найден.
Этот пакет содержит PSR-0
. Глядя на git repo, это, как представляется, Detection\MobileDetect
хотя вы хотите убедиться, что это действительно правильное пространство имен . Вы пытались добавить правильное пространство имен в файл routes.php
?
use Detection\MobileDetect as MobileDetect;
или вы можете ссылаться на собственное пространство имен inline. Вот пример:
$detect = new Detection\MobileDetect\Mobile_Detect; $deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
Если это не сработает для вас, вы можете уйти, добавив его в свою composer.json
карту composer.json:
"autoload": { "classmap": ["/vendor/serbanghita/namespaced/"], }
Конечно, заполните правильный путь, затем запустите composer dump-auto
.
Я также боролся с обнаружением мобильных устройств в Laravel, но я нашел решение! Это с самого начала (включая установку):
в терминале в папке проекта Laravel:
$ composer require mobiledetect/mobiledetectlib
в файле промежуточного ПО для обнаружения мобильных устройств:
use Mobile_Detect; ... $detect = new Mobile_Detect; if ($detect->isMobile()) var_dump('is mobile'); else var_dump('is not mobile');
И ты готов к работе;)