定制 impulsephp/ui 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

impulsephp/ui

Composer 安装命令:

composer require impulsephp/ui

包简介

A comprehensive UI component provider for ImpulsePHP, offering pre-built components to rapidly design and develop modern web application interfaces

README 文档

README

impulsephp/ui fournit une bibliothèque de composants d’interface réutilisables pour ImpulsePHP, avec des stories de démonstration intégrées et des helpers pour accélérer le prototypage d’interfaces.

Fonctionnalités principales

  • Composants UI pour formulaires, navigation, notifications et widgets d'interface.
  • Stories intégrées (dossier src/Story) pour parcourir et tester visuellement les composants.
  • Intégration avec impulsephp/translation et impulsephp/validator.
  • Assets CSS fournis dans public/css/ui.css.

Nouveautés récentes

  • UIHeatmapComponent : possibilité de choisir une couleur principale (Tailwind) ou de fournir une palette hex; les stories proposent désormais un contrôle color.
  • UIBreadcrumbComponent : les items peuvent contenir du html brut ou un { component, props, slot } pour insérer, par exemple, un <select> dans un segment de breadcrumb.
  • UITooltipComponent : support d'un soulignement en tirets configurable (underline, underlineColor) et améliorations pour hover/click/focus.
  • UIDataTableComponent : chevrons de tri affichés pour la colonne triée et rendu SVG côté serveur pour fiabilité visuelle.
  • UITreeViewComponent : meilleure alignement des labels enfants sous le label parent.
  • Certaines stories ont été enrichies pour faciliter les tests (variants, contrôles de couleur/position etc.).

Prérequis

  • PHP 8.2 ou supérieur
  • impulsephp/core
  • (optionnel) impulsephp/translation et impulsephp/validator pour fonctionnalités additionnelles

Installation

composer require impulsephp/ui

Si votre application n’utilise pas l’auto-découverte de composer, enregistrez manuellement le provider Impulse\\UI\\UIProvider.

Provider

Au démarrage, UIProvider :

  • enregistre l’espace de noms Impulse\\UI\\Component\\ ;
  • ajoute src/Story aux chemins scannés par impulsephp/story ;
  • ajoute public/css/ui.css à la configuration CSS ;
  • enregistre le namespace de traduction ui ;
  • vérifie la présence du validateur et du traducteur dans le conteneur.

Composants et organisation

Les composants sont rangés sous src/Component/ par famille : Form/, Navigation/, Notification/, Interface/.

Exemples notables : UIInputComponent, UIButtonComponent, UISelectComponent, UIModalComponent, UIDataTableComponent, UIDrawerComponent, UITooltipComponent, UIPopoverComponent, UIHeatmapComponent, UIBreadcrumbComponent, UITreeViewComponent, UISidebarComponent, etc.

Stories et contrôles

Les stories fournissent des arguments de base (getBaseArgs) et des variants() pour tester les variantes visuelles. Pour faciliter l'ajout de contrôles (dropdowns) dans les stories, la convention suivante est autorisée dans les stories :

  • fournir un argument sous la forme [defaultValue, allowedValuesArray] pour indiquer au UI explorer qu'il y a un contrôle avec des options. Exemple : ['side' => ['right', ['left','right']]].

Le loader de story ne transmettra que la defaultValue au composant lors du rendu, évitant d'envoyer le tableau allowedValues en tant que valeur d'état côté serveur.

Exemples d'utilisation

Rendre un composant dans une story :

use Impulse\\UI\\Component\\Interface\\UIDataTableComponent;

$component = UIDataTableComponent::class;
$args = [
    'columns' => [['key' => 'name', 'label' => 'Name']],
    'rows' => [['name' => 'Alice']],
    'sortBy' => 'name',
];

Assets JS (engine)

Le répertoire js/ contient l'engine JS du package. Pour construire l'artefact :

cd js
npm install
npm run build

Le package.json inclut des scripts utiles : build, watch et test.

Tests

Tests unitaires et smoke tests se trouvent dans tests/. Pour exécuter les smoke tests du package UI :

cd ui
./vendor/bin/phpunit tests/smoke

Traductions

Les fichiers de traduction sont disponibles dans translations/en et translations/fr et chargés sous le namespace ui. Exemple :

$translator->trans('ui::ui.select.search_placeholder');

Contribution et développement

Pour contribuer :

  1. Ouvrez une branche dédiée.
  2. Ajoutez des tests pour les comportements modifiés.
  3. Vérifiez les styles Tailwind si vous ajoutez des classes dynamiques (pré-déclarez les classes utilisées pour éviter leur purge).

Licence

MIT

impulsephp/ui 适用场景与选型建议

impulsephp/ui 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 08 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 impulsephp/ui 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 impulsephp/ui 我们能提供哪些服务?
定制开发 / 二次开发

基于 impulsephp/ui 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 14
  • 依赖项目数: 0
  • 推荐数: 2

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-03