diff --git a/hook.php b/hook.php index c7c5983..f6751d5 100644 --- a/hook.php +++ b/hook.php @@ -624,12 +624,11 @@ function plugin_example_uninstall() ProfileRight::deleteProfileRights([Example::$rightname]); $notif = new Notification(); - $options = ['itemtype' => 'Ticket', - 'event' => 'plugin_example', - 'FIELDS' => 'id']; - foreach ($DB->request('glpi_notifications', $options) as $data) { - $notif->delete($data); - } + $notif->deleteByCriteria([ + 'itemtype' => 'Ticket', + 'event' => 'plugin_example', + 'FIELDS' => 'id', + ]); // Old version tables if ($DB->tableExists('glpi_dropdown_plugin_example')) { $query = 'DROP TABLE `glpi_dropdown_plugin_example`'; diff --git a/phpstan.neon b/phpstan.neon index 8cf33ad..c5f3953 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,6 +1,9 @@ +includes: + - ../../vendor/glpi-project/phpstan-glpi/extension.neon + - ../../vendor/phpstan/phpstan-deprecation-rules/rules.neon + - ../../vendor/thecodingmachine/phpstan-safe-rule/phpstan-safe-rule.neon + parameters: - parallel: - maximumNumberOfProcesses: 2 level: 5 paths: - front @@ -10,10 +13,12 @@ parameters: - setup.php - stat.php scanDirectories: - - ../../inc - ../../src - - ../../front bootstrapFiles: - ../../stubs/glpi_constants.php - ../../vendor/autoload.php - + - setup.php + treatPhpDocTypesAsCertain: false + ignoreErrors: + - message: "#.*always true#" + - message: "#Unreachable statement#" diff --git a/report.php b/report.php index 47251ef..cee979a 100644 --- a/report.php +++ b/report.php @@ -28,6 +28,8 @@ * ------------------------------------------------------------------------- */ +use function Safe\define; + // ---------------------------------------------------------------------- // Original Author of file: // Purpose of file: diff --git a/setup.php b/setup.php index 7a24a49..2cc0d0f 100644 --- a/setup.php +++ b/setup.php @@ -39,6 +39,8 @@ use GlpiPlugin\Example\Profile; use GlpiPlugin\Example\RuleTestCollection; use GlpiPlugin\Example\Showtabitem; +use function Safe\define; + define('PLUGIN_EXAMPLE_VERSION', '0.1.0'); // Minimal GLPI version, inclusive diff --git a/src/Document.php b/src/Document.php index fc81200..493bbd0 100644 --- a/src/Document.php +++ b/src/Document.php @@ -57,8 +57,17 @@ namespace GlpiPlugin\Example; +use Glpi\Exception\Http\NotFoundHttpException; +use Glpi\Exception\Http\HttpException; use Document as GlpiDocument; +use function Safe\filemtime; +use function Safe\filesize; +use function Safe\fopen; +use function Safe\fread; +use function Safe\preg_match; +use function Safe\set_time_limit; + class Document extends GlpiDocument { /** @@ -142,8 +151,7 @@ class Document extends GlpiDocument // Ensure the file exists if (!file_exists($streamSource) || !is_file($streamSource)) { - header('HTTP/1.0 404 Not Found'); - exit(0); + throw new NotFoundHttpException(); } // Download range defaults to the full file @@ -157,8 +165,7 @@ class Document extends GlpiDocument // Open the file $fileHandle = @fopen($streamSource, 'rb'); if (!$fileHandle) { - header('HTTP/1.0 500 Internal Server Error'); - exit(0); + throw new HttpException(500, 'Internal Server Error'); } // set range if specified by the client @@ -174,8 +181,7 @@ class Document extends GlpiDocument // seek to the begining of the range $currentPosition = $begin; if (fseek($fileHandle, $begin, SEEK_SET) < 0) { - header('HTTP/1.0 500 Internal Server Error'); - exit(0); + throw new HttpException(500, 'Internal Server Error'); } // send headers to ensure the client is able to detect a corrupted download @@ -206,9 +212,8 @@ class Document extends GlpiDocument // allow a few seconds to send a few KB. set_time_limit(10); $content = fread($fileHandle, min(1024 * 16, $end - $currentPosition + 1)); - if ($content === false) { - header('HTTP/1.0 500 Internal Server Error', true); // Replace previously sent headers - exit(0); + if (empty($content)) { + throw new HttpException(500, 'Internal Server Error'); } else { print $content; } @@ -217,6 +222,6 @@ class Document extends GlpiDocument } // End now to prevent any unwanted bytes - exit(0); + return; } } diff --git a/src/Example.php b/src/Example.php index 23e3df8..00b0b42 100644 --- a/src/Example.php +++ b/src/Example.php @@ -49,6 +49,8 @@ use Preference; use Session; use Supplier; +use function Safe\strtotime; + // Class of the defined type class Example extends CommonDBTM { diff --git a/stat.php b/stat.php index cdf05c9..001f441 100644 --- a/stat.php +++ b/stat.php @@ -28,6 +28,8 @@ * ------------------------------------------------------------------------- */ +use function Safe\define; + // ---------------------------------------------------------------------- // Original Author of file: // Purpose of file: