adods/page-marker

用于在请求查询中保存 CRUD 列表筛选的库

1.0 2019-11-29 08:07 UTC

This package is auto-updated.

Last update: 2024-09-29 05:48:43 UTC


README

用于记住/记录用于筛选列表的 URL 查询字符串的简单库

安装

通过 Composer

composer require adods/page-marker

或者直接手动下载文件并将其放入您的 lib 目录中

要求

PHP >= 7.0 且 PHP 会话已启用

简单用法

将库包含到您的文件中,创建实例,调用 init()remember()。使用 forget() 来重置。

require "path/to/lib/src/PageMarker.php";
// or if you're using composer
require "path/to/vendor/autoload.php";

use Adods\PageMarker\PagerMarker;

// Make sure there's no output before doing this
$pm = new PageMarker;

// Setup default setting and redirect when condition are met
$pm->init();

// Start recording
$pm->remember();

init()

默认情况下,init() 将根据当前 URL 路径生成默认名称,转换为小写,然后将斜杠 '/'、点 '.'、连字符 '-' 和空格 ' ' 替换为下划线 _。设置默认 URL 为不带查询字符串的当前 URL。并使用 $_GET 超全局变量的内容作为基本数据。但,这可以更改。

在设置默认属性之后,它将检查是否需要重定向到最后一个状态或继续进行。

条件如下

  • 如果基本数据包含重置键元素,则将删除记住的会话,并将重定向到基本 URL。
  • 如果基本数据不为空,则正常继续处理
  • 然后它将检查会话中是否存在数据。
  • 如果会话数据为空,则正常继续处理
  • 最后,它将重定向到基本 URL,并将会话中的数据作为查询字符串参数

主要设置/设置

以下设置应在 init() 之前设置。

会话名称

名称用作会话键的一部分。

$pm->setName('new_name');

名称应易于阅读,并描述列表的内容,同时也要适合作为数组键。并且上述提到的任何字符都将被替换为下划线 '_'

更改基本 URL

$om->setUrl('http://newurl.test/path')

将省略任何查询字符串。

更改基本数据源

$pm->setBase($somearray);

更多功能

添加/更改数据

$pm->add('newkey', 'newvalue');
// or
$pm->add([
    'key1' => 'val1',
    'key2' => 'val2',
    'key3' => 'val3'
]);

使用数组作为参数将合并数组与当前数据

排除数据

$pm->except('nothisone');
// or
$pm->except(['notme', 'alsonotme']);

记住选项

数据也可以从 remember() 方法中覆盖。

$pm->remember([
    'shouldbeme' => 'yes'
]);

默认情况下,给定的参数将替换当前的基本数据。要添加它们,可以使用 PageMarker::OVERRIDE_APPEND 常量作为第二个参数。

$pm->remember([
    'letmejoin' => 'yes'
], PageMarker::OVERRIDE_APPEND);

手动忘记/重置

$pm->forget();

获取忘记/重置 URL

$pm->getResetUrl();

完整示例

require_once './vendor/autoload.php';

use Adods\PageMarker\PageMarker;

$pm = new PageMarker;

$pm->init();

$pm->remember();

var_dump($pm->getBase());
?>
<div>
    Base URL: <?php echo $pm->getUrl(); ?>
</div>
<a href="<?php echo $pm->getResetUrl(); ?>">Reset</a>

尝试向 URL 添加参数。每次访问基本 URL 时,它都会自动重定向到包含查询字符串参数的最后一个状态 URL。点击重置链接以清除所有保存的数据。