Удобная PHP-библиотека для рендеринга значков SVG.
Получите доступ к более чем 200 000 значков из более чем 150 наборов значков с открытым исходным кодом прямо из ваших php-файлов!
Спасибо 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"
*/
Ваш файл конфигурации загружается как инструментом CLI php-icons
, так и классом 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 может искать их локально в вашей файловой системе вместо вызова API Iconify.
Важный
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 г. – настоящее время, Яссин Догри (@yassinedoghri).