bmdevel/bav 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bmdevel/bav

最新稳定版本:1.3.6

Composer 安装命令:

composer require bmdevel/bav

包简介

BAV provides validation for German Bank Accounts (Konto)

README 文档

README

BAV (bank account validator) is a validation library for German bank accounts. Its based among other things on https://www.bundesbank.de/Redaktion/DE/Downloads/Aufgaben/Unbarer_Zahlungsverkehr/pruefzifferberechnungsmethoden.pdf?__blob=publicationFile

Installation

Use Composer:

{
    "require": {
        "malkusch/bav": "^1"
    }
}

Configuration

You can use BAV out of the box. BAV comes with a ready to play default configuration (DefaultConfiguration):

  • UTF-8 encoding (if supported)

  • FileDataBackendContainer. I.e. it uses binary search on the file from the Bundesbank. Note that this data backend uses the directory bav/data for install and update operations. You have to make sure that this directory is writable.

  • automatic installation. You don't have to call any installation script. The container will download the Bundesbank file upon the first execution.

  • update plan which triggers an E_USER_NOTICE if the Bundesbank file is outdated.

You can define your own configuration by calling ConfigurationRegistry::setConfiguration() or preferably creating the file bav/configuration.php which returns a Configuration object:

namespace malkusch\bav;

$configuration = new DefaultConfiguration();

$pdo = new \PDO("mysql:host=localhost;dbname=test;charset=UTF8");
$configuration->setDataBackendContainer(new PDODataBackendContainer($pdo));

$configuration->setUpdatePlan(new AutomaticUpdatePlan());

return $configuration;

Update

The Bundesbank releases new files for March, June, September and December. BAV needs those new files. You have several possiblities to update bav:

Script

Call bin/bav-update.php.

Programmatically

use malkusch\bav\BAV;

$bav = new BAV();
$bav->update();

Automatic

Enable automatic updates with AutomaticUpdatePlan in your bav/configuration.php:

namespace malkusch\bav;

$configuration = new DefaultConfiguration();
$configuration->setUpdatePlan(new AutomaticUpdatePlan());

return $configuration;

This automatic update plan will perform long running update operations as a shutdown hook. I.e. it won't bother users during normal operations.

Usage

You can use BAV with the api facade BAV:

An Agency object has the fields:

Example

use malkusch\bav\BAV;

$bav = new BAV();
$bankID  = "10000000";
$account = "1234567890"

// check for a bank
var_dump(
    $bav->isValidBank($bankID)
);

// check for a bank account
var_dump(
    $bav->isValidBankAccount($bankID, $account)
);

// filter validation
var_dump(
    filter_var($bankID, FILTER_CALLBACK, $bav->getValidBankFilterCallback()),
    filter_var($account, FILTER_CALLBACK, $bav->getValidAccountFilterCallback())
);

// Get informations about a bank
$agency = $bav->getMainAgency($bankID);
echo "{$agency->getName()} {$agency->getCity()}\n";

See also bav/docs/example.php.

Optional Dependencies

You may have:

  • CURL: If you provide bav/data/banklist.txt you don't need CURL.

  • mbstring: BAV works with unicode encoding. Your PHP must have support compiled in the mb_* functions. If these functions are missing BAV works only with the ISO-8859-15 encoding.

  • PDO: If you intend to use a DBS you need to use PDODataBackendContainer. PDODataBackendContainer needs a PDO support compiled in PHP.

  • doctrine/orm: You can use DoctrineBackendContainer which uses doctrine as data backend.

License and authors

This project is free and under the WTFPL. So do what ever you want. But it would be nice to leave a note about the authors.

The author of the original project which gave the idea to this project is Björn Wilmsmann. Responsable for this project is Markus Malkusch markus@malkusch.de.

Donations

If you like BAV and feel generous donate a few Bitcoins here: 1335STSwu9hST4vcMRppEPgENMHD2r1REK

Build Status

统计信息

  • 总下载量: 55.08k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 3
  • Forks: 24
  • 开发语言: PHP

其他信息

  • 授权协议: WTFPL
  • 更新时间: 未知

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固