Поделиться моделями Laravel в нескольких приложениях? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть два приложения в Laravel, и у них одинаковые точные модели.Чтобы модели были в одном месте, чтобы их было проще обслуживать, я создал частный репозиторий Bitbucket со следующей структурой:

database-models
-src
--Models
---Database
----Post.php
composer.json

Файл composer.json выглядит следующим образом:

{
  "name":"database-models",
  "autoload":{
    "psr-4":{
      "DbModels\\":"src/"
    }
  }
}

Это фактически первый раз, когда я делаю частное репо и всю эту настройку, поэтому, чтобы протестировать свой личный код репо, я добавил код приложений из репозиториев композитора:

"require": {
...
"user/database-models":"*"
},
"repositories": [
        {
            "type":"package",
            "package": {
                "name": "user/database-models",
                "version":"master",
                "source": {
                    "url": "git@bitbucket.org:user/database-models.git",
                    "type": "git",
                    "reference":"master"
                }
            }
        }
    ]

Пока у меня все в порядке, и следующим и самым важным шагом я создаю команду в приложении, которая выглядит примерно так:

<?php namespace App\Console\Commands;

use Illuminate\Console\Command;
use DbModels\Models\Database\Post;

...

public function handle()
{
    $posts = Post::all();
    dd($posts);
}

Я запускаю composer dump-autoload после установки этого пакета, ноКогда я запускаю команду, я получаю сообщение об ошибке:

Class 'DbModels\Models\Database\Post' not found

У меня такое ощущение, что эта ошибка довольно очевидна, но я не могу понять ее.Может кто-нибудь дать мне подсказку или решение этой проблемы?Что я здесь не так делаю?

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ :

Файл Post.php выглядит так:

<?php namespace DbModels\Models\Database;

// Used namespaces.
use Illuminate\Database\Eloquent\Model;

/**
 * Class Post.
 *
 * @package App\Models\Database
 */
class Post extends Model
{
    ...
}
...