sebastianknott / dev-utils
这是我为开发所需的一系列工具。
0.4.0
2023-01-18 13:47 UTC
Requires
- php: ^8.1.0
- ext-ast: *
- ext-igbinary: *
- bamarni/composer-bin-plugin: ^1.4
- davidrjonas/composer-lock-diff: ^1.5
- deployer/deployer: ^6.7
- fakerphp/faker: ^1.9
- hamcrest/hamcrest-php: ^2.0
- infection/infection: ^0.26.16
- mindplay/composer-locator: ^2.1
- mockery/mockery: ^1.3
- phake/phake: ^3.1
- phan/phan: ^5.4.1
- php-parallel-lint/php-console-highlighter: ^0.5.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpcompatibility/php-compatibility: ^9.3
- phpmd/phpmd: ^2.8
- phpmetrics/phpmetrics: ^2.7.0
- phpstan/phpstan: ^1.9.12
- phpstan/phpstan-deprecation-rules: ^1.0.0
- phpstan/phpstan-doctrine: ^1.0.0
- phpstan/phpstan-mockery: ^1.0.0
- phpstan/phpstan-phpunit: ^1.0.0
- phpunit/phpunit: ^9.5.0
- psalm/plugin-phpunit: ^0.18.4
- rregeer/phpunit-coverage-check: ^0.3.1
- sebastian/phpcpd: ^6.0.0
- sebastianknott/coding-standard: ^2.0.0
- sebastianknott/hamcrest-object-accessor: @dev
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^5.4.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-18 17:45:12 UTC
README
... 简而言之,DUSK(是的,这就是我的风格)是我个人开发项目的工具集。它帮助我快速启动项目,并使一切保持简单和自动化。我尽量使事情保持简单,因此它应该与php >= 7.2兼容,但我将专注于运行最新的PHP版本。
包含什么?
以下是一些你可以在这里找到的工具的简要列表。
单元测试工具
对于单元测试,我个人更喜欢显而易见的。
- phpunit/phpunit
- mockery/mockery
- phake/phake
- hamcrest/hamcrest-php
- sebastianknott/hamcrest-object-accessor
- infection/infection
DevUtilsTestCase
我包含了一个新的单元测试基类,称为 DevUtilsTestCase
。这个类将包含一个faker实例和我的个人 SystemUnderTestFactory
。此外,mockery和hamcrest的全局函数在您的测试类中也是可用的。
<?php use Mockery\MockInterface; use SebastianKnott\DevUtils\Test\Infrastructure\DevToolsTestCase; class ExampleTest extends DevToolsTestCase { public function testExample(){ // Build your subject with mocked dependencies. There is // also a method for all you phake fans out there ^^ $subjectBundle = self::$factory ->buildSutWithMockery(Example::class); // Access your subject by getting it from the bundle. $subject = $subjectBundle->getSubject(); // Access the corresponding mocked constructor parameters // by name with array notation. /** @var MockInterface $firstParameter */ $firstParameter = $subjectBundle['firstParameterName']; // Notice that you can access hamcrest functions globally // (e.g. `startsWith`) $firstParameter->shouldReceive('myTest') ->with(startsWith('bla')); // ... and faker stands by for your disposal $result = $subject->runMyStuff(self::$faker->address); assertThat($result, is(boolValue())); } }
部署器
我为部署器编写了两个相当不寻常的配方。
Recipe staticCodeAnalysis
这个配方包含代码质量工具下找到的工具的目标。
Recipe unitTest
这个配方包含运行phpunit和infection的效率目标。
我喜欢的Composer库
这是一份我非常喜爱并迟早会安装的工具列表。
- bamarni/composer-bin-plugin 一个很棒的用于安装显示在vendor/bin中的二进制文件的composer包的工具,无需处理依赖问题。
- davidrjonas/composer-lock-diff 这个小助手比较两个composer.lock文件,并以易于理解的方式打印出差异。
- dealerdirect/phpcodesniffer-composer-installer 直接将Code Sniffer标准安装到Code sniffer中。不再需要路径处理。
- fzaninotto/faker 这个工具可以生成任何类型的lorem ipsum。
- infection/infection 将您的单元测试置于显微镜下,并使您成为更好的程序员
- mockery/mockery 轻松模拟内容
- mockery/mockery 轻松模拟内容
代码质量工具
所有我需要的工具,配置相互兼容。
目前,所有这些都是未来的框架。所有内容都是由部署器缝合在一起的。简单的 dep sca
应该执行所有工具。
随phpcs一起包含的是我的个人编码规范。这是slevomats编码规范和PSR-12之间的一个相当平和的混合。