djl997/blade-shortcuts

Blade Shortcuts 是一个包含实用 Laravel Blade 指令的库。

1.8.0 2024-06-20 14:26 UTC

This package is auto-updated.

Last update: 2024-09-25 07:12:34 UTC


README

Latest Version on Packagist Total Downloads Build Status Software License

Blade Shortcuts 包含以下巧妙的 Blade 指令,目标是减少 Blade 视图中的重复(基础)逻辑,整体代码更短,可读性更好。

要求

Blade Shortcuts 需要 PHP 8+ 和 Laravel 6+。

安装

您可以通过 composer 安装此包

composer require djl997/blade-shortcuts

用法

安装后,所有指令应立即可用。如果首次使用或更新后出现问题,请使用 php artisan view:clear 来清除问题。

内容

应用名称

@appname <!-- Laravel, default APP_NAME in .env file -->

布尔值

@boolean(true) <!-- true -->
@boolean(false) <!-- false -->

配置

@config('config-file.key') <!-- anything -->

日期

自动将日期翻译成正确的本地化格式(目前支持英文、荷兰语、德语、西班牙语)。

@date() <!-- February 8, 2024 -->
@date(time()) <!-- February 8, 2024 -->
@date(date('Y-m-d')) <!-- February 8, 2024 -->

其他选项

@date(now()->subHours(20)) <!-- February 14, 2024 -->
@date(now()->subHours(20), 'dateOrDiff') <!-- 20 hours ago -->
@date(now()->subWeek()) <!-- February 8, 2024 -->
@date(now()->subWeek(), 'dateOrDiff') <!-- February 8, 2024 -->

如果时间差超过23小时,'dateOrDiff' 将自动以本地化格式显示日期,而不是“x时间前”或“在x时间后”。您可以在配置文件中调整此阈值: php artisan vendor:publish --tag=blade-shortcuts-config

尝试 datetime、time、year、month 或 day 的快捷方式(也在正确的本地化格式中)

@datetime <!-- February 8, 2024 3:04 PM -->
@time <!-- 3:04 PM -->
@year <!-- 2024 -->
@month <!-- February -->
@day <!-- Tuesday -->

您甚至可以为 datetime、time、year、month 或 day 添加自定义日期,例如

@day(now()) <!-- Thursday -->
@year('2024-02-08')  <!-- 2024 -->

星期几,月几,年几

在某些情况下,您可能需要星期几、月几或年几。

@dayOfYear <!-- 177 -->
@dayOfMonth <!-- 25 -->
@dayOfWeek <!-- 2 -->

或基于值生成它

@dayOfWeek('2024-06-25') <!-- 2 -->
@dayOfWeek(now()->subDay()) <!-- 1 -->
@dayOfYear($user->updated_at) <!-- 177 -->

Carbon Cascades

如果您想以人类可读的格式显示一定的时间量,请尝试新的 cascade 指令。例如,将 125 分钟转换为可读格式

@cascadeFromMinutes(125) <!-- 2h 5m -->
@cascadeFromHours(146) <!-- 6d 2h -->
更改时间单位

如果您设置时间单位(数组中的第二个项目),则 cascade 将扩展到给定的单位。在下面的示例中,我们有 1530 分钟,分为 60 分钟的小时

@cascadeFromMinutes(1530) <!-- 1d 1h 30m -->
@cascadeFromMinutes([1530, ['hour' => 60]]) <!-- 25h 30m, (Please notice the use of an array!) -->
CarbonInterval

上面的示例还意味着您可以调整 CarbonInterval。假设您有一个需要 125 小时工作的项目,您每天可以分配 30 小时。完成项目需要多少天?我们使用 @cascadeFromHours 指令来计算这个值

@cascadeFromHours([125, ['day' => 30]]) <!-- 4d 5h -->

文件大小

@filesize(2145) <!-- 2 kB -->
@filesizemb(124588) <!-- <1 MB -->
@filesizegb(1198466000) <!-- 1,1 GB -->

nl2br

如何在只读情况下显示从 textarea 输入的内容?也许您使用 !! $comment !!} 获取未转义的数据。这样,您就失去了 XSS 防护,因此如果风险太高,可能需要牺牲换行符。现在,这不再是必要的:使用 @nl2br 指令。

@nl2br('Your view will show newlines.\n\n Very intuitive.') 
<!-- 
Your view will show newlines.

Very intuitive.
-->

@nl2br('Your possible unsafe HTML code <script>alert('Hello world')</script>\n will not execute.')
<!-- 
Your possible unsafe HTML code <script>alert('Hello world')</script>
will not execute.
-->

非空,@empty 的逆

@notEmpty(1)
    I'm not empty.
@endNotEmpty

未设置,@isset 的逆

@notSet($notSetVariable)
    I'm not set.
@endNotSet

百分比

@percentage(1) <!-- 100% -->
@percentage(0.055) <!-- 5.5% -->
@percentage(100) <!-- 100% -->
@percentage(50) <!-- 50% -->
@percentage(0.5) <!-- 50% -->
@percentage(0.505) <!-- 50.5% -->
@percentage(-5) <!-- -5% -->

辅助函数

数组

<?php $array = ['Tailwind', 'Alpine', 'Laravel', 'Livewire']; ?>

<!-- Before -->
{{ Illuminate\Support\Arr::join($array, ', ', ' and ') }}

<!-- After -->
@arr(join($array, ', ', ' and '))  

<!-- Result -->
Tailwind, Alpine, Laravel and Livewire

Laravel 文档 中查找所有可用方法。

流畅字符串

<!-- Before -->
{{ Illuminate\Support\Str::of('    laravel    framework    ')->squish() }}

<!-- After -->
@str(of('    laravel    framework    ')->squish())  

<!-- Result  -->
laravel framework

Laravel 文档 中查找所有可用方法。

发布配置

php artisan vendor:publish --tag=blade-shortcuts-config

更新日志

有关最近更改的更多信息,请参阅 GitHubs 发布部分

贡献

欢迎贡献。

许可

MIT许可证(MIT)。请参阅许可证文件获取更多信息。