Я хочу использовать Mobile Detect для файла m rout.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"}
РЕДАКТИРОВАТЬ: Я пытался использовать это: https://github.com/jenssegers/Laravel-Agent, но псевдоним никогда не работал, говоря, что класс не был найден.
Этот пакет PSR-0
Namespaced. Глядя на Git-репо, кажется, Detection\MobileDetect
хотя вы хотите убедиться, что это действительно правильное пространство имен. Вы пытались добавить правильное пространство имен к вашему routes.php
файл?
use Detection\MobileDetect as MobileDetect;
или вы можете ссылаться на правильное пространство имен в строке. Вот пример:
$detect = new Detection\MobileDetect\Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
Если это не работает для вас, вы можете уйти, добавив его в свой composer.json
classmap:
"autoload": {
"classmap": ["/vendor/serbanghita/namespaced/"],
}
Конечно, заполните правильный путь, затем запустите composer dump-auto
,
Я также боролся с мобильным обнаружением в Laravel, но я нашел решение! Это с самого начала (включая установку):
в терминале в папке вашего проекта Laravel:
$ composer require mobiledetect/mobiledetectlib
в файле Middleware для мобильного обнаружения:
use Mobile_Detect;
...
$detect = new Mobile_Detect;
if ($detect->isMobile()) var_dump('is mobile');
else var_dump('is not mobile');
И ты готов к работе;)