Всем привет. Начал разработку своего пакета. Установил символьную ссылку на свой пакет в composer.json (который в корне):
"repositories": {
"package-name": {
"type": "path" ,
"url": "packages/sequelone/sone" ,
"options": {
"symlink": true
}
}
},
Затем в папке с пакетом по пути
/packages/sequelone/sone/src в сервис провайдер SoneServiceProvider.php добавил в функцию boot() подгрузку роутов и всего остального:
namespace Sequelone\Sone;
use Illuminate\Support\ServiceProvider;
class SoneServiceProvider extends ServiceProvider
{
public function boot()
{
$this->publishes([
__DIR__.'/../config/sone.php' => config_path('sone.php'),
], 'config');
$this->mergeConfigFrom(
__DIR__.'/../config/sone.php', 'sone'
);
$this->loadRoutesFrom(__DIR__.'/../routes/web.php');
$this->loadViewsFrom(__DIR__.'/../resources/views/', 'sone');
$this->publishes([
__DIR__ . '/../../views' => base_path('resources/views/vendor/sone')
]);
$this->publishes([
__DIR__ . '/../../vendor/sequelone/sone/public' => public_path('vendor/sone'),
], 'public');
$this->publishes([
__DIR__.'/../public' => public_path('/'),
], 'public');
}
}
только вот по дефолту папка public (которая в пакете не хочет подгружаться, файлы имеют статус 404 ошибки).
Как я понимаю надо настроить это:
$this->publishes([
__DIR__ . '/../../vendor/sequelone/sone/public' => public_path('vendor/sone'),
], 'public');
P.S. Если выполнять команду:
php artisan vendor:publish --tag=public --force
то содержимое публикуется в основную папку public. Как всё таки настроить этот путь, чтобы файлы отдавались из папки vendor?