本ライブラリは、アクセス制御のためのオブジェクトを提供します。下記のように、アクセスを許可したり拒否するためのルールを指定し、対象の評価を行うことができます。
<?php use PHPMatsuri\AccessControl\AccessControl; use PHPMatsuri\AccessControl\AccessState; $denyAllow = AccessControl::denyAllow(); $denyAllow->deny('/^192\.168\.0\.1$/'); if ($denyAllow->evaluate('192.168.0.1') == AccessState::ALLOW) { // アクセス許可 ... } else { // アクセス拒否 ... }
評価プロセスは Apache の Order ディレクティブ によるアクセス制御のように動作します。
- evaluate() メソッドによって 対象 の 評価 が実行されます。
- 評価 は 正規表現 で記述された ルール によって行われます。
- deny() メソッドに与えられた 拒否ルール は allow() メソッドに与えられた 許可ルール の前に 評価 されます。
- アクセスはデフォルトで 許可 されます。
- deny() メソッドの 評価 によって 拒否 になるか allow() メソッドの 評価 によって 許可 になった 対象 はアクセスが 許可 されます。
- evaluate() メソッドによって 対象 の 評価 が実行されます。
- 評価 は 正規表現 で記述された ルール によって行われます。
- evaluate() メソッドによって 対象 の 評価 が実行されます。
- allow() メソッドに与えられた 許可ルール は deny() メソッドに与えられた 拒否ルール の前に 評価 されます。
- アクセスはデフォルトで 拒否 されます。
- allow() メソッドの 評価 によって 拒否 になるか deny() メソッドの評価によって 拒否 になった 対象 はアクセスが 拒否 されます。
- 拒否ルールにマッチせず、許可ルールにもマッチしない対象を許可する。
- 拒否ルールにマッチし、許可ルールにマッチしない対象を拒否する。
- 拒否ルールにマッチし、許可ルールにマッチする対象を許可する。
- 拒否ルールにマッチせず、許可ルールにマッチする対象を許可する。
- 許可ルールにマッチせず、拒否ルールにもマッチしない対象を拒否する。
- 許可ルールにマッチし、拒否ルールにマッチしない対象を許可する。
- 許可ルールにマッチし、拒否ルールにマッチする対象を拒否する。
- 許可ルールにマッチせず、拒否ルールにマッチする対象を拒否する。