技术 / trafaret
此包已被弃用且不再维护。未建议替代包。
Trafaret 数据处理器
1.0.0
2022-02-25 18:00 UTC
Requires
- php: >=7.3
- ext-ctype: *
- ext-dom: *
- ext-libxml: *
- symfony/polyfill-php80: ^1.16
- symfony/validator: ^4.4 || ^5.1 || ^6.0
Requires (Dev)
- phpunit/phpunit: ^9.3
- slevomat/coding-standard: ^6.3
- squizlabs/php_codesniffer: ^3.5
- symfony/var-dumper: ^5.0 || ^6.0
Suggests
- ext-tidy: *
This package is auto-updated.
Last update: 2024-08-25 23:54:07 UTC
README
从多行文本片段中提取数据的一种简单方法。
安装
composer require chi-teck/trafaret --dev
用法
$input = <<< 'HTML' <h1>Example</h1> <div> <time>12:08</time> <span class="total">15</span> </div> HTML; $trafaret = new Trafaret( <<< 'HTML' <h1>Example</h1> <div> <time>{{ time }}</time> <span class="total">{{ total }}</span> </div> HTML, [ 'time' => new Regex('/^\d\d:\d\d$/'), 'total' => new GreaterThan(10), ], ); $manager = Manager::createDefault(); try { $data = $manager->apply($trafaret, $input); } catch (ExceptionInterface $exception) { \file_put_contents('php://stderr', $exception->getMessage() . "\n"); exit(1); } print_r($data);
占位符通过Symfony 验证器进行验证。
对于基于PHPUnit的测试,你可以使用TrafaretTrait来验证标记,如下所示。
final class HomePageTest extends SiteTestCase { use TrafaretTrait; public function testMarkup(): void { $trafaret = Trafaret::createFromFile(__DIR__ . '/../fixtures/home-page.html.trf'); $actual_html = $this->findByXpath('//div[@class = "page"]')->getOuterHtml(); $this->assertStringByTrafaret($trafaret, $actual_html); } }
许可证
MIT许可证