Add daily email for 2025-03-21
Extra PHPDoc types with PHPStan
This commit is contained in:
parent
2df3793251
commit
4831cd6a3f
1 changed files with 58 additions and 0 deletions
58
source/_daily_emails/2025-03-21.md
Normal file
58
source/_daily_emails/2025-03-21.md
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
---
|
||||||
|
title: Extra PHPDoc types with PHPStan
|
||||||
|
date: 2025-03-21
|
||||||
|
permalink: daily/2025/03/21/phpdoc
|
||||||
|
tags:
|
||||||
|
- software-development
|
||||||
|
- php
|
||||||
|
- phpstan
|
||||||
|
- static-analysis
|
||||||
|
cta: ~
|
||||||
|
snippet: |
|
||||||
|
Using new PHPDoc types and better static analysis with PHPStan.
|
||||||
|
---
|
||||||
|
|
||||||
|
Here are some examples of PHP code from Drupal core:
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* The weight of this role in administrative listings.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
protected $weight;
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* Path of the image file.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $source = '';
|
||||||
|
```
|
||||||
|
|
||||||
|
```php
|
||||||
|
/**
|
||||||
|
* Alter the list of mail backend plugin definitions.
|
||||||
|
*
|
||||||
|
* @param array $info
|
||||||
|
* The mail backend plugin definitions to be altered.
|
||||||
|
*/
|
||||||
|
```
|
||||||
|
|
||||||
|
These use some of the standard PHPDoc types of `int`, `string` and `array`.
|
||||||
|
|
||||||
|
Although they are comments, docblocks are checked by static analysis tools like PHPStan to parse the code and report any potential errors.
|
||||||
|
|
||||||
|
If you want to go deeper, PHPStan has [its own PHPDoc types][0] that you can use to add more information and context.
|
||||||
|
|
||||||
|
Instead of specifying an argument must be a `string`, you can specify it's a `non-empty-string` or a `class-string`.
|
||||||
|
|
||||||
|
You can specify whether an integer is a `positive-int` or `negative-int`, or within a certain range.
|
||||||
|
|
||||||
|
You can define the shape of an array or object, whether an array is empty, or the types of keys and values in an array.
|
||||||
|
|
||||||
|
All of this is used by PHPStan when analysing the code and will give better results and find more potential bugs before anyone else does.
|
||||||
|
|
||||||
|
[0]: https://phpstan.org/writing-php-code/phpdoc-types
|
Loading…
Add table
Add a link
Reference in a new issue