创建一个Bug扬声器

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

创建一个Bug扬声器

主要的Symfon欧宝娱乐app下载地址y代码存储库接收报告每年成千上万的问题。这些问题太明显或者容易理解,Symfony的核心开发人员可以修复它们没有任何其他信息。欧宝娱乐app下载地址然而,其他问题都是难以理解的,因为开发人员不能轻易复制他们的电脑。当我们问你创建一个扬声器的“故障”,这是所需的最少的代码错误出现时执行。

繁殖简单的错误

如果你报告一个缺陷相关的一些Symfony组件之外使用Symfony框架,这足以共享一欧宝娱乐app下载地址个小型PHP脚本执行时显示错误:

1 2 3 4 5 6 7 8 9 10 11 12 13
/ /首先,运行“作曲家要求symfony /验证器”欧宝娱乐app下载地址/ /然后,执行这个文件:< ? phprequire_once__DIR__“/供应商/ autoload.php”;使用欧宝娱乐app下载地址\组件\验证器\约束;美元wrongUrl=”http://example.com/exploit.html? <脚本>警报(1),> < /脚本的;美元urlValidator=约束\ UrlValidator ();美元urlConstraint=约束\ Url ();/ / URL是错误的,所以var_dump()应该显示一个错误,但它显示/ /“零”而不是因为没有上下文建立验证器违反var_dump (美元urlValidator- >validate (美元wrongUrl,美元urlConstraint));

复制复杂的错误

如果错误相关的Symfony框架或如果太复杂,创建一个PH欧宝娱乐app下载地址P脚本,重现这个bug的最好通过分叉Symfony标准版。这样做:

  1. https://github.com/欧宝娱乐app下载地址symfony/symfony-standard,然后点击按钮叉的库或去你已经分叉的副本。
  2. 克隆分叉的存储库为你的电脑:git克隆git: / /github.com/YOUR-GITHUB-USERNAME/sym欧宝娱乐app下载地址fony-standard.git
  3. 浏览(例如项目并创建一个新的分支。issue_23567,reproduce_23657等)。
  4. 现在你必须添加重现这个bug的代码的最小数量。这是最棘手的部分解释更多。
  5. 添加、承诺,推动你所有的变化。
  6. 原来的问题报告中添加一个评论分享你的项目(如的URL。https://github.com/YOUR-GITHUB-USERNAME/欧宝娱乐app下载地址symfony-standard/tree/issue_23567),如果有必要,解释的步骤(如繁殖。“浏览这个URL”、“填写这个数据形式和提交”,等等)。

添加代码的最小数量

创建一个bug扬声器的关键是专注于功能,你怀疑是失败。例如,假设你怀疑错误路线有关的定义。之后,分叉Symfony标准版:欧宝娱乐app下载地址

  1. 不要编辑任何默认的Symfony的配置选项。欧宝娱乐app下载地址
  2. 不要复制原始应用程序代码,不要使用相同的包结构,控制器,操作等原始应用程序。
  3. 打开的默认控制器类AppBundle并添加你的路由定义使用注释。
  4. 不创建或修改其他文件。
  5. 执行服务器:运行命令和浏览前面定义的路线是否错误出现。
  6. 如果你能看到虫子,你已经做完了,你可以与我们分享代码。
  7. 如果你不能看到错误,你必须坚持做一些小的改变。例如,如果您的原始路线定义使用XML,忘记前面的路线注释,使用XML定义的路线。或者你的应用程序使用包继承,那才是真正的错误。然后忘记AppBundle,快速生成一个新的AppParentBundle,从中AppBundle继承和测试如果路线工作。

简而言之,这个想法是为了使添加小和增量更改默认Symfony标准版,直到你能重现错误。欧宝娱乐app下载地址

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。