Analyzer::Php::CodeIgniter
Inherits Analyzer::Php::PhpEngine < FileScanEngine < Analyzer < FileHelper < Reference < Object
Constants
CI3_VERBS = ["get", "post", "put", "patch", "delete", "options", "head", "cli"] of ::String
MAX_GROUP_DEPTH = 32
group()/environment() bodies nested deeper than this are not followed: each level is one recursion, and a hostile depth would overflow the stack and kill the process.
PLACEHOLDER_MAP = {"any" => "any", "segment" => "segment", "num" => "num", "alpha" => "alpha", "alphanum" => "alphanum", "hash" => "hash"}
CI4 placeholders → param names. CI3 uses the same shapes.
RESOURCE_CALL_RE = /\$routes->(resource|presenter)\s*\(\s*['"]([^'"]+)['"](#{CALL_ARGS_TAIL})/im
Class methods
tech_name
SourceInstance methods
tech
Instance-side view of the same declaration. The per-file rescues live on
this base class, which has no way to name the analyzer that is running
inside them, so a skipped file could not be attributed to a tech.
Deriving it from analyzer_for keeps the name written exactly once.