Mohannad/active-state

此包已 弃用,不再维护。作者建议使用 mohannadnaj/active-state 包。

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

1.0.0 2017-08-03 21:03 UTC

This package is auto-updated.

Last update: 2021-04-25 08:57:52 UTC


README

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

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

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';

返回除默认 'active' 字符串以外的自定义字符串

    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 来进行检查。

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

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