PHP Classes

File: .phpstan/resultCache.php

Recommend this page to a friend!
  Packages of Adrian M   PHP CRUD API Generator   .phpstan/resultCache.php   Download  
File: .phpstan/resultCache.php
Role: Auxiliary script
Content type: text/plain
Description: Configuration script
Class: PHP CRUD API Generator
Create an API to access MySQL database record
Author: By
Last change:
Date: 3 months ago
Size: 387,403 bytes
 

Contents

Class file image Download
<?php declare(strict_types = 1); return [ 'lastFullAnalysisTime' => 1767374423, 'meta' => array ( 'cacheVersion' => 'v12-linesToIgnore', 'phpstanVersion' => '2.1.32', 'metaExtensions' => array ( ), 'phpVersion' => 80212, 'projectConfig' => '{parameters: {level: 7, paths: [D:\\GitHub\\PHP-CRUD-API-Generator\\src, D:\\GitHub\\PHP-CRUD-API-Generator\\tests], tmpDir: D:\\GitHub\\PHP-CRUD-API-Generator\\.phpstan}}', 'analysedPaths' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests', ), 'scannedFiles' => array ( ), 'composerLocks' => array ( 'D:/GitHub/PHP-CRUD-API-Generator/composer.lock' => '1cb0e589b594eba6a52043f0e54e6de69f9ba0c9', ), 'composerInstalled' => array ( 'D:/GitHub/PHP-CRUD-API-Generator/vendor/composer/installed.php' => array ( 'versions' => array ( 'firebase/php-jwt' => array ( 'pretty_version' => 'v6.11.1', 'version' => '6.11.1.0', 'reference' => 'd1e91ecf8c598d073d0995afa8cd5c75c6e19e66', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../firebase/php-jwt', 'aliases' => array ( ), 'dev_requirement' => false, ), 'myclabs/deep-copy' => array ( 'pretty_version' => '1.13.4', 'version' => '1.13.4.0', 'reference' => '07d290f0c47959fd5eed98c95ee5602db07e0b6a', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../myclabs/deep-copy', 'aliases' => array ( ), 'dev_requirement' => true, ), 'nikic/php-parser' => array ( 'pretty_version' => 'v5.6.1', 'version' => '5.6.1.0', 'reference' => 'f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../nikic/php-parser', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phar-io/manifest' => array ( 'pretty_version' => '2.0.4', 'version' => '2.0.4.0', 'reference' => '54750ef60c58e43759730615a392c31c80e23176', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phar-io/manifest', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phar-io/version' => array ( 'pretty_version' => '3.2.1', 'version' => '3.2.1.0', 'reference' => '4f7fd7836c6f332bb2933569e566a0d6c4cbed74', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phar-io/version', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpstan/phpstan' => array ( 'pretty_version' => '2.1.32', 'version' => '2.1.32.0', 'reference' => 'e126cad1e30a99b137b8ed75a85a676450ebb227', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpstan/phpstan', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpunit/php-code-coverage' => array ( 'pretty_version' => '10.1.16', 'version' => '10.1.16.0', 'reference' => '7e308268858ed6baedc8704a304727d20bc07c77', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpunit/php-code-coverage', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpunit/php-file-iterator' => array ( 'pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => 'a95037b6d9e608ba092da1b23931e537cadc3c3c', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpunit/php-file-iterator', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpunit/php-invoker' => array ( 'pretty_version' => '4.0.0', 'version' => '4.0.0.0', 'reference' => 'f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpunit/php-invoker', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpunit/php-text-template' => array ( 'pretty_version' => '3.0.1', 'version' => '3.0.1.0', 'reference' => '0c7b06ff49e3d5072f057eb1fa59258bf287a748', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpunit/php-text-template', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpunit/php-timer' => array ( 'pretty_version' => '6.0.0', 'version' => '6.0.0.0', 'reference' => 'e2a2d67966e740530f4a3343fe2e030ffdc1161d', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpunit/php-timer', 'aliases' => array ( ), 'dev_requirement' => true, ), 'phpunit/phpunit' => array ( 'pretty_version' => '10.5.58', 'version' => '10.5.58.0', 'reference' => 'e24fb46da450d8e6a5788670513c1af1424f16ca', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../phpunit/phpunit', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/cli-parser' => array ( 'pretty_version' => '2.0.1', 'version' => '2.0.1.0', 'reference' => 'c34583b87e7b7a8055bf6c450c2c77ce32a24084', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/cli-parser', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/code-unit' => array ( 'pretty_version' => '2.0.0', 'version' => '2.0.0.0', 'reference' => 'a81fee9eef0b7a76af11d121767abc44c104e503', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/code-unit', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/code-unit-reverse-lookup' => array ( 'pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '5e3a687f7d8ae33fb362c5c0743794bbb2420a1d', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/code-unit-reverse-lookup', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/comparator' => array ( 'pretty_version' => '5.0.4', 'version' => '5.0.4.0', 'reference' => 'e8e53097718d2b53cfb2aa859b06a41abf58c62e', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/comparator', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/complexity' => array ( 'pretty_version' => '3.2.0', 'version' => '3.2.0.0', 'reference' => '68ff824baeae169ec9f2137158ee529584553799', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/complexity', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/diff' => array ( 'pretty_version' => '5.1.1', 'version' => '5.1.1.0', 'reference' => 'c41e007b4b62af48218231d6c2275e4c9b975b2e', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/diff', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/environment' => array ( 'pretty_version' => '6.1.0', 'version' => '6.1.0.0', 'reference' => '8074dbcd93529b357029f5cc5058fd3e43666984', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/environment', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/exporter' => array ( 'pretty_version' => '5.1.4', 'version' => '5.1.4.0', 'reference' => '0735b90f4da94969541dac1da743446e276defa6', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/exporter', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/global-state' => array ( 'pretty_version' => '6.0.2', 'version' => '6.0.2.0', 'reference' => '987bafff24ecc4c9ac418cab1145b96dd6e9cbd9', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/global-state', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/lines-of-code' => array ( 'pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => '856e7f6a75a84e339195d48c556f23be2ebf75d0', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/lines-of-code', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/object-enumerator' => array ( 'pretty_version' => '5.0.0', 'version' => '5.0.0.0', 'reference' => '202d0e344a580d7f7d04b3fafce6933e59dae906', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/object-enumerator', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/object-reflector' => array ( 'pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '24ed13d98130f0e7122df55d06c5c4942a577957', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/object-reflector', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/recursion-context' => array ( 'pretty_version' => '5.0.1', 'version' => '5.0.1.0', 'reference' => '47e34210757a2f37a97dcd207d032e1b01e64c7a', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/recursion-context', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/type' => array ( 'pretty_version' => '4.0.0', 'version' => '4.0.0.0', 'reference' => '462699a16464c3944eefc02ebdd77882bd3925bf', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/type', 'aliases' => array ( ), 'dev_requirement' => true, ), 'sebastian/version' => array ( 'pretty_version' => '4.0.1', 'version' => '4.0.1.0', 'reference' => 'c51fa83a5d8f43f1402e3f32a005e6262244ef17', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../sebastian/version', 'aliases' => array ( ), 'dev_requirement' => true, ), 'squizlabs/php_codesniffer' => array ( 'pretty_version' => '4.0.1', 'version' => '4.0.1.0', 'reference' => '0525c73950de35ded110cffafb9892946d7771b5', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../squizlabs/php_codesniffer', 'aliases' => array ( ), 'dev_requirement' => true, ), 'theseer/tokenizer' => array ( 'pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => '737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2', 'type' => 'library', 'install_path' => 'D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\composer/../theseer/tokenizer', 'aliases' => array ( ), 'dev_requirement' => true, ), ), ), ), 'executedFilesHashes' => array ( 'phar://D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\phpstan\\phpstan\\phpstan.phar\\stubs\\runtime\\Attribute85.php' => '123dcd45f03f2463904087a66bfe2bc139760df0', 'phar://D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\phpstan\\phpstan\\phpstan.phar\\stubs\\runtime\\ReflectionAttribute.php' => '0b4b78277eb6545955d2ce5e09bff28f1f8052c8', 'phar://D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\phpstan\\phpstan\\phpstan.phar\\stubs\\runtime\\ReflectionIntersectionType.php' => 'a3e6299b87ee5d407dae7651758edfa11a74cb11', 'phar://D:\\GitHub\\PHP-CRUD-API-Generator\\vendor\\phpstan\\phpstan\\phpstan.phar\\stubs\\runtime\\ReflectionUnionType.php' => '1b349aa997a834faeafe05fa21bc31cae22bf2e2', ), 'phpExtensions' => array ( 0 => 'Core', 1 => 'PDO', 2 => 'Phar', 3 => 'Reflection', 4 => 'SPL', 5 => 'SimpleXML', 6 => 'bcmath', 7 => 'bz2', 8 => 'calendar', 9 => 'ctype', 10 => 'curl', 11 => 'date', 12 => 'dom', 13 => 'exif', 14 => 'fileinfo', 15 => 'filter', 16 => 'ftp', 17 => 'gettext', 18 => 'hash', 19 => 'iconv', 20 => 'json', 21 => 'libxml', 22 => 'mbstring', 23 => 'mysqli', 24 => 'mysqlnd', 25 => 'openssl', 26 => 'pcre', 27 => 'pdo_mysql', 28 => 'pdo_sqlite', 29 => 'random', 30 => 'readline', 31 => 'session', 32 => 'standard', 33 => 'tokenizer', 34 => 'xml', 35 => 'xmlreader', 36 => 'xmlwriter', 37 => 'zlib', ), 'stubFiles' => array ( ), 'level' => '7', ), 'projectExtensionFiles' => array ( ), 'errorsCallback' => static function (): array { return array ( ); }, 'locallyIgnoredErrorsCallback' => static function (): array { return array ( ); }, 'linesToIgnore' => array ( ), 'unmatchedLineIgnores' => array ( ), 'collectedDataCallback' => static function (): array { return array ( 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Auth\\Authenticator.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Auth\\Authenticator', ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'http_response_code', 1 => 150, ), 1 => array ( 0 => 'http_response_code', 1 => 216, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheManager.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Cache\\CacheManager', 1 => 'isEnabled', 2 => 'App\\Cache\\CacheManager', ), 1 => array ( 0 => 'App\\Cache\\CacheManager', 1 => 'getTtl', 2 => 'App\\Cache\\CacheManager', ), 2 => array ( 0 => 'App\\Cache\\CacheManager', 1 => 'getDriver', 2 => 'App\\Cache\\CacheManager', ), ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'ksort', 1 => 199, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\RedisCache.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Cache\\Drivers\\RedisCache', ), 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Cache\\Drivers\\RedisCache', 1 => 'getConfig', 2 => 'App\\Cache\\Drivers\\RedisCache', ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\ApiConfig.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'isAuthEnabled', 2 => 'App\\Config\\ApiConfig', ), 1 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getAuthMethod', 2 => 'App\\Config\\ApiConfig', ), 2 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getApiKeys', 2 => 'App\\Config\\ApiConfig', ), 3 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getApiKeyRole', 2 => 'App\\Config\\ApiConfig', ), 4 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getBasicUsers', 2 => 'App\\Config\\ApiConfig', ), 5 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'useDatabaseAuth', 2 => 'App\\Config\\ApiConfig', ), 6 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getJwtSecret', 2 => 'App\\Config\\ApiConfig', ), 7 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getJwtExpiration', 2 => 'App\\Config\\ApiConfig', ), 8 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getJwtAlgorithm', 2 => 'App\\Config\\ApiConfig', ), 9 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getRoles', 2 => 'App\\Config\\ApiConfig', ), 10 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getUserRoles', 2 => 'App\\Config\\ApiConfig', ), 11 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getUserRole', 2 => 'App\\Config\\ApiConfig', ), 12 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getRateLimitConfig', 2 => 'App\\Config\\ApiConfig', ), 13 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getLoggingConfig', 2 => 'App\\Config\\ApiConfig', ), 14 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'getMonitoringConfig', 2 => 'App\\Config\\ApiConfig', ), 15 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'isMonitoringEnabled', 2 => 'App\\Config\\ApiConfig', ), 16 => array ( 0 => 'App\\Config\\ApiConfig', 1 => 'toArray', 2 => 'App\\Config\\ApiConfig', ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\CacheConfig.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Config\\CacheConfig', ), 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'isEnabled', 2 => 'App\\Config\\CacheConfig', ), 1 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getDriver', 2 => 'App\\Config\\CacheConfig', ), 2 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getDefaultTtl', 2 => 'App\\Config\\CacheConfig', ), 3 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getTableTtl', 2 => 'App\\Config\\CacheConfig', ), 4 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getVaryBy', 2 => 'App\\Config\\CacheConfig', ), 5 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getCachePath', 2 => 'App\\Config\\CacheConfig', ), 6 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getAllTableTtl', 2 => 'App\\Config\\CacheConfig', ), 7 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'getExcludedTables', 2 => 'App\\Config\\CacheConfig', ), 8 => array ( 0 => 'App\\Config\\CacheConfig', 1 => 'toArray', 2 => 'App\\Config\\CacheConfig', ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\Env.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'putenv', 1 => 59, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Database.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Database\\Database', 1 => 'getPdo', 2 => 'App\\Database\\Database', ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\SchemaInspector.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Database\\SchemaInspector', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Http\\Controllers\\ApiController', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\DocsController.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Http\\Controllers\\DocsController', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Http\\Controllers\\LoginController', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\ErrorResponder.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Http\\ErrorResponder', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\CorsMiddleware.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Http\\Middleware\\CorsMiddleware', ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'http_response_code', 1 => 70, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\RateLimitMiddleware.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Http\\Middleware\\RateLimitMiddleware', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Response.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'http_response_code', 1 => 26, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Observability\\Monitor.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Observability\\Monitor', 1 => 'getMetricsFile', 2 => 'App\\Observability\\Monitor', ), 1 => array ( 0 => 'App\\Observability\\Monitor', 1 => 'getAlertsFile', 2 => 'App\\Observability\\Monitor', ), 2 => array ( 0 => 'App\\Observability\\Monitor', 1 => 'getEmptyStats', 2 => 'App\\Observability\\Monitor', ), ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureMethodCallCollector' => array ( 0 => array ( 0 => array ( 0 => 'App\\Observability\\Monitor', ), 1 => 'writeAlert', 2 => 408, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Observability\\RequestLogger.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Observability\\RequestLogger', 1 => 'levelFromStatus', 2 => 'App\\Observability\\RequestLogger', ), ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'usort', 1 => 196, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RateLimiter.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'http_response_code', 1 => 178, ), ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureMethodCallCollector' => array ( 0 => array ( 0 => array ( 0 => 'App\\Security\\RateLimiter', ), 1 => 'saveRequests', 2 => 83, ), 1 => array ( 0 => array ( 0 => 'App\\Security\\RateLimiter', ), 1 => 'saveRequests', 2 => 89, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\Rbac.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Security\\Rbac', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RbacGuard.php' => array ( 'PHPStan\\Rules\\DeadCode\\ConstructorWithoutImpurePointsCollector' => array ( 0 => 'App\\Security\\RbacGuard', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Support\\QueryValidator.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Support\\QueryValidator', 1 => 'page', 2 => 'App\\Support\\QueryValidator', ), 1 => array ( 0 => 'App\\Support\\QueryValidator', 1 => 'pageSize', 2 => 'App\\Support\\QueryValidator', ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Support\\Validator.php' => array ( 'PHPStan\\Rules\\DeadCode\\MethodWithoutImpurePointsCollector' => array ( 0 => array ( 0 => 'App\\Support\\Validator', 1 => 'validatePage', 2 => 'App\\Support\\Validator', ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RateLimiterTest.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'sleep', 1 => 126, ), 1 => array ( 0 => 'sleep', 1 => 225, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RequestLoggerTest.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureMethodCallCollector' => array ( 0 => array ( 0 => array ( 0 => 'App\\Observability\\RequestLogger', ), 1 => 'logRequest', 2 => 225, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\api_test.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'ob_start', 1 => 49, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\cache_test.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'sleep', 1 => 163, ), ), 'PHPStan\\Rules\\DeadCode\\PossiblyPureMethodCallCollector' => array ( 0 => array ( 0 => array ( 0 => 'App\\Cache\\CacheManager', ), 1 => 'set', 2 => 90, ), 1 => array ( 0 => array ( 0 => 'App\\Cache\\CacheManager', ), 1 => 'set', 2 => 98, ), 2 => array ( 0 => array ( 0 => 'App\\Cache\\CacheManager', ), 1 => 'invalidateTable', 2 => 125, ), 3 => array ( 0 => array ( 0 => 'App\\Cache\\CacheManager', ), 1 => 'clear', 2 => 144, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\debug_login.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'ob_start', 1 => 40, ), 1 => array ( 0 => 'print_r', 1 => 50, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\json_login_test.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'ob_start', 1 => 32, ), 1 => array ( 0 => 'ob_start', 1 => 63, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\jwt_login_test.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'ob_start', 1 => 52, ), 1 => array ( 0 => 'ob_start', 1 => 91, ), 2 => array ( 0 => 'ob_start', 1 => 126, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\quick_login.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureFuncCallCollector' => array ( 0 => array ( 0 => 'ob_start', 1 => 21, ), ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php' => array ( 'PHPStan\\Rules\\DeadCode\\PossiblyPureMethodCallCollector' => array ( 0 => array ( 0 => array ( 0 => 'App\\Cache\\CacheManager', ), 1 => 'set', 2 => 68, ), ), ), ); }, 'dependencies' => array ( 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\ApiGenerator.php' => array ( 'fileHash' => '4ce31734a3eb0649fb844120d49d81bc53445099', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\AdvancedFilterTest.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ApiGeneratorTest.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\HookManager.php' => array ( 'fileHash' => 'd1e53826269d9f63b133640cf1b532a5537c9d92', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\HookManager.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php' => array ( 'fileHash' => '9b568d0235623d36ab9b6b73630873fb0c0df6a6', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\api_test.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\debug_login.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\json_login_test.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\jwt_login_test.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\quick_login.php', 5 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Auth\\Authenticator.php' => array ( 'fileHash' => 'c952df79c4de7e4cee62b04f2cb3144a524d7957', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\api_test.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\debug_login.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\json_login_test.php', 5 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\jwt_login_test.php', 6 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\quick_login.php', 7 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheInterface.php' => array ( 'fileHash' => '3457fddfddfe7a317d367263af5726759322c1f7', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheManager.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\FileCache.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\RedisCache.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\cache_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheManager.php' => array ( 'fileHash' => 'e92cef394efa74e14a209ff586ea590cd11362b1', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\cache_test.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\FileCache.php' => array ( 'fileHash' => 'a6bc20bc17d03ea2609bde500d49769c68482b67', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheManager.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\RedisCache.php' => array ( 'fileHash' => '8c27eb773e5007cb2d47f3cea3f06ee6eafb2224', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\ApiConfig.php' => array ( 'fileHash' => '3f7a13fb94e42c9f3e1dfec4fbbf50a704741864', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\CacheConfig.php' => array ( 'fileHash' => '19f62587a4ff0271934c6e75e64a22b106358015', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\Env.php' => array ( 'fileHash' => '007bc22224685c98905e6becafa20c2d0e4dd5ef', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Database.php' => array ( 'fileHash' => '18f63f2486355a97f23d945f8cb71e052c03a427', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\AdvancedFilterTest.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ApiGeneratorTest.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\api_test.php', 5 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\debug_login.php', 6 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\dialect_mysql_test.php', 7 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\json_login_test.php', 8 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\jwt_login_test.php', 9 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\quick_login.php', 10 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\DialectInterface.php' => array ( 'fileHash' => '244745ab27ee71b4c145119d937611d2b7c83259', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\ApiGenerator.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\MySqlDialect.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\PostgresDialect.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\SchemaInspector.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\dialect_mysql_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\MySqlDialect.php' => array ( 'fileHash' => '495562d9b9d17d2f9dbfc6d84b85deeb2255e6bf', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\ApiGenerator.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\SchemaInspector.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\dialect_mysql_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\PostgresDialect.php' => array ( 'fileHash' => '855d9ecec956e585b57edd65d5b2b64b6e3bcc2d', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\SchemaInspector.php' => array ( 'fileHash' => '60bf805f8d2008bdbded1659dc45c32147b4440d', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\ApiGenerator.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Docs\\OpenApiGenerator.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\DocsController.php', 5 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\dialect_mysql_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Docs\\OpenApiGenerator.php' => array ( 'fileHash' => 'a80c206ee76681feac669c27b7d27cecedb1620f', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\DocsController.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\HookManager.php' => array ( 'fileHash' => '3edfbd9f6ac64c3f95605968dbe18de3a1a04bae', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Action.php' => array ( 'fileHash' => 'bf75e0d16fb9d71cc917f5b6f3215e45bfefbd22', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php' => array ( 'fileHash' => 'b0bca89b6e4dc3f18230c931e96d731fad5f418a', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\DocsController.php' => array ( 'fileHash' => 'e54ca66784b5db34c729454defe1aaac810ce8cd', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php' => array ( 'fileHash' => '61e8f3ae1ce6c796e79704537380dfedbccfe335', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\ErrorResponder.php' => array ( 'fileHash' => '88cc56a32bed714f2d8136c38b883d6cb6925abe', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\error_responder_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\CorsMiddleware.php' => array ( 'fileHash' => 'ca691857129616f45e94b46270259556ca197461', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\RateLimitMiddleware.php' => array ( 'fileHash' => 'b1e3f80ee47c34f3e0387aa372cc05abc5cb9368', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ratelimit_middleware_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Response.php' => array ( 'fileHash' => '18518c0cb52bf4c6e4b7a4f87cd7160197fcb947', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\ErrorResponder.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RbacGuard.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Observability\\Monitor.php' => array ( 'fileHash' => '62e654ffd0d895b698ac15c4d19a7c875a61b4b8', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\ErrorResponder.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\RateLimitMiddleware.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\error_responder_test.php', 5 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ratelimit_middleware_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Observability\\RequestLogger.php' => array ( 'fileHash' => 'ad7a7d10b3af78bdc765d6d2105f968ab29f4613', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\ErrorResponder.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\RateLimitMiddleware.php', 4 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RequestLoggerTest.php', 5 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\error_responder_test.php', 6 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ratelimit_middleware_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RateLimiter.php' => array ( 'fileHash' => '807c17c24bcea493e3008fa3b7a620995e4953ea', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\RateLimitMiddleware.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RateLimiterTest.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ratelimit_middleware_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\Rbac.php' => array ( 'fileHash' => 'e5eb315a416e6eb9a1999b95cf3d790d651772ed', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RbacGuard.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\_rbac_guard_denied.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\rbac_guard_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RbacGuard.php' => array ( 'fileHash' => '26c9de014d37b9e0d29bc2190545d6f33e4feafa', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php', 2 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\_rbac_guard_denied.php', 3 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\rbac_guard_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Support\\QueryValidator.php' => array ( 'fileHash' => 'b74f9a4df607d29cdb0f2661de0697f984f883ca', 'dependentFiles' => array ( 0 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php', 1 => 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\validator_test.php', ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Support\\Validator.php' => array ( 'fileHash' => 'e4b75f1e312327f9d6545cb0ffa30b826c4265a3', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\AdvancedFilterTest.php' => array ( 'fileHash' => '6541c2f4b05b79eb043d03a16074e0022d8d113d', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ApiGeneratorTest.php' => array ( 'fileHash' => 'fe1b8c7e1765d67e8c02e60bc6320c9c8487bf93', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RateLimiterTest.php' => array ( 'fileHash' => '25d4c7d38a3af0c3c75d241fd12f6563b937ecd8', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RequestLoggerTest.php' => array ( 'fileHash' => 'a6a5ee83d1a001587021d149c0762701d5033394', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\_rbac_guard_denied.php' => array ( 'fileHash' => 'a0adef2273bcd3d2bf86a39ba7d537e1b60ffcca', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\api_test.php' => array ( 'fileHash' => '2f44f1a8a6c6c27f2fee8e97db9b9ec01b67de9a', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\cache_test.php' => array ( 'fileHash' => '43aaf99b5f8cc3fe6cc45e2d0d557279af6a0f7c', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\debug_login.php' => array ( 'fileHash' => 'af40a3c21a95c923fdf5e7ba5c46363bfe01e4bf', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\dialect_mysql_test.php' => array ( 'fileHash' => '7c501bd5b839a7666dfc8d6164b811604bca0e9c', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\error_responder_test.php' => array ( 'fileHash' => '7a507b8bf90d9eb635cf804285fcc89052d038d7', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\json_login_test.php' => array ( 'fileHash' => 'cca555dd69065228e3ba920eb4f27c49d2851150', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\jwt_login_test.php' => array ( 'fileHash' => 'ee08192d3b8b50f16d74ff574ecf3fedc015a081', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\quick_login.php' => array ( 'fileHash' => '2c4dddf17917b22bd3b4286e057b9e43d0c29473', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ratelimit_middleware_test.php' => array ( 'fileHash' => '2ef844524a397ef71baaef7be217f9150d319d23', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\rbac_guard_test.php' => array ( 'fileHash' => '4bc858405294a34a8dee7c6a98d77f0af06b4fe1', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\test_all.php' => array ( 'fileHash' => '7cf8b5c3324ac25d625e157976b1c03209885c56', 'dependentFiles' => array ( ), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\validator_test.php' => array ( 'fileHash' => 'a1cc31feab8036cc6d95ad5c958c670f05b45296', 'dependentFiles' => array ( ), ), ), 'exportedNodesCallback' => static function (): array { return array ( 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\ApiGenerator.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\ApiGenerator', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * API Generator Class * * Generates RESTful CRUD operations for database tables with advanced features * including filtering, sorting, pagination, field selection, and counting. * * Features: * - Dynamic CRUD operations (list, read, create, update, delete) * - Advanced filtering with multiple operators (eq, neq, gt, gte, lt, lte, like, in, between) * - Flexible sorting (single and multiple fields) * - Pagination support (page/limit) * - Field selection (specific columns) * - Record counting * - Bulk operations * - Safe parameter binding to prevent SQL injection * * @package App * @author PHP-CRUD-API-Generator * @version 1.0.0 */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Initialize API Generator * * @param PDO $pdo PDO database connection instance */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'dialect', 'type' => '?App\\Database\\Dialect\\DialectInterface', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'list', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $opts * @return array{data:array<int,array<string,mixed>>,meta:array{total:int,page:int,page_size:int,pages:int}} */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'opts', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'read', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param int|string $id * @return array<string,mixed>|null */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'create', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $data * @return array<string,mixed> */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'data', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'update', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param int|string $id * @param array<string,mixed> $data * @return array<string,mixed>|array{error:string} */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'data', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'delete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param int|string $id * @return array{success:bool}|array{error:string} */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'bulkCreate', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<int,array<string,mixed>> $records * @return array{success:bool,created:int,data:array<int,array<string,mixed>>}|array{error:string} */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'records', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'bulkDelete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<int,int|string> $ids * @return array{success:bool,deleted:int}|array{error:string} */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ids', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'count', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $opts * @return array{count:int} */', 'namespace' => 'App', 'uses' => array ( 'pdo' => 'PDO', 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'opts', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\HookManager.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Application\\HookManager', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * HookManager (Canonical Location) * * Canonical implementation. A BC stub exists at App\\\\HookManager extending * this class; do not extend the stub from here to avoid circular references. */', 'namespace' => 'App\\Application', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Application\\Router.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Application\\Router', 'phpDoc' => NULL, 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedPropertiesNode::__set_state(array( 'names' => array ( 0 => 'auth', ), 'phpDoc' => NULL, 'type' => 'App\\Auth\\Authenticator', 'public' => true, 'private' => false, 'static' => false, 'readonly' => false, 'abstract' => false, 'final' => false, 'publicSet' => false, 'protectedSet' => false, 'privateSet' => false, 'virtual' => false, 'attributes' => array ( ), 'hooks' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'db', 'type' => 'App\\Database\\Database', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'auth', 'type' => 'App\\Auth\\Authenticator', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'route', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $query */', 'namespace' => 'App\\Application', 'uses' => array ( 'cachemanager' => 'App\\Cache\\CacheManager', 'apiconfig' => 'App\\Config\\ApiConfig', 'cacheconfig' => 'App\\Config\\CacheConfig', 'action' => 'App\\Http\\Action', 'response' => 'App\\Http\\Response', 'ratelimitmiddleware' => 'App\\Http\\Middleware\\RateLimitMiddleware', 'rbacguard' => 'App\\Security\\RbacGuard', 'corsmiddleware' => 'App\\Http\\Middleware\\CorsMiddleware', 'errorresponder' => 'App\\Http\\ErrorResponder', 'apicontroller' => 'App\\Http\\Controllers\\ApiController', 'docscontroller' => 'App\\Http\\Controllers\\DocsController', 'logincontroller' => 'App\\Http\\Controllers\\LoginController', 'database' => 'App\\Database\\Database', 'schemainspector' => 'App\\Database\\SchemaInspector', 'authenticator' => 'App\\Auth\\Authenticator', 'rbac' => 'App\\Security\\Rbac', 'ratelimiter' => 'App\\Security\\RateLimiter', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', 'apigenerator' => 'App\\ApiGenerator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'query', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Auth\\Authenticator.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Auth\\Authenticator', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * API Authenticator (canonical) * * Provides multiple authentication methods for securing API access. * Supports API keys, Basic Auth, JWT tokens, and OAuth (placeholder). * * Features: * - Multiple authentication methods (API Key, Basic Auth, JWT, OAuth) * - JWT token generation and validation * - Role-based access via JWT claims * - Configurable authentication requirements * - Automatic 401 responses for unauthorized access */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedPropertiesNode::__set_state(array( 'names' => array ( 0 => 'config', ), 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Authentication configuration * * @var array<string,mixed> */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'type' => 'array', 'public' => true, 'private' => false, 'static' => false, 'readonly' => false, 'abstract' => false, 'final' => false, 'publicSet' => false, 'protectedSet' => false, 'privateSet' => false, 'virtual' => false, 'attributes' => array ( ), 'hooks' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $config Authentication configuration */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => '?PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'authenticate', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Authenticate the current request * * Validates credentials based on the configured authentication method. * Returns true if authentication is disabled or credentials are valid. * * Supported methods: * - apikey: Checks X-API-Key header or api_key query parameter * - basic: HTTP Basic Authentication with username/password * - jwt: Bearer token validation with JWT * - oauth: OAuth bearer token (placeholder implementation) */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'requireAuth', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Require authentication or exit with 401 Unauthorized */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'createJwt', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Create a JWT token with custom payload * * @param array<string,mixed> $payload */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'payload', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'expireSeconds', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validateJwt', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Validate a JWT token */', 'namespace' => 'App\\Auth', 'uses' => array ( 'jwt' => 'Firebase\\JWT\\JWT', 'key' => 'Firebase\\JWT\\Key', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'jwt', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getCurrentUser', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getCurrentUserRole', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheInterface.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedInterfaceNode::__set_state(array( 'name' => 'App\\Cache\\CacheInterface', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Cache Driver Interface * * Defines the contract that all cache drivers must implement. * Provides a consistent API for storing, retrieving, and invalidating cached data * regardless of the underlying storage mechanism (file, Redis, Memcached, etc.). * * @package App\\Cache * @author PHP-CRUD-API-Generator * @version 1.0.0 */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'extends' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'get', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Retrieve cached value by key * * @param string $key Cache key * @return mixed|null Cached value or null if not found/expired * * @example * $data = $cache->get(\'api:users:page1\'); * if ($data === null) { * // Cache miss - fetch from database * } */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'set', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Store value in cache with TTL * * @param string $key Cache key * @param mixed $value Value to cache (will be serialized) * @param int $ttl Time to live in seconds * @return bool True on success, false on failure * * @example * $cache->set(\'api:users:page1\', $userData, 300); // Cache for 5 minutes */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'value', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ttl', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'delete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Delete specific cache key * * @param string $key Cache key to delete * @return bool True on success, false on failure * * @example * $cache->delete(\'api:users:page1\'); */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'deletePattern', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Delete all cache keys matching pattern * * Used for invalidating entire tables on write operations. * Pattern syntax depends on driver implementation. * * @param string $pattern Pattern to match (e.g., \'api:users:*\') * @return bool True on success, false on failure * * @example * $cache->deletePattern(\'api:users:*\'); // Delete all user cache */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pattern', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'clear', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Clear all cached data * * @return bool True on success, false on failure * * @example * $cache->clear(); // Flush entire cache */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'has', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if cache key exists and is not expired * * @param string $key Cache key to check * @return bool True if exists and valid, false otherwise * * @example * if ($cache->has(\'api:users:page1\')) { * $data = $cache->get(\'api:users:page1\'); * } */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getStats', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get cache statistics * * Returns driver-specific statistics about cache usage. * Useful for monitoring and debugging. * * @return array<string,mixed> Statistics array * * @example * $stats = $cache->getStats(); * // [\'driver\' => \'file\', \'total_size\' => 1024000, \'file_count\' => 42] */', 'namespace' => 'App\\Cache', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\CacheManager.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Cache\\CacheManager', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Cache Manager * * Main cache orchestrator that provides high-level caching functionality * for API responses. Handles cache key generation, TTL management, * table-specific invalidation, and driver initialization. * * Features: * - Automatic cache key generation from request parameters * - Per-table TTL configuration * - Table exclusion rules (never cache certain tables) * - User-specific cache variation (different cache per API key/user) * - Automatic invalidation on write operations * - Cache hit/miss tracking via HTTP headers * - Support for multiple cache drivers (File, Redis, Memcached, APCu) * * @package App\\Cache * @author PHP-CRUD-API-Generator * @version 1.0.0 */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Initialize cache manager * * Creates appropriate cache driver based on configuration. * Falls back to file cache if configured driver is unavailable. * * @param array<string,mixed> $config Cache configuration from config/cache.php * * @example * $cache = new CacheManager([ * \'enabled\' => true, * \'driver\' => \'file\', * \'ttl\' => 300, * \'perTable\' => [\'users\' => 60], * ]); */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'isEnabled', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if caching is enabled * * @return bool True if caching is enabled in config */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'shouldCache', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if specific table should be cached * * Checks against exclusion list and enabled status. * Some tables like sessions, logs should never be cached. * * @param string $table Table name * @return bool True if table should be cached * * @example * if ($cache->shouldCache(\'users\')) { * // Cache users table * } * if ($cache->shouldCache(\'sessions\')) { * // False - sessions excluded by default * } */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'generateKey', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $params */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'params', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'get', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get cached response * * Retrieves cached data if available and not expired. * Increments hit/miss statistics. * * @param string $key Cache key * @return mixed|null Cached data or null if not found/expired * * @example * $data = $cache->get(\'api:table:users:params:...\'); * if ($data !== null) { * // Cache hit! * return $data; * } */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'set', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Store response in cache * * Caches data with table-specific or default TTL. * Increments write statistics. * * @param string $key Cache key * @param mixed $value Data to cache * @param string|null $table Table name (for TTL lookup) * @return bool True on success * * @example * $cache->set( * \'api:table:users:params:...\', * $userData, * \'users\' * ); */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'value', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getTtl', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get TTL for specific table * * Returns per-table TTL if configured, otherwise default TTL. * * @param string $table Table name * @return int TTL in seconds * * @example * $ttl = $cache->getTtl(\'users\'); // Returns 60 if configured * $ttl = $cache->getTtl(\'products\'); // Returns 300 (default) */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'invalidateTable', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Invalidate all cache for specific table * * Deletes all cache keys matching the table pattern. * Called automatically on create/update/delete operations. * * @param string $table Table name * @return bool True on success * * @example * // After creating new user * $cache->invalidateTable(\'users\'); * // All user cache entries deleted */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'delete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Delete specific cache key * * @param string $key Cache key to delete * @return bool True on success */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'clear', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Clear entire cache * * Removes all cached data. Use with caution! * * @return bool True on success */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'has', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if cache key exists * * @param string $key Cache key * @return bool True if exists and not expired */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 11 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getStats', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getDriver', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get underlying cache driver * * Provides access to driver for advanced operations. * * @return CacheInterface Cache driver instance */', 'namespace' => 'App\\Cache', 'uses' => array ( 'filecache' => 'App\\Cache\\Drivers\\FileCache', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'App\\Cache\\CacheInterface', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\FileCache.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Cache\\Drivers\\FileCache', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * File Cache Driver * * Simple file-based caching implementation with zero external dependencies. * Stores cached data as serialized PHP files with embedded TTL metadata. * Perfect for development, small deployments, and shared hosting environments. * * Features: * - No external dependencies (pure PHP) * - Works everywhere (no extensions needed) * - Automatic cleanup of expired cache files * - Pattern-based deletion for table invalidation * - Cache statistics (size, file count, hit ratio) * - Directory structure: storage/cache/{first2chars}/{key}.cache * * Performance: * - Read: ~1-5ms for small datasets * - Write: ~2-8ms * - Good for: < 10,000 requests/day * - For high traffic, use Redis or Memcached * * @package App\\Cache\\Drivers * @author PHP-CRUD-API-Generator * @version 1.0.0 */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( 0 => 'App\\Cache\\CacheInterface', ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Initialize file cache driver * * Creates cache directory if it doesn\'t exist. * Sets appropriate permissions for files and directories. * * @param array<string,mixed> $config Cache configuration * * @throws \\RuntimeException If cache directory cannot be created * * @example * $cache = new FileCache([ * \'file\' => [ * \'path\' => \'/var/www/storage/cache\', * \'permissions\' => 0755 * ] * ]); */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'get', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * {@inheritdoc} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'set', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * {@inheritdoc} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'value', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ttl', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'delete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * {@inheritdoc} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'deletePattern', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * {@inheritdoc} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pattern', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'clear', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * {@inheritdoc} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'has', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * {@inheritdoc} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getStats', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'cleanup', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{deleted_files:int,freed_bytes:int,freed_bytes_human:string} */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Cache\\Drivers\\RedisCache.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Cache\\Drivers\\RedisCache', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Redis Cache Driver (stub) * * Placeholder for a future Redis-backed cache implementation. All methods * currently throw to make unsupported usage obvious at runtime while keeping * the codebase compiling and type-correct. */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( 0 => 'App\\Cache\\CacheInterface', ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $config */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'get', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** @inheritDoc */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'set', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** @inheritDoc */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'value', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ttl', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'delete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** @inheritDoc */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'deletePattern', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** @inheritDoc */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pattern', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'clear', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** @inheritDoc */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'has', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** @inheritDoc */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getStats', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getConfig', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Expose config for introspection (prevents only-written warning) * * @return array<string,mixed> */', 'namespace' => 'App\\Cache\\Drivers', 'uses' => array ( 'cacheinterface' => 'App\\Cache\\CacheInterface', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\ApiConfig.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Config\\ApiConfig', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * API Configuration Class * * PSR-4 compliant configuration class for API settings. * * ARCHITECTURE: * This class WRAPS the user\'s config/api.php file and provides type-safe access. * * Flow: * 1. User edits config/api.php (simple PHP array) * 2. ApiConfig::fromFile() loads that array * 3. Framework code uses typed methods (isAuthEnabled(), getAuthMethod(), etc.) * * Benefits: * - User: Simple array configuration * - Developer: Type safety, IDE autocomplete, validation * * Manages: * - Authentication settings (API Key, Basic, JWT, OAuth) * - Role-Based Access Control (RBAC) * - Rate limiting configuration * - Request logging settings * - Monitoring configuration * * @package App\\Config * @see docs/CONFIG_FLOW.md for complete architecture explanation */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $config Configuration array from config/api.php (or defaults) */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'fromFile', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Create from legacy config file * * This is the BRIDGE between user configuration and framework code. * * Example: * // User edits config/api.php: * return [\'auth_enabled\' => true, \'auth_method\' => \'jwt\']; * * // Framework loads it via this method: * $config = ApiConfig::fromFile(__DIR__ . \'/../config/api.php\'); * * // Now use type-safe getters: * $enabled = $config->isAuthEnabled(); // bool * $method = $config->getAuthMethod(); // string * * @param string $configFile Path to config/api.php * @return self */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'self', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'configFile', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'isAuthEnabled', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if authentication is enabled */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getAuthMethod', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get authentication method */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getApiKeys', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getApiKeyRole', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get API key default role */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getBasicUsers', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,string> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'useDatabaseAuth', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if database authentication is enabled */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getJwtSecret', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get JWT secret */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getJwtExpiration', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get JWT expiration time */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getJwtAlgorithm', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get JWT algorithm */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( ), 'attributes' => array ( ), )), 11 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getRoles', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,array{tables:list<string>,actions:list<string>}> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getUserRoles', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,string> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 13 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getUserRole', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get role for specific user */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'username', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 14 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getRateLimitConfig', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{enabled:bool,requests_per_minute:int,requests_per_hour:int,requests_per_day:int} */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 15 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getLoggingConfig', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{enabled:bool,log_requests:bool,log_responses:bool,log_errors:bool} */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 16 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getMonitoringConfig', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{enabled:bool} */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 17 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'isMonitoringEnabled', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if monitoring is enabled */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 18 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'toArray', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 19 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'enableAuth', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Enable authentication */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 20 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'disableAuth', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Disable authentication */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 21 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setAuthMethod', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Set authentication method */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'method', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 22 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'addApiKey', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Add API key */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 23 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'removeApiKey', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Remove API key */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'key', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 24 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'addBasicUser', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Add basic auth user */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'username', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'password', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 25 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'removeBasicUser', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Remove basic auth user */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'username', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 26 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setJwtSecret', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Set JWT secret */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'secret', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 27 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'assignUserRole', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Assign role to user */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'username', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 28 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'removeUserRole', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Remove user role */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'username', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\CacheConfig.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Config\\CacheConfig', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Cache Configuration Class * * PSR-4 compliant configuration class for cache settings. * * ARCHITECTURE: * This class WRAPS the user\'s config/cache.php file and provides type-safe access. * * Flow: * 1. User edits config/cache.php (simple PHP array) * 2. CacheConfig::fromFile() loads that array * 3. Framework code uses typed methods (isEnabled(), getDriver(), getTableTtl(), etc.) * * Benefits: * - User: Simple array configuration * - Developer: Type safety, IDE autocomplete, validation * * @package App\\Config * @see docs/CONFIG_FLOW.md for complete architecture explanation */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array{ * enabled?: bool, * driver?: string, * ttl?: int, * table_ttl?: array<string,int>, * exclude_tables?: array<int,string>, * varyBy?: array<int,string>, * cache_path?: string * } $config */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'fromFile', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Create from legacy config file * * @param string $configFile Path to config/cache.php * @return self */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'self', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'configFile', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'isEnabled', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if caching is enabled */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getDriver', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get cache driver name */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getDefaultTtl', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get default TTL */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getTableTtl', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get TTL for specific table */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'shouldCacheTable', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if table should be cached */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getVaryBy', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getCachePath', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get cache storage path */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getAllTableTtl', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,int> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getExcludedTables', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 11 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'toArray', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'enable', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Enable caching */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 13 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'disable', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Disable caching */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 14 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setDriver', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Set driver */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'driver', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 15 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setDefaultTtl', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Set default TTL */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ttl', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 16 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setTableTtl', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Set TTL for specific table */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ttl', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 17 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'excludeTable', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Exclude table from caching */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 18 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'includeTable', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Include previously excluded table */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Config\\Env.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Config\\Env', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Lightweight .env loader for PHP-CRUD-API-Generator. * * This avoids adding external dependencies while still allowing * configuration via environment variables or a project-level .env file. */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'load', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Load key=value pairs from a .env-style file into getenv()/$_ENV/$_SERVER. */', 'namespace' => 'App\\Config', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'path', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Database.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Database\\Database', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Database Connection Manager * Moved to App\\\\Database namespace. */', 'namespace' => 'App\\Database', 'uses' => array ( 'pdo' => 'PDO', 'pdoexception' => 'PDOException', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array{ * host:string, * dbname:string, * user:string, * pass:string, * charset?:string * } $config */', 'namespace' => 'App\\Database', 'uses' => array ( 'pdo' => 'PDO', 'pdoexception' => 'PDOException', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getPdo', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'PDO', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\DialectInterface.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedInterfaceNode::__set_state(array( 'name' => 'App\\Database\\Dialect\\DialectInterface', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Database Dialect Interface * * Provides abstraction for database-specific behaviors (identifier quoting * and schema inspection). Phase 3 baseline: MySQL implementation. */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'extends' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'quoteIdent', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Quote an identifier (table/column) safely for the dialect. */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ident', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'listTables', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Return list of tables in the current database/schema. * * @return array<int,string> */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'listColumns', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Return list of columns (associative arrays) for a given table. * * @return array<int,array<string,mixed>> */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getPrimaryKey', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Return the primary key column name for a given table, or null if not found. */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\MySqlDialect.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Database\\Dialect\\MySqlDialect', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * MySQL/MariaDB Dialect implementation */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( 0 => 'App\\Database\\Dialect\\DialectInterface', ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'quoteIdent', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ident', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'listTables', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'listColumns', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,array<string,mixed>> */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getPrimaryKey', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\Dialect\\PostgresDialect.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Database\\Dialect\\PostgresDialect', 'phpDoc' => NULL, 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( 0 => 'App\\Database\\Dialect\\DialectInterface', ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'quoteIdent', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'listTables', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', 'logicexception' => 'LogicException', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'listColumns', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,array<string,mixed>> */', 'namespace' => 'App\\Database\\Dialect', 'uses' => array ( 'pdo' => 'PDO', 'logicexception' => 'LogicException', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getPrimaryKey', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Database\\SchemaInspector.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Database\\SchemaInspector', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * SchemaInspector using pluggable DialectInterface (Phase 3) */', 'namespace' => 'App\\Database', 'uses' => array ( 'pdo' => 'PDO', 'dialectinterface' => 'App\\Database\\Dialect\\DialectInterface', 'mysqldialect' => 'App\\Database\\Dialect\\MySqlDialect', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pdo', 'type' => 'PDO', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'dialect', 'type' => '?App\\Database\\Dialect\\DialectInterface', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getTables', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Database', 'uses' => array ( 'pdo' => 'PDO', 'dialectinterface' => 'App\\Database\\Dialect\\DialectInterface', 'mysqldialect' => 'App\\Database\\Dialect\\MySqlDialect', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getColumns', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,array<string,mixed>> */', 'namespace' => 'App\\Database', 'uses' => array ( 'pdo' => 'PDO', 'dialectinterface' => 'App\\Database\\Dialect\\DialectInterface', 'mysqldialect' => 'App\\Database\\Dialect\\MySqlDialect', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getPrimaryKey', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => '?string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'quoteIdent', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ident', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Docs\\OpenApiGenerator.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Docs\\OpenApiGenerator', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * OpenApiGenerator (Canonical) * * Minimal generator to produce a basic OpenAPI 3.0 spec from tables/columns. * This avoids depending on the removed legacy class. */', 'namespace' => 'App\\Docs', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'generate', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<int,string> $tables * @return array<string,mixed> */', 'namespace' => 'App\\Docs', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'tables', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'inspector', 'type' => 'App\\Database\\SchemaInspector', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\HookManager.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\HookManager', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @deprecated Use App\\Application\\HookManager instead */', 'namespace' => 'App', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => 'App\\Application\\HookManager', 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Action.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Action', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Action constants to avoid magic strings in routing/authorization. */', 'namespace' => 'App\\Http', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => true, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'TABLES', 'value' => '\'tables\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 1 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'COLUMNS', 'value' => '\'columns\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 2 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'LIST', 'value' => '\'list\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 3 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'COUNT', 'value' => '\'count\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 4 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'READ', 'value' => '\'read\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 5 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'CREATE', 'value' => '\'create\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 6 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'UPDATE', 'value' => '\'update\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 7 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'DELETE', 'value' => '\'delete\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 8 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'BULK_CREATE', 'value' => '\'bulk_create\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 9 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'BULK_DELETE', 'value' => '\'bulk_delete\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 10 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'OPENAPI', 'value' => '\'openapi\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 11 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'LOGIN', 'value' => '\'login\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\ApiController.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Controllers\\ApiController', 'phpDoc' => NULL, 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'inspector', 'type' => 'App\\Database\\SchemaInspector', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'api', 'type' => 'App\\ApiGenerator', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'cache', 'type' => '?App\\Cache\\CacheManager', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'rbacGuard', 'type' => 'App\\Security\\RbacGuard', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'authEnabled', 'type' => 'bool', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'tables', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{0:array<int,string>,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'columns', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{0:array<int,array<string,mixed>>|array{error:string},1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'list', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $query * @return array{0:array<string,mixed>,1:int,2?:array<string,string>} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'query', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'count', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $query * @return array{0:array<string,mixed>,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'query', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'read', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param int|string $id * @return array{0:array<string,mixed>|array{error:string},1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'create', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $data * @return array{0:array<string,mixed>|array{error:string},1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'data', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'update', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param int|string $id * @param array<string,mixed> $data * @return array{0:array<string,mixed>|array{error:string},1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'data', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'delete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param int|string $id * @return array{0:mixed,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'bulkCreate', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<int,array<string,mixed>> $rows * @return array{0:mixed,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'rows', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'bulkDelete', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<int,int|string> $ids * @return array{0:mixed,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'apigenerator' => 'App\\ApiGenerator', 'cachemanager' => 'App\\Cache\\CacheManager', 'rbacguard' => 'App\\Security\\RbacGuard', 'qv' => 'App\\Support\\QueryValidator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'ids', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\DocsController.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Controllers\\DocsController', 'phpDoc' => NULL, 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'inspector', 'type' => 'App\\Database\\SchemaInspector', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'openapi', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * GET /openapi * @return array{0:mixed,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'schemainspector' => 'App\\Database\\SchemaInspector', 'openapigenerator' => 'App\\Docs\\OpenApiGenerator', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Controllers\\LoginController.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Controllers\\LoginController', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * LoginController * Extracted from Router::route() Phase 1 without changing behavior. */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'authenticator' => 'App\\Auth\\Authenticator', 'database' => 'App\\Database\\Database', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'db', 'type' => 'App\\Database\\Database', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'auth', 'type' => 'App\\Auth\\Authenticator', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'logger', 'type' => 'App\\Observability\\RequestLogger', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'monitor', 'type' => '?App\\Observability\\Monitor', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'handle', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Handle JWT login. Returns [payload, statusCode]. * Mirrors previous Router logic, including DB auth fallback and events. * * @param array<string,mixed> $query * @return array{0:mixed,1:int} */', 'namespace' => 'App\\Http\\Controllers', 'uses' => array ( 'authenticator' => 'App\\Auth\\Authenticator', 'database' => 'App\\Database\\Database', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'query', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\ErrorResponder.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\ErrorResponder', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * ErrorResponder: centralizes exception-to-response mapping with logging. * * By default, it preserves the exception message in the response to avoid * behavior changes. Toggle $exposeDetails to false for sanitized payloads. */', 'namespace' => 'App\\Http', 'uses' => array ( 'throwable' => 'Throwable', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'logger', 'type' => 'App\\Observability\\RequestLogger', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'monitor', 'type' => '?App\\Observability\\Monitor', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'exposeDetails', 'type' => 'bool', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'fromException', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Handle an exception: log, record metrics, and send JSON error response. * Returns the payload and status for callers that also need to log response. * * @param array<string,mixed> $context * @return array{0: array{error: string}, 1: int} */', 'namespace' => 'App\\Http', 'uses' => array ( 'throwable' => 'Throwable', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'e', 'type' => 'Throwable', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'context', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'status', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\CorsMiddleware.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Middleware\\CorsMiddleware', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Simple CORS middleware. * * Config keys (all optional): * - enabled: bool (default true) * - allow_origin: string (default "*") * - allow_methods: string (default "GET, POST, PUT, PATCH, DELETE, OPTIONS") * - allow_headers: string (default "Content-Type, Authorization, X-Requested-With") * - allow_credentials: bool (default false) * - max_age: int seconds (default 86400) */', 'namespace' => 'App\\Http\\Middleware', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $config */', 'namespace' => 'App\\Http\\Middleware', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'apply', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'handlePreflight', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Handle preflight OPTIONS requests. Returns true if handled and request should stop. */', 'namespace' => 'App\\Http\\Middleware', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Middleware\\RateLimitMiddleware.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Middleware\\RateLimitMiddleware', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * RateLimitMiddleware centralizes rate limiting checks and responses. * * Responsibilities: * - Check limit for an identifier (user/apikey/ip) * - Log rate limit hits * - Record security events * - Emit rate limit headers * - Send 429 response if exceeded */', 'namespace' => 'App\\Http\\Middleware', 'uses' => array ( 'ratelimiter' => 'App\\Security\\RateLimiter', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'rateLimiter', 'type' => 'App\\Security\\RateLimiter', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'logger', 'type' => 'App\\Observability\\RequestLogger', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'monitor', 'type' => '?App\\Observability\\Monitor', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'checkAndRespond', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Perform rate limit check and respond if exceeded. * Returns false if request should terminate (429 already sent), * otherwise true and ensures headers are emitted. * * @param string $identifier * @return bool */', 'namespace' => 'App\\Http\\Middleware', 'uses' => array ( 'ratelimiter' => 'App\\Security\\RateLimiter', 'requestlogger' => 'App\\Observability\\RequestLogger', 'monitor' => 'App\\Observability\\Monitor', ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Http\\Response.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Http\\Response', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Response helper (Phase 1 minimal). Centralizes JSON output so later we can * add content negotiation, envelopes, correlation IDs, etc. */', 'namespace' => 'App\\Http', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'json', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param mixed $payload * @param array<string,string> $headers */', 'namespace' => 'App\\Http', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'payload', 'type' => NULL, 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'status', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'headers', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'error', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'message', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'status', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Observability\\Monitor.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Observability\\Monitor', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * API Monitoring System (Canonical) */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'METRIC_REQUEST', 'value' => '\'request\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 1 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'METRIC_RESPONSE', 'value' => '\'response\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 2 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'METRIC_ERROR', 'value' => '\'error\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 3 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'METRIC_PERFORMANCE', 'value' => '\'performance\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 4 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'METRIC_SECURITY', 'value' => '\'security\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 5 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'ALERT_INFO', 'value' => '\'info\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 6 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'ALERT_WARNING', 'value' => '\'warning\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 7 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'ALERT_CRITICAL', 'value' => '\'critical\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 8 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'DEFAULT_ERROR_RATE_THRESHOLD', 'value' => '5.0', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 9 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'DEFAULT_RESPONSE_TIME_THRESHOLD', 'value' => '1000', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 10 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'DEFAULT_RATE_LIMIT_THRESHOLD', 'value' => '90', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 11 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'DEFAULT_AUTH_FAILURE_THRESHOLD', 'value' => '10', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $config */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 13 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'recordMetric', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $data */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'type', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'data', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 14 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'recordRequest', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $request */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'request', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 15 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'recordResponse', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'statusCode', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'responseTime', 'type' => 'float', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'responseSize', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 16 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'recordError', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $context */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'message', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'context', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 17 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'recordSecurityEvent', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $data */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'event', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'data', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 18 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getHealthStatus', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 19 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getStats', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<string,mixed> */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'minutes', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 20 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'triggerAlert', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $context */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'level', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'message', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'context', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 21 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getRecentAlerts', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,array<string,mixed>> */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'minutes', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 22 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'cleanup', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( ), 'attributes' => array ( ), )), 23 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'exportMetrics', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'string', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'format', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Observability\\RequestLogger.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Observability\\RequestLogger', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * RequestLogger (canonical) * - Human-readable single-file logs: api_YYYY-mm-dd.log * - Levels: INFO, WARNING, ERROR (derived from status code) * - Redacts sensitive fields in request body * - Optional rotation and cleanup */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'LEVEL_INFO', 'value' => '\'INFO\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 1 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'LEVEL_WARNING', 'value' => '\'WARNING\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 2 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantsNode::__set_state(array( 'constants' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassConstantNode::__set_state(array( 'name' => 'LEVEL_ERROR', 'value' => '\'ERROR\'', 'attributes' => array ( ), )), ), 'public' => true, 'private' => false, 'final' => false, 'phpDoc' => NULL, )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array{ * enabled?: bool, * log_dir?: string, * log_headers?: bool, * log_body?: bool, * max_body_length?: int, * rotation_size?: int, * max_files?: int * } $config */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'logRequest', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $request * @param array<string,mixed> $response */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'request', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'response', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'executionTime', 'type' => 'float', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'logAuth', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'method', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'success', 'type' => 'bool', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'userOrIdentifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'message', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'logError', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string,mixed> $context */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'message', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'context', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'logRateLimit', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'count', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'limit', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'logQuickRequest', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'method', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'action', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'subject', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getStats', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array{total_requests:int,errors:int,warnings:int,auth_failures:int,rate_limits:int} */', 'namespace' => 'App\\Observability', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'cleanup', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RateLimiter.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Security\\RateLimiter', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Rate Limiter * * Prevents API abuse by limiting the number of requests per time window. * Uses a sliding window algorithm with file-based storage for persistence. * Can be easily extended to use Redis, Memcached, or database storage. * * Features: * - Sliding window algorithm for accurate rate limiting * - Configurable limits per identifier (IP, user, API key) * - Per-request overrides for custom limits * - Request count tracking * - Remaining requests calculation * - Reset time prediction * - Rate limit headers (X-RateLimit-*) * - File-based persistence (Redis-ready) * - Automatic cleanup of old data * - Thread-safe file operations * * @author Adrian D * @license MIT * @link https://upmvc.com * @version 1.2.0 */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Initialize the rate limiter * * @param array{ * enabled?: bool, * max_requests?: int, * window_seconds?: int, * storage_dir?: string * } $config Configuration options */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'config', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'checkLimit', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Check if the request should be allowed */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'maxRequests', 'type' => '?int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'windowSeconds', 'type' => '?int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getRequestCount', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Get current request count for an identifier */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getRemainingRequests', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Get remaining requests for an identifier */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getResetTime', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Get time until rate limit resets (in seconds) */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'reset', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Reset rate limit for an identifier (admin use) */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'getHeaders', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Get rate limit headers for HTTP response * * @return array<string,string> */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'sendRateLimitResponse', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Send rate limit exceeded response and exit */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'never', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'identifier', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'cleanup', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** Clean up old rate limit files (maintenance) */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'olderThanSeconds', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\Rbac.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Security\\Rbac', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Role-Based Access Control (RBAC) System (Canonical) */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @param array<string, array<string, list<string>>> $roles * @param array<string, list<string>|string> $userRoles Map username => role(s); kept for future use */', 'namespace' => 'App\\Security', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'roles', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'userRoles', 'type' => 'array', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'isAllowed', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'action', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Security\\RbacGuard.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Security\\RbacGuard', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * RbacGuard enforces RBAC via Response helper. * * Contract: * - guard(authEnabled, role, table, action): * - If auth disabled or table null ? allow (no-op) * - If no role ? 403 Forbidden via Response * - If role not allowed ? 403 Forbidden via Response */', 'namespace' => 'App\\Security', 'uses' => array ( 'rbac' => 'App\\Security\\Rbac', 'response' => 'App\\Http\\Response', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => '__construct', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => NULL, 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'rbac', 'type' => 'App\\Security\\Rbac', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'guard', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'authEnabled', 'type' => 'bool', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'role', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => '?string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'action', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Support\\QueryValidator.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Support\\QueryValidator', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * QueryValidator consolidates common query parameter validation logic * formerly scattered via static Validator calls. * * Acceptance (Phase 1, point 4): All validation paths call this class; * messages consistent with previous behavior. */', 'namespace' => 'App\\Support', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'table', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'id', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'page', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'page', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'pageSize', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'size', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'sort', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'sort', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\src\\Support\\Validator.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'App\\Support\\Validator', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Canonical Input Validator (moved from App\\Validator) * See App\\Validator for BC wrapper. */', 'namespace' => 'App\\Support', 'uses' => array ( ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => NULL, 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validateTableName', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'table', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validateColumnName', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'column', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validatePage', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'page', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validatePageSize', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'int', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'pageSize', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'max', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'default', 'type' => 'int', 'byRef' => false, 'variadic' => false, 'hasDefault' => true, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validateId', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'id', 'type' => 'int|string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validateOperator', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'operator', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'sanitizeFields', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * @return array<int,string> */', 'namespace' => 'App\\Support', 'uses' => array ( ), 'constUses' => array ( ), )), 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'array', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'fields', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'validateSort', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'bool', 'parameters' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedParameterNode::__set_state(array( 'name' => 'sort', 'type' => 'string', 'byRef' => false, 'variadic' => false, 'hasDefault' => false, 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\AdvancedFilterTest.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'AdvancedFilterTest', 'phpDoc' => NULL, 'abstract' => false, 'final' => false, 'extends' => 'PHPUnit\\Framework\\TestCase', 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setUpBeforeClass', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'tearDownAfterClass', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setUp', 'phpDoc' => NULL, 'byRef' => false, 'public' => false, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFieldSelection', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFilterEquals', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFilterGreaterThan', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFilterLessThan', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFilterLike', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFilterIn', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testFilterNotIn', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testMultipleFilters', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 11 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCombinedFieldsAndFilters', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testBackwardCompatibility', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 13 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCount', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 14 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCountWithFilter', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 15 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCountWithMultipleFilters', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\ApiGeneratorTest.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'ApiGeneratorTest', 'phpDoc' => NULL, 'abstract' => false, 'final' => false, 'extends' => 'PHPUnit\\Framework\\TestCase', 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setUpBeforeClass', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'tearDownAfterClass', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => true, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setUp', 'phpDoc' => NULL, 'byRef' => false, 'public' => false, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCreateAndRead', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testUpdate', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testDelete', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testList', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RateLimiterTest.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'RateLimiterTest', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Rate Limiter Tests * * Tests the rate limiting functionality including: * - Basic rate limiting * - Request counting * - Reset functionality * - Header generation * - Cleanup operations */', 'namespace' => NULL, 'uses' => array ( 'testcase' => 'PHPUnit\\Framework\\TestCase', 'ratelimiter' => 'App\\Security\\RateLimiter', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => 'PHPUnit\\Framework\\TestCase', 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setUp', 'phpDoc' => NULL, 'byRef' => false, 'public' => false, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'tearDown', 'phpDoc' => NULL, 'byRef' => false, 'public' => false, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testBasicRateLimiting', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testRequestCount', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testRemainingRequests', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testRateLimitReset', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testWindowExpiration', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testHeaders', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testDisabledRateLimiting', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCustomLimits', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testMultipleIdentifiers', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 11 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testResetTime', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCleanup', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), 'D:\\GitHub\\PHP-CRUD-API-Generator\\tests\\RequestLoggerTest.php' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedClassNode::__set_state(array( 'name' => 'RequestLoggerTest', 'phpDoc' => \PHPStan\Dependency\ExportedNode\ExportedPhpDocNode::__set_state(array( 'phpDocString' => '/** * Request Logger Tests * * Tests the request logging functionality including: * - Request/response logging * - Log levels * - Sensitive data redaction * - Authentication logging * - Rate limit logging * - Log rotation * - Statistics * - Cleanup */', 'namespace' => NULL, 'uses' => array ( 'testcase' => 'PHPUnit\\Framework\\TestCase', 'requestlogger' => 'App\\Observability\\RequestLogger', ), 'constUses' => array ( ), )), 'abstract' => false, 'final' => false, 'extends' => 'PHPUnit\\Framework\\TestCase', 'implements' => array ( ), 'usedTraits' => array ( ), 'traitUseAdaptations' => array ( ), 'statements' => array ( 0 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'setUp', 'phpDoc' => NULL, 'byRef' => false, 'public' => false, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 1 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'tearDown', 'phpDoc' => NULL, 'byRef' => false, 'public' => false, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 2 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testBasicRequestLogging', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 3 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testSensitiveDataRedaction', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 4 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testAuthenticationLogging', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 5 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testRateLimitLogging', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 6 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testErrorLogging', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 7 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testQuickRequestLogging', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 8 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testLogStatistics', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 9 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testDisabledLogging', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 10 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testLogRotation', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 11 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testCleanup', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), 12 => \PHPStan\Dependency\ExportedNode\ExportedMethodNode::__set_state(array( 'name' => 'testLogLevels', 'phpDoc' => NULL, 'byRef' => false, 'public' => true, 'private' => false, 'abstract' => false, 'final' => false, 'static' => false, 'returnType' => 'void', 'parameters' => array ( ), 'attributes' => array ( ), )), ), 'attributes' => array ( ), )), ), ); }, ];