carlosv2/mink-legacy-driver

Mink/Behat 驱动程序,为旧版应用程序提供桥梁

1.0.0 2017-02-26 20:20 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:09:43 UTC


README

该项目旨在在 Mink 和旧版应用程序之间建立桥梁。一般来说,旧版应用程序并不是按照最佳实践编写的,或者太老了,无法支持它们。

License Build Status SensioLabsInsight

为什么?

旧版应用程序难以维护,主要是因为缺乏测试或者测试非常缓慢且痛苦。这种情况会产生改变恐惧,因为副作用是未知的。此外,旧版应用程序通常还会遇到以下情况

  • 不使用 composer 自动加载。
  • 依赖 PHP 超全局变量(如 $_GET$_POST$_SERVER 等)。
  • 有许多前端控制器。
  • 使用 exit/die 突然结束请求。

安装

使用以下命令安装

$ composer require --dev carlosv2/mink-legacy-driver

用法

按照以下方式设置你的 behat.yml 文件

default:
  extensions:
    carlosV2\LegacyDriver\Extension: ~
    Behat\MinkExtension:
      sessions:
        default:
          legacy:
            environment: <array>
            controller: <string|array>
            document_root: <string>
            bootstrap: <string|array>

其中

  • environment:包含环境变量的键/值数组。例如

    environment:
      variable: value
      env: prod
  • controller:前端控制器的位置。例如

    controller: path/to/the/controller.php

    或者你也可以提供一个前端控制器数组。例如

    controller:
      - path: /uri/to/match
        file: path/to/the/uri/to/match.php
      - path: /uri/to/another
        file: another/path/to/match.php    

    控制器键配置了 symfony/routing 组件。因此,你也可以添加 methodsrequirements 键。例如

    controller:
      - path: /item/{id}
        file: process_item.php
        methods: ["GET", "PUT"]
        requirements:
          id: \d+
  • document_root:文档根的位置。例如

    document_root: path/to/the/document/root/
  • bootstrap:在每次请求之前执行的自定义文件的位置。例如

    bootstrap: path/to/the/bootstrap/file.php

    或者你也可以提供多个在每次请求之前执行的文件。例如

    bootstrap:
      - path/to/the/bootstrap/file.php
      - another/path/to/bootstrap.php