djl997 / blade-shortcuts
Blade Shortcuts 是一个包含实用 Laravel Blade 指令的库。
Requires
- php: ^8.0
- laravel/framework: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- nesbot/carbon: ^2.31|^3.0
Requires (Dev)
- orchestra/testbench: ^7.32
README
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)。请参阅许可证文件获取更多信息。