此包已被废弃且不再维护。未建议替代包。

标记应用程序运行时活动状态的辅助包。

1.0.0 2017-08-03 21:03 UTC

This package is auto-updated.

Last update: 2022-05-20 10:31:46 UTC


README

PHP辅助包,用于标记应用程序运行时活动状态。

此包的常见用例包括:标记活动菜单项、标记Navbar、侧边栏或标签页中的活动项。

Total DownloadsBuild Status

安装

Composer

首选安装方法,使用composer,包可在Packagist上找到,因此可以要求安装

composer require mohannadnaj/active-state

用法

基本用法

    set_active('navbar', 'index');
    set_active('sidebar', 'info');

    is_active('navbar','index'); // return "active"
    is_active('navbar','about'); // return null
    
    is_active('sidebar','info'); // return "active"
    is_active('sidebar','warning'); // return null
    
    get_active('navbar'); // return 'index';
    get_active('sidebar'); // return 'info';

返回除默认“活动”字符串以外的自定义字符串

    set_active('navbar2', 'index',['true'=>'some-active-css-class']);

    is_active('navbar2','index');    // return 'some-active-css-class'
    is_active('navbar2','about');    // return null

在成功/失败时返回自定义字符串

    set_active('navbar3', 'register',['true'=>'is-active-css-class', 'false'=> 'not-active']);

    is_active('navbar3', 'register'); // return 'is-active-css-class'
    is_active('navbar3', 'login'); // return 'not-active'

无键

    set_active('developer-mode');

    is_active('developer-mode');  // return 'active'
    is_active('not-developer-mode');  // return null
    
    get_active();  // return 'developer-mode'

返回布尔值

    set_active('bottom-bar', 'index',['return'=>'boolean']); // 'boolean' or 'bool'

    is_active('bottom-bar','index');    // return true;
    is_active('bottom-bar','about');    // return false;

获取活动项

    set_active('tabs', 'tab2');

    get_active('tabs'); // return 'tab2';

内容概述

问题

标记活动项是任何UI中的常见基本部分,提供对项目状态的视觉指示。这通常在PHP中像

$current_page = 'contact'; 

<li class="<?= $current_page == 'home' ? 'active' : '' ?>"><a href="#home">Home</a></li>
<li class="<?= $current_page == 'about' ? 'active' : '' ?>"><a href="#about">About</a></li>
<li class="<?= $current_page == 'contact' ? 'active' : '' ?>"><a href="#contact">Contact</a></li>

在不同的应用程序部分重复此代码以标记活动状态,会使代码难以阅读,难以维护。

一些解决方案存在缺点:1- 框架特定包。2- 完全基于URL路由。3- 只能标记一个活动项。

解决方案

该包将加载方法set_activeget_activeis_activeset_active将设置给定的设置到Mohannadnaj\Active类内的静态变量中,这些设置回答以下问题:活动项是什么?如果检查通过,应该返回什么?或者应该返回布尔值?以及你想将所有这些设置附加到的键是什么?

上述示例可以翻译为:      

set_active('navbar', 'about');

<li class="<?= is_active('navbar', 'home'); ?>"><a href="#home">Home</a></li>
<li class="<?= is_active('navbar', 'about'); ?>"><a href="#about">About</a></li>
<li class="<?= is_active('navbar', 'contact'); ?>"><a href="#contact">Contact</a></li>

set_active方法将第一个参数set_active('navbar' , ...)视为我们稍后想要捕获的active元素的设置器,即'about'

要求

  • PHP >=5.3

开发

  • 查看tests/ActiveStateTest.php 测试用例,以了解使用辅助方法的多种示例。

  • 考虑保持与较旧版本的PHP兼容性(>=5.3),我个人使用PHPCompatibility来自动进行检查。

  • 待办事项:更好的文档。使用方法时更好的语法一致性(接受和返回类型)。

感谢您考虑为此项目做出贡献。