|
|
@@ -1,42 +1,47 @@
|
|
|
#!/usr/bin/php -q
|
|
|
<?php
|
|
|
+declare(strict_types=1);
|
|
|
+
|
|
|
+/*
|
|
|
+ * Validate that each deprecation of a class is followed by class_alias() and class_exists()
|
|
|
+ * in each relevant file complementing each other.
|
|
|
+ */
|
|
|
|
|
|
$options = [
|
|
|
- __DIR__ . '/../vendor/autoload.php',
|
|
|
- __DIR__ . '/vendor/autoload.php',
|
|
|
+ __DIR__ . '/../vendor/autoload.php',
|
|
|
+ __DIR__ . '/vendor/autoload.php',
|
|
|
];
|
|
|
if (!empty($_SERVER['PWD'])) {
|
|
|
- array_unshift($options, $_SERVER['PWD'] . '/vendor/autoload.php');
|
|
|
+ array_unshift($options, $_SERVER['PWD'] . '/vendor/autoload.php');
|
|
|
}
|
|
|
|
|
|
foreach ($options as $file) {
|
|
|
- if (file_exists($file)) {
|
|
|
- define('COMPOSER_INSTALL', $file);
|
|
|
+ if (file_exists($file)) {
|
|
|
+ define('COMPOSER_INSTALL', $file);
|
|
|
|
|
|
- break;
|
|
|
- }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
require COMPOSER_INSTALL;
|
|
|
|
|
|
$path = dirname(__DIR__) . DS . 'src' . DS;
|
|
|
-$di = new RecursiveDirectoryIterator($path, (RecursiveDirectoryIterator::SKIP_DOTS));
|
|
|
-/** @var \SplFileInfo[] $iterator */
|
|
|
+$di = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS);
|
|
|
+/** @var array<\SplFileInfo> $iterator */
|
|
|
$iterator = new RecursiveIteratorIterator($di);
|
|
|
|
|
|
-$issues = [];
|
|
|
$code = 0;
|
|
|
foreach ($iterator as $file) {
|
|
|
- if (pathinfo($file, PATHINFO_EXTENSION) !== 'php') {
|
|
|
+ if (pathinfo((string)$file, PATHINFO_EXTENSION) !== 'php') {
|
|
|
continue;
|
|
|
}
|
|
|
- if (pathinfo($file, PATHINFO_FILENAME) === 'functions') {
|
|
|
+ if (pathinfo((string)$file, PATHINFO_FILENAME) === 'functions') {
|
|
|
continue;
|
|
|
}
|
|
|
if (strpos($file->getRealPath(), '/TestSuite/')) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- $content = file_get_contents($file);
|
|
|
+ $content = file_get_contents((string)$file);
|
|
|
if (!strpos($content, 'class_alias(')) {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -53,7 +58,7 @@ foreach ($iterator as $file) {
|
|
|
$filePath = str_replace('Cake/', $path, $filePath);
|
|
|
$filePath .= '.php';
|
|
|
if (!file_exists($filePath)) {
|
|
|
- throw new RuntimeException('Cannot find path for ' . $matches[1]);
|
|
|
+ throw new RuntimeException('Cannot find path for `' . $matches[1] . '`');
|
|
|
}
|
|
|
|
|
|
$newFileContent = file_get_contents($filePath);
|
|
|
@@ -61,7 +66,7 @@ foreach ($iterator as $file) {
|
|
|
if (strpos($newFileContent, 'class_exists(') === false && !str_contains($newFileContent, 'class_alias(')) {
|
|
|
$oldPath = str_replace($path, '', $file->getRealPath());
|
|
|
$newPath = str_replace($path, '', $filePath);
|
|
|
- echo "\033[31m" . ' * Missing class_exists() or class_alias() on new file for ' . $oldPath . ' => ' . $newPath . "\033[0m" . PHP_EOL;
|
|
|
+ echo "\033[31m" . ' * Missing `class_exists()` or `class_alias()` on new file for `' . $oldPath . '` => `' . $newPath . '`' . "\033[0m" . PHP_EOL;
|
|
|
$code = 1;
|
|
|
} else {
|
|
|
echo ' * OK' . PHP_EOL;
|