Composer php 将自定义包添加到composer.json文件

Composer php 将自定义包添加到composer.json文件,composer-php,laravel-5.1,service-provider,Composer Php,Laravel 5.1,Service Provider,我有一个自定义包没有上传到github或packagist上,我需要将其添加到Laravel 5.1项目中 这是我的包文件夹结构: Packages \_ christian \_ smsservice \_src \_ Facades \_ MySMS.php \_ SMSServiceServiceProvider.php \_ vendor \_ composer

我有一个自定义包没有上传到
github
packagist
上,我需要将其添加到
Laravel 5.1
项目中

这是我的包文件夹结构:

Packages
   \_ christian
     \_ smsservice
       \_src
         \_ Facades
           \_ MySMS.php
         \_ SMSServiceServiceProvider.php
       \_ vendor
         \_ composer
         \_ autoload.php
我已编辑了我的root composer.json以添加包:

"psr-4": {
    "App\\": "app/",
    "Christian\\SMSService\\": "app/Packages/christian/smsservice/src/"
},
然后,我将s
服务提供者
门面
添加到
app.php
文件中,但当我尝试使用该软件包时,我得到:

FatalErrorException in ProviderRepository.php line 146:
Class 'Christian\SMSService\SMSServiceServiceProvider' not found
但ServiceProvider存在且命名空间正确:

namespace Christian\SMSService;


use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\Router;

class SMSServiceServiceProvider extends ServiceProvider {
  //Code
}

我也需要这个功能。我正在为我的一个本地Laravel项目使用以下代码:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "repositories": [
        {
            "type": "path",
            "url": "../../GitHub/laravel-page-visits-counter"
        }
    ],
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "cyrildewit/laravel-page-visits-counter": "dev-master"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

添加
psr-4
后是否刷新了composer自动加载?如果没有,请尝试
composer dump autoload
并刷新。是的,我尝试了,但没有结果此路径-“Christian\\SMSService\\”:“app/Packages/Christian/SMSService/src”-应该与您的
composer.json
相关。它通常与
/vendor
位于同一目录,但您的
/vendor
位于
app/Packages/christian/smsservice
。您能告诉我们您的
composer.json
以及具体位置吗?