Mohannad / 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: 2021-04-25 08:57:52 UTC
README
PHP 用于在应用程序运行时标记活动状态的辅助包。
此包的常见用例包括:标记活动菜单项、标记 Navbar、Sidebar 或标签页中的活动项。
安装
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_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 来进行检查。
-
待办事项:更好的文档。更好的方法使用一致性语法(
接受和返回类型
)。
感谢您考虑为这个项目做出贡献。