2015-11-03 53 views
3

我有一个自定义软件包未上传到githubpackagist,我需要将其添加到Laravel 5.1项目中。将自定义软件包添加到composer.json文件

这是我的包的文件夹结构:

Packages 
    \_ christian 
    \_ smsservice 
     \_src 
     \_ Facades 
      \_ MySMS.php 
     \_ SMSServiceServiceProvider.php 
     \_ vendor 
     \_ composer 
     \_ autoload.php 

我已经编辑我的根composer.json添加软件包:

"psr-4": { 
    "App\\": "app/", 
    "Christian\\SMSService\\": "app/Packages/christian/smsservice/src/" 
}, 

然后我已经加入的S ervice providerfacadeapp.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 
} 
+1

您是否在添加“psr-4”后刷新了作曲家自动载入?试试如果没有,请尝试'composer dump-autoload'并刷新。 –

+0

是的,我试过但没有结果 –

+0

这个路径 - “Christian \\ SMSService \\”:**“app/Packages/christian/smsservice/src”** - 应该是相对于你的'composer.json'。它通常和'/ vendor'在同一个目录下,但你的'/ vendor'位于'app/Packages/christian/smsservice'。 你能告诉我们你的'composer.json'和确切的位置? –

回答

0

我需要的功能了。我在我的本地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 
    } 
} 
相关问题