yassinebenaid / eldia
Eldia 是一个轻量级的 PHP 包,为开发者提供了一套额外的助手,以简化常见的编程任务。
1.1
2023-02-18 16:09 UTC
Requires
- php: ^8.1
This package is auto-updated.
Last update: 2024-09-30 02:16:00 UTC
README
Eldia 是一个轻量级的 PHP 包,为开发者提供了一套额外的助手,以简化常见的编程任务。该库设计易于使用,具有优雅直观的语法,可以轻松地将强大功能添加到您的 PHP 应用程序中。
Eldia 包含各种助手,可用于处理数组、操作字符串、生成随机数据、处理异常等任务。这些助手旨在易于集成到您的代码中,并可以帮助您编写更干净、更高效的 PHP 代码。
安装
composer require joodek/eldia
功能
承诺
您是否使用过 JavaScript 承诺,如果是的话,您可能喜欢它们,我也喜欢它们,现在您可以在 PHP 中像这样使用它们:
use Eldia\Promise\Promise;
Promise::make(function ($success, $reject) {
if (0) {
$success('hello world');
} else {
$reject('error');
}
})
->then(fn ($message) => print($message), fn ($reason) => print($reason))
->catch(fn ($exception) => print($exception->getMessage()));
您可以使用任意多的 then
,每次使用时,您都可以访问最新返回的数据,请看示例
Promise::make(function ($success, $reject) {
$var = 5 + 5;
if ($var === 10) $success($var);
else $reject($var);
})
->then(fn ($data) => $data + 5)
->then(fn ($data) => print $data) // 15
这适用于 success
和 reject
回调,您甚至可以完全避免使用 reject
Promise::make(function ($success) {
if (0) {
$success('hello world');
} else{
// do somthing
}
})
->then(fn ($message) => print($message))
在承诺回调期间,您对各种错误都安全,除了语法错误,这意味着无论回调中发生什么,都不会发生错误,它只会停止执行回调,但是,如果您出于某种原因想在发生错误时执行一些代码,您可以使用 catch
Promise::make(function ($success) {
if (0) {
$success('hello world');
} else{
throw new Exception('error');
}
})
->catch(fn ($exception) => print($exception->getMessage())) // prints "error"
您甚至可以通过仅键入异常类型提示来捕获特定的错误,类型化异常只有在匹配类型时才会执行
Promise::make(function ($success) {
$str = "baz";
if ($str === "foo") {
$success('hello world');
} else {
throw new ValidationException('error');
}
})
->catch(fn (AuthException $exception) => print($exception->getMessage())) // won't works
->catch(fn (ValidationException $exception) => print($exception->getMessage())); // prints "error"