You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
65 lines
1.4 KiB
#!/usr/bin/env php |
|
<?php declare(strict_types=1); |
|
/* |
|
* This file is part of resource-operations. |
|
* |
|
* (c) Sebastian Bergmann <sebastian@phpunit.de> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
|
|
$functions = require __DIR__ . '/FunctionSignatureMap.php'; |
|
$resourceFunctions = []; |
|
|
|
foreach ($functions as $function => $arguments) { |
|
foreach ($arguments as $argument) { |
|
if (strpos($argument, '?') === 0) { |
|
$argument = substr($argument, 1); |
|
} |
|
|
|
if ($argument === 'resource') { |
|
$resourceFunctions[] = explode('\'', $function)[0]; |
|
} |
|
} |
|
} |
|
|
|
$resourceFunctions = array_unique($resourceFunctions); |
|
sort($resourceFunctions); |
|
|
|
$buffer = <<<EOT |
|
<?php declare(strict_types=1); |
|
/* |
|
* This file is part of resource-operations. |
|
* |
|
* (c) Sebastian Bergmann <sebastian@phpunit.de> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
namespace SebastianBergmann\ResourceOperations; |
|
|
|
final class ResourceOperations |
|
{ |
|
/** |
|
* @return string[] |
|
*/ |
|
public static function getFunctions(): array |
|
{ |
|
return [ |
|
|
|
EOT; |
|
|
|
foreach ($resourceFunctions as $function) { |
|
$buffer .= sprintf(" '%s',\n", $function); |
|
} |
|
|
|
$buffer .= <<< EOT |
|
]; |
|
} |
|
} |
|
|
|
EOT; |
|
|
|
file_put_contents(__DIR__ . '/../src/ResourceOperations.php', $buffer); |
|
|
|
|