我已经为laravel 4.2开发了一个软件包,当你晚上已经注意到laravel 5.0刚刚发布时,我的软件包无法安装在新的laravel项目上
我的包的作曲家文件如下所示:
"require": {
"php": ">=5.4.0",
"illuminate/support": "4.2.*",
"zofe/rapyd" : "1.3.*"
},
问题:
我应该对我的项目进行哪些更改以使其与Laravel 5项目兼容?而且我的软件包需要这个尚未为Laravel5发布的软件包https://github.com/zofe/rapyd-laravel,是否会阻止我的软件包正确安装?
答案 0 :(得分:6)
如果你的软件包依赖于其他laravel软件包(即那些软件包在其composer.json文件中引用了Illuminate组件的特定版本),当它在依赖关系树中找到它无法解决的版本差异时,composer将会出错。 / p>
如果必须依赖第三方软件包,您需要等到该软件包更新或自行更新并向所有者提交PR。
否则您需要对以下内容进行一些修改:
所有laravel组件都需要具有5的主要版本。
"require": {
"php": ">=5.4.0",
"illuminate/support": "~5"
}
服务提供商已更改。它们不再包含用于从Laravel 4注册包的方法。*
public function boot()
{
// This no longer works
$this->package('vendor/name');
}
而是定义 服务提供商对某些命令的反应。例如,您已为包创建了config.php
。
以前,配置位于服务提供商可以找到的预定义位置,因为它知道您的包名为vendor/name
。相反,在L5中,您告诉提供者其配置在哪里。
public function boot()
{
$this->publishes([
__DIR__.'/path/to/config' => config_path('mypkg.php'),
]);
}
此示例使用配置文件特别处理 。新方法更加冗长,但允许更好地控制包资产,视图,本地化和配置。
文档详细介绍,可以找到here,如果要更新L5的软件包,必须阅读这些文档。