Php Laravel 5-未找到供应商-类别

Php Laravel 5-未找到供应商-类别,php,laravel-5,composer-php,Php,Laravel 5,Composer Php,我使用的是laravel analytics(),并在本地安装了所有组件,工作正常 但是,每当我尝试上传到服务器时,访问页面时会出现以下错误:Class'LaravelAnalytics'未找到,我试图通过以下方式访问:使用\LaravelAnalytics作为分析 我在本地和服务器上都使用linux操作系统。我还运行了:composer更新,现在得到:无需安装或更新 我已经检查了.json文件,我可以看到我试图安装的包就在那里 { "name": "laravel/laravel",

我使用的是laravel analytics(),并在本地安装了所有组件,工作正常

但是,每当我尝试上传到服务器时,访问页面时会出现以下错误:
Class'LaravelAnalytics'未找到
,我试图通过以下方式访问:
使用\LaravelAnalytics作为分析

我在本地和服务器上都使用linux操作系统。我还运行了:
composer更新
,现在得到:
无需安装或更新

我已经检查了.json文件,我可以看到我试图安装的包就在那里

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "illuminate/html": "5.*",
        "spatie/laravel-analytics": "^1.2"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "files":
        ["app/Http/helpers.php"],

        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

有人知道我遗漏了什么或我错在哪里吗?

将您的psr-4更改为:

"psr-4": {
    "App\\": "app/",
    "vendor\\spatie\\" : "spatie/"
}

希望这对您有用。

您必须将类添加到别名中(或使用FQCN):


我面临着类似的问题。上传供应商/作曲家文件夹对我来说很有用

面对这个问题,我首先要感谢是谁让我走上了这条道路

根据,在安装了服务提供商和facade之后,我们必须执行以下命令:

php artisan vendor:publish --provider="Spatie\Analytics\AnalyticsServiceProvider"

这会导致以下错误:
未找到类“Spatiale\Analytics\AnalyticsServiceProvider”

如果我们查看
vendor/spatie/laravel analytics/src
,我们可以看到所需类的名称开头包含laravel string

解决方案: 因此,要解决此错误,我们需要更改从
config/app.php
文件发出的调用:

  • 提供者
    部分。更改此项:

    Spatie\Analytics\AnalyticsServiceProvider::class,
    
    'Analytics' => Spatie\Analytics\AnalyticsFacade::class,
    
    作者:

  • 别名
    部分,更改此选项:

    Spatie\Analytics\AnalyticsServiceProvider::class,
    
    'Analytics' => Spatie\Analytics\AnalyticsFacade::class,
    
    作者:

然后,再次运行以下命令以使其工作(也添加了Laravel字符串):

然后转到
config/
文件夹。您应该会看到一个名为
laravel analytics.php
的文件

"require: {
    "php": ">=5.5.9",
    "laravel/framework": "5.1.*",
    "illuminate/html": "5.*",
    "spatie/laravel-analytics": "^1.2"**
}
看起来您使用的是PHP5.*,这就是为什么composer会拉取具有不同类的包的1.2版本

我一个月前也有同样的问题

您读取到安装包的read-me文件适用于PHP7.0的2.4版本

只需将PHP5.*更新为PHP7.*或获取软件包1.2版本的ReadMe文件即可正确安装软件包


有关详细信息,请参阅我的博客:

我在创建自己的包时遇到了类似的问题。PHP风暴正在查找类,但当脚本启动时,显示状态500。原因很简单-确保来自供应商的包包含在composer.json中

"autoload": {
        "classmap": [
            "src/"
        ]
    }

然后它将自动加载。

您是否已将Spatiale\LaravelAnalytics\LaravelAnalytics服务提供商添加到提供商列表中?@Tim-是的,我已添加提供商和Alisase。@我遇到了相同的问题,你找到解决方案了吗?@riza-你能试试吗:php-artisan-dump-auto-load或clear-compiled-我想这对你有用me@Phorce实际上,我的问题是供应商包名称空间与其文件夹命名不同,当然,当我使用文件夹命名时,将找不到供应商类,现在它可以工作了。我已经添加了这个名称,但它不工作。我还运行了php composer update。。有什么想法吗?@Phorce在我遇到captcha插件和laravel 5.1的问题之前,我搜索了很多,直到我在composer.json中将这个路径添加到我的psr-4中:“vendor\\mews\\”:“mews/”,这对我来说很有用。@Phorce是的,我找到了。添加代码后运行composer Required Spatiale/laravel analytics
。我希望这有用。我添加了它,这不是问题,因为它在本地工作。我认为这应该是评论。是的,为我做的与其他答案相同,请编辑,说链接指向您的网站也,请不要复制和粘贴多个问题的相同答案。如果一个问题的答案与你之前发布的答案完全相同,那么它是重复的,应该作为一个问题关闭;因此,回答它会妨碍人们获得答案。
"require: {
    "php": ">=5.5.9",
    "laravel/framework": "5.1.*",
    "illuminate/html": "5.*",
    "spatie/laravel-analytics": "^1.2"**
}
"autoload": {
        "classmap": [
            "src/"
        ]
    }