用户名/mohannadnaj / active-state
此包已被废弃且不再维护。未建议替代包。
标记应用程序运行时活动状态的辅助包。
1.0.0
2017-08-03 21:03 UTC
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: ^4.0
This package is auto-updated.
Last update: 2022-05-20 10:31:46 UTC
README
PHP辅助包,用于标记应用程序运行时活动状态。
此包的常见用例包括:标记活动菜单项、标记Navbar、侧边栏或标签页中的活动项。
安装
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_active、get_active和is_active,set_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来自动进行检查。
-
待办事项:更好的文档。使用方法时更好的语法一致性(
接受和返回类型)。
感谢您考虑为此项目做出贡献。