Php 如何从Laravel控制器更新composer.json
因此,我正在构建一个Laravel包,其中有一个特殊功能,需要通过添加一个psr-4名称空间来更新composer,该名称空间指向Laravel基本路径中的目录 到目前为止,我已经试过了,但不起作用Php 如何从Laravel控制器更新composer.json,php,laravel-5,composer-php,Php,Laravel 5,Composer Php,因此,我正在构建一个Laravel包,其中有一个特殊功能,需要通过添加一个psr-4名称空间来更新composer,该名称空间指向Laravel基本路径中的目录 到目前为止,我已经试过了,但不起作用 $loader = include(base_path('vendor/autoload.php')); $loader->add('Classes\Weather', base_path('modules')); 后来: $weather = new Classes\Weather\
$loader = include(base_path('vendor/autoload.php'));
$loader->add('Classes\Weather', base_path('modules'));
后来:
$weather = new Classes\Weather\WeatherSite();
您可以检查此线程,它提供了一些解决方案:
经过几次尝试和查看作曲家文档,我终于想出了一个可行的方法: 注意:我之所以需要此解决方案,是为了使我能够从Laravel包中自动添加Psr4路径,而无需在composer.json中手动添加包中所需的特定路径 将此添加到包服务提供商的引导方法中,我的是
DigitlimitModuleServiceProvider
use Illuminate\Support\ServiceProvider;
class DigitlimitModuleServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$autoload = require base_path('vendor/autoload.php');
$autoload->addPsr4('Digitlimit\\Module\\', base_path('modules'));
$autoload->register();
if(!file_exists(base_path('modules'))){
\File::makeDirectory(base_path('modules'));
//works as long as there is permission
}
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
}
}
你是唯一的吗?我还没有这个问题。仍然在寻找出路。这是我的帖子。让我们继续等待答案。我一直在谷歌上搜索