SVG アイコンをレンダリングするための便利な PHP ライブラリ。
150 を超えるオープン ソース アイコン セットの 200,000 を超えるアイコンに、php ファイルから直接アクセスできます。
Iconifyに感謝します❤️
composer require yassinedoghri/php-icons
次のコマンドを実行して構成ファイルを初期化します。
vendor/bin/php-icons init
これにより、プロジェクトのルートにphp-icons.php
構成ファイルを作成するよう求められます。詳細については、構成リファレンスを参照してください。
icon(string $iconKey, array $attributes)
関数アイコン キー ( {prefix}:{icon}
) をパラメーターとして使用して、ビュー ファイルでグローバル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>
属性を追加するには、2 番目のパラメーターを使用するか、 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([])
SVG アイコンのダウンロードをクエリするための API ホストをアイコン化します。最初のホストにクエリを実行することで開始され、残りはバックアップとして使用されます。
デフォルトは 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)。