class

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
Source

Instance methods

analyze_file(path : String) : Array(Endpoint)
Source
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.

Source