Route Coverage Gap Audit
Audits expected public routes against controller files, template tokens, and canonical definitions.
Purpose
Audits expected public routes against controller files, template tokens, and canonical definitions.
Snippet details
ContextRoutingLevelAdvancedCopy-and-paste statusMarked safe after review.Categories
- Security
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Route Coverage Gap Audit.
*
* Purpose:
* Audits expected public routes against controller files, template tokens, and canonical definitions.
*
* @param array $expected_routes Expected route records.
* @param array $available_files Available controller and template files.
* @return array Route coverage gaps.
*/
function ogSnippetRouteCoverageGapAudit(array $expected_routes, array $available_files): array {
$gaps = array();
foreach ($expected_routes as $route) {
$controller = (string) $route['controller'];
$template = (string) $route['template'];
$route_gaps = array();
if (!in_array($controller, $available_files, true)) {
$route_gaps[] = 'missing_controller';
}
if (!in_array($template, $available_files, true)) {
$route_gaps[] = 'missing_template';
}
if (trim((string) $route['canonical']) === '') {
$route_gaps[] = 'missing_canonical';
}
if (count($route_gaps) > 0) {
$gaps[] = array('slug' => (string) $route['slug'], 'gaps' => $route_gaps);
}
}
return $gaps;
}
$route_gaps = ogSnippetRouteCoverageGapAudit(array(array('slug' => 'airlock', 'controller' => 'airlock.php', 'template' => 'airlock.tpl', 'canonical' => '')), array('airlock.php'));
echo count($route_gaps);