malantonio/dewey

解析和比较杜威十进制系统编号。

v1.1.0 2015-08-02 21:58 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:02:14 UTC


README

Build Status

一组用于处理杜威十进制编号的工具

一些术语解释

据我所知(尽管可能不足),在杜威十进制系统编号中区分整数和小数部分并没有一套固定的术语。内部使用以下术语来指代不同的部分

对于编号 DVD 741.4372 A123b c.2 v.3 2004

term     | value

-------------|------ 预印戳 | DVD 主要 | 741 次要 | 4372 分隔符 | A123b 附加 | c.2 v.3 2004 编号| 741.4372

还有一个有点令人困惑的地方,那就是编号和CallNumber对象的区别。除非特别引用CallNumber对象的$callNumber字段,否则驼峰式命名的CallNumber指代对象,而小写call number指代主要/次要组合。

如果您有任何关于清理代码的建议,请添加一个问题!

用法

Dewey类有几个静态方法用于通用用途

Dewey::calculateRange($rangeString)

使用*指定范围的位置来计算DDS编号的范围。返回一个包含[$min, $max]的元组数组。

示例

$drawing = Dewey::calculateRange("74*");
// returns `array("740", "750")`

Dewey::compare($input, $comparison, $operator[, $includePrestamp = false])

使用$operator比较$input$comparison。接受:<><=>======。如果设置了$includePrestamp,则将预印戳纳入比较。返回一个布尔值。

示例

var_dump(Dewey::compare("741.4372 A123x", "750", "<"));
// bool(true)

Dewey::parseCallNumber($callNumberString)

从提供的字符串构建一个Dewey\CallNumber对象。

示例

var_dump(Dewey::parseCallNumber("741.4372 A123x"));
// object(Dewey\CallNumber)#2 (3) {
//  ["callNumber":protected]=>
//  string(7) "741.4372"
//  ["cutter":protected]=>
//  string(5) "A123x"
//  ["additional":protected]=>
//  string(0) ""
// }

Dewey\CallNumber

CallNumber对象是DDS编号的表示。

可以通过使用Dewey::parseCallNumber或使用带有DDS编号字符串作为参数的new Dewey\CallNumber实例化一个对象(实际上它还是使用了前者)来构造一个对象。

实例化对象上有以下方法

Dewey\CallNumber::compare($comparisonAgainst, $operator)

将实例化对象与另一个DDS编号(或Dewey\CallNumber对象)进行比较。返回布尔值。还提供了以下包装器

  • Dewey\CallNumber::equalTo($comp[, $deepEqual = false])
  • Dewey\CallNumber::greaterThan($comp)
  • Dewey\CallNumber::greaterThanEqualTo($comp)
  • Dewey\CallNumber::lessThan($comp)
  • Dewey\CallNumber::lessThanEqualTo($comp)

Dewey\CallNumber::inRange($range[, $lessThanEqualTo = true])

判断实例化对象是否在提供的范围字符串(见Dewey::calculateRange示例)或min/max元组内。如果$lessThanEqualTofalse,则不包括$max值作为true

许可证

MIT