seferov / typhp
Enforce type declaring
Installs: 3 123
Dependents: 1
Suggesters: 0
Security: 0
Stars: 53
Watchers: 5
Forks: 2
Open Issues: 2
Requires
- php: ^7.1
- jean85/pretty-package-versions: ^1.2
- nikic/php-parser: ^4.2
- phpdocumentor/reflection-docblock: ^4.3
- symfony/console: ^4.3
- symfony/finder: ^4.3
- symfony/process: ^4.3
- symfony/stopwatch: ^4.3
- symfony/yaml: ^4.3
Requires (Dev)
- phpunit/phpunit: ^7.5
- symfony/var-dumper: ^4.3
This package is auto-updated.
Last update: 2024-10-29 05:11:11 UTC
README
typhp
is a simple tool checks whether type hint for arguments or return type declared.
Unlike static analysis tools, it doesn't point out possible errors and issues
but suggests typehint everything possible.
For whom?
- Who works projects using PHP 7.1 and higher.
- Who doesn't want to point out missing type hint and return type declarations in code review process by using it as part of CI pipeline.
- Who love strict typing and defensive programming.
Features
- Respects phpdoc; there are some rare cases mixed or compound types are needed.
If such cases documented in phpdoc,
typhp
doesn't complain. For example:@return array|bool
,@param mixed $foo
, etc. - Takes magic methods into account.
- Analyses based on configuration. Include/exclude files and directories to be analysed. For optional config file, see the current project example
- Does NOT modifies your code
Installation
There are several ways to install typhp
. The recommended one is to use
phar distribution. Thus you won't have possible dependency conflict.
Phar
Direct download from the latest Github release
wget https://github.com/seferov/typhp/releases/download/v0.2.0/typhp.phar -O typhp chmod +x typhp
You can install phar distribution by Phive
phive install seferov/typhp --global
Composer
typhp
can be installed by composer globally.
composer global require seferov/typhp
If you prefer, you can it add dev dependency to your project.
composer require require seferov/typhp --dev
Usage
typhp analyse path
If config file (.typhp.yml
) is present in project root, it can be run
just by vendor/bin/typhp
Example output
Todo
-
Analyse closures
-
Check by PHP version. For example, don't suppress
@param object
for >= PHP 7.2 -
Better configuration
-
Check
declare(strict_types=1)
by config -
Phar file
-
Auto deploy phar file to release assets & add self-update command
-
Github Actions
Issues
Since it is a beta release, there might be some issues. If you found one, please submit it here