<?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 (
),
)),
),
); },
];
|