petrknap/shorts
最新稳定版本:v3.3.0
Composer 安装命令:
composer require petrknap/shorts
包简介
Set of short PHP helpers
README 文档
README
Exceptions
CouldNotProcessData template
Template for an exception that indicates that the data could not be processed.
interface ImageResizerException extends Throwable {} final class ImageResizerCouldNotResizeImage extends PetrKnap\Shorts\Exception\CouldNotProcessData implements ImageResizerException {} final class ImageResizer { public function resize(string $image) { throw new ImageResizerCouldNotResizeImage(__METHOD__, $image); } }
NotImplemented
Simple exception for prototyping purposes.
final class StringablePrototype implements Stringable { public function __toString(): string { PetrKnap\Shorts\Exception\NotImplemented::throw(__METHOD__); } }
HasRequirements trait
Simple trait to check if requirements of your code are fulfilled.
final class ServiceWithRequirements { use PetrKnap\Shorts\HasRequirements; public function __construct() { self::checkRequirements(functions: ['required_function']); } public function do(): void { required_function(); } }
It should not replace Composers requires,
but it could improve them and check suggests.
Testing
IlluminateDatabase helper
Simple helper which provides logic to test Illuminate\Database without Laravel mess.
$pdo = new PDO('sqlite::memory:'); $pdo->exec('CREATE TABLE tigers (id INTEGER PRIMARY KEY, name VARCHAR)'); $pdo->prepare('INSERT INTO tigers (name) VALUES (?), (?), (?)') ->execute(['Roque', 'Jasper', 'Gopal']); PetrKnap\Shorts\Testing\IlluminateDatabase::createCapsuleManager($pdo) ->bootEloquent(); class Tiger extends Illuminate\Database\Eloquent\Model {} assert(Tiger::count() === 3);
MarkdownFileTest interface + trait
The interface and trait let you automatically test code examples in a Markdown file like README.md.
final class ReadmeTest extends PHPUnit\Framework\TestCase implements PetrKnap\Shorts\PhpUnit\MarkdownFileTestInterface { use PetrKnap\Shorts\PhpUnit\MarkdownFileTestTrait; public static function getPathToMarkdownFile(): string { return __DIR__ . '/../README.md'; } public static function getExpectedOutputsOfPhpExamples(): array { return [ 'some example' => 'has this output', ]; } }
By specifying the file path and expected outputs, the trait runs each code block and checks that its output matches, keeping documentation examples correct and up‑to‑date.
Run composer require petrknap/shorts to install it.
You can support this project via donation.
The project is licensed under the terms of the LGPL-3.0-or-later.
统计信息
- 总下载量: 93.31k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 17
- 推荐数: 0
其他信息
- 授权协议: LGPL-3.0-or-later
- 更新时间: 2023-11-04