一个方便的 PHP 库,用于渲染 svg 图标。
直接从您的 php 文件访问 150 多个开源图标集中的 200,000 多个图标!
感谢 Iconify ❤️
composer require yassinedoghri/php-icons
执行以下命令初始化配置文件:
vendor/bin/php-icons init
这将提示您在项目的根目录中创建php-icons.php
配置文件。请参阅配置参考以获取更多信息。
icon(string $iconKey, array $attributes)
函数在视图文件中使用全局icon(…)
函数,并将图标键 ( {prefix}:{icon}
) 作为参数:
{prefix}
:是图标集前缀{name}
:是图标名称 echo icon ( ' material-symbols:bolt ' );
// <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
// <path fill="currentColor" d="m8 22l1-7H4l9-13h2l-1 8h6L10 22z"/>
// </svg>
要添加属性,请使用第二个参数或调用attr()
或attributes()
方法:
echo icon ( ' material-symbols:bolt ' , [
' class ' => ' text-2xl ' ,
' style ' => ' color: yellow; '
]);
// <svg class="text-2xl" style="color: yellow;" […]>…</svg>
echo icon ( ' material-symbols:bolt ' )
-> attr ( ' class ' , ' text-2xl ' )
-> attr ( ' style ' , ' color: yellow; ' );
// <svg class="text-2xl" style="color: yellow;" […]>…</svg>
echo icon ( ' material-symbols:bolt ' )
-> attributes ([
' class ' => ' text-2xl ' ,
' style ' => ' color: yellow; '
]);
// <svg class="text-2xl" style="color: yellow;" […]>…</svg>
提示
从 Iconify 的索引中查找并复制流行的开源图标集的图标键。
重要的
首次定义图标时,将显示一个占位符(默认 �
�)。
确保运行scan
命令来加载 SVG。
vendor/bin/php-icons scan
scan
命令将对您配置的路径中的所有 PHP 文件执行静态分析,以识别图标键 ( {prefix}:{name}
) 并下载相应的图标。
默认使用icon
标识符:
icon(…)
功能
echo icon ( ' ri:php-fill ' ) // identified "ri:php-fill"
注释中的@icon(…)
注释
// @icon('ri:heart-fill') --> identified "ri:heart-fill"
# @icon('ri:home-fill') --> identified "ri:home-fill"
/*
* @icon('ri:user-fill') --> identified "ri:user-fill"
* @icon('ri:group-fill') --> identified "ri:group-fill"
*/
您的配置文件由php-icons
CLI 工具和 PHPIcons 类加载,它应该如下所示:
<?php
declare (strict_types= 1 );
use PHPIcons Config PHPIconsConfig ;
return PHPIconsConfig:: configure ()
-> withPaths ([
__DIR__ . ' /src '
])
-> withDefaultPrefix ( '' )
-> withPlaceholder ( ' � ' );
withPaths([])
源文件的路径列表。 PHP 文件将被解析和扫描以发现您定义的图标。
withAPIHosts([])
Iconify API 主机用于查询下载 svg 图标。首先查询第一台主机,其余的用作备份。
默认为 Iconify 的公共主机: ["https://api.iconify.design","https://api.simplesvg.com", "https://api.unisvg.com"]
withLocalIconSets([])
如果您有自定义图标,php-icons 可以在您的文件系统中本地查找它们,而不是调用 Iconify API。
重要的
php-icons 将在本地图标集中查找{name}.svg
文件
接受一个关联数组,其中图标集前缀作为键,其路径作为值。
my-custom-set/
├── heart.svg
├── rocket.svg
├── star.svg
└── user.svg
// in your config file
-> withLocalIconSets ([
' custom ' => ' /path/to/my-custom-set ' ,
])
// ✅ ALL GOOD
echo icon ( ' custom:heart ' );
echo icon ( ' custom:rocket ' );
echo icon ( ' custom:star ' );
echo icon ( ' custom:user ' );
// ICONS NOT FOUND
echo icon ( ' custom:banana ' );
echo icon ( ' custom:key ' );
withDefaultPrefix('')
未设置时使用的默认图标设置前缀。
将material-symbols
设置为默认前缀:
// this
echo icon ( ' bolt ' );
// same as this
echo icon ( ' material-symbols:bolt ' );
withDefaultIcon()
未找到图标时使用的默认图标。
接受图标键{prefix}:{name}
。如果未设置前缀,则将使用默认前缀。
withDefaultIconPerSet([])
在集合中未找到图标时使用的默认图标。
接受一个关联数组,键是图标集前缀,值是默认图标。
withPlaceholder('�')
当图标未找到或未知时显示的字符串。
默认为 �
替换字符)。
withIdentifiers([])
用于识别源文件中的图标键的函数或方法名称。
默认为['icon']
。
> vendor/bin/php-icons
_ _
_ __ | | __ _ __ (_) ___ ___ _ __ ___
| ' _ | ' _ | ' _ | |/ __/ _ | ' _ / __ |
| | _) | | | | | _) | | | (_ | (_) | | | _ _
| .__/ | _ | | _ | .__/ | _ | _ __ _ __/ | _ | | _ | ___/
| _ | | _ |
A convenient PHP library to render svg icons
----------------------------------------------
PHPIcons, version 1.0.0.0-dev
Commands:
*
init i Configure PHPIcons interactively
scan s Scans source files and loads icons
Run ` < command > --help ` for specific help
如果没有 Iconify 团队和维护许多开源图标集的设计师的出色工作,这是不可能实现的。
灵感来自天文图标、刀片图标和校长。
根据 MIT 许可证发布的代码。
版权所有 (c) 2024 年至今,Yassine Doghri (@yassinedoghri)。