Laravel пользовательский класс libaray не найден - PullRequest
0 голосов
/ 10 июля 2019

Я создал свою библиотеку php с помощью composer. composer.json этой библиотеки выглядит так:

{
    "name": "singboard/platform-fetcher",
    "description": "Fetch reviews from third part platforms.",
    "license": "proprietary",
    "version": "0.1.0-dev",
    "authors": [
       [...]
    ],
    "type": "library",
    "require": {
        [...]
    },
    "require-dev": {
        [...]
    },
    "autoload": {
        "psr-4": {
            "Singboard\\PlatformFetcher\\": "src/"
        }
    }
}

Структура папок библиотеки композитора такова:

├── composer.json
├── composer.lock
└── src
    └── FacebookFetcher.php

Теперь я включил эту библиотеку в свой проект laravel. В composer.json для моего проекта Laravel я добавил это:

 "repositories": [
        {
            "type": "package",
            "package": {
                "name": "singboard/platform-fetcher",
                "version": "0.1.0-dev",
                "type": "library",
                "source": {
                    "url": "xxx-xxx",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],

"require": {
        "singboard/platform-fetcher": "0.1.0-dev"
    },

Проблема в том, что когда я пытаюсь вызвать класс FacebookFetcher.php, я получаю сообщение Class 'Singboard\PlatformFetcher\FacebookFetcher' not found. В чем проблема?

1 Ответ

1 голос
/ 10 июля 2019

Как указано в документации composer , это неправильный способ включения пользовательской удаленной библиотеки.Вы должны реализовать свою библиотеку с:

{
    "require": {
        "vendor/my-private-repo": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@bitbucket.org:vendor/my-private-repo.git"
        }
    ]
}
...