我正在使用laravel-analytics(https://github.com/spatie/laravel-analytics/)并在本地安装了所有内容,运行正常。
但是,每当我尝试上传到服务器时,我都会在访问该页面时遇到以下错误:Class 'LaravelAnalytics' not found
我正尝试通过以下网址访问:use \LaravelAnalytics as Analytics;
我在本地和服务器上都使用这两种Linux操作系统。我还跑了:composer update
,现在得到:Nothing to install or update
我检查了.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"
}
}
任何人对我所缺少的或我出错的地方都有任何想法?
答案 0 :(得分:3)
我遇到了类似的问题。上传vendor / composer文件夹对我有用!
答案 1 :(得分:1)
面对这个问题,我首先要感谢riza让我走上正轨的道路。
根据documentation,在安装了服务提供者和外观之后,我们必须执行以下命令:
php artisan vendor:publish --provider="Spatie\Analytics\AnalyticsServiceProvider"
导致以下错误:Class 'Spatie\Analytics\AnalyticsServiceProvider' not found
如果我们看到vendor/spatie/laravel-analytics/src
,我们可以看到所需的类在其名称的开头包含 Laravel字符串。
解决方案:
因此,要解决此错误,我们需要更改config/app.php
文件中的调用:
providers
部分。改变这个:
Spatie\Analytics\AnalyticsServiceProvider::class,
by:
Spatie\LaravelAnalytics\LaravelAnalyticsServiceProvider::class,
aliases
部分,更改此内容:
'Analytics' => Spatie\Analytics\AnalyticsFacade::class,
by:
'Analytics' => Spatie\LaravelAnalytics\LaravelAnalyticsFacade::class,
然后,再次运行以下命令,使其工作(也添加了Laravel字符串):
php artisan vendor:publish --provider="Spatie\LaravelAnalytics\LaravelAnalyticsServiceProvider"
然后转到config/
文件夹。您应该看到一个名为laravel-analytics.php
的文件。
答案 2 :(得分:0)
将psr-4更改为:
"psr-4": {
"App\\": "app/",
"vendor\\spatie\\" : "spatie/"
}
希望这对你有用。
答案 3 :(得分:0)
您必须将类添加到别名(或使用FQCN):
// config/app.php
'aliases' => [
...
'LaravelAnalytics' => 'Spatie\LaravelAnalytics\LaravelAnalyticsFacade',
...
];
答案 4 :(得分:0)
"require: {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"illuminate/html": "5.*",
"spatie/laravel-analytics": "^1.2"**
}
似乎你正在使用php 5. *,这就是为什么作曲家拉出具有不同类别的1.2版本的软件包。
我一个月前遇到同样的问题
您读取安装程序包的自述文件适用于2.4版本,适用于php 7.0
只需将您的php 5. *更新为php 7. *或获取1.2版本软件包的自述文件以正确设置软件包
有关详细信息,请参阅我的博客:Class not found error due to php version mismatch
答案 5 :(得分:0)
创建自己的程序包时,我遇到了类似的问题。 PHP Storm正在查找类,但是当脚本启动时,状态为500。原因很简单-确保vendor
中的软件包包含在composer.json
"autoload": {
"classmap": [
"src/"
]
}
然后它将被±utoloaded。