GitHub - wapmorgan/PhpCodeAnalyzer: PhpCodeAnalyzer scans codebase and analyzes which non-built-in php extensions used (original) (raw)
PhpCodeAnalyzer
PhpCodeAnalyzer finds usage of different non-built-in extensions in your php code. This tool helps you understand how transportable your code between php installations is.
TOC
Example of usage
To scan your files or folder launch phpca
and pass file or directory names.
phpca ..\HttpServer Scanning ..\HttpServer ... [spl] Function "spl_autoload_register" used in file ..\HttpServer/vendor/composer/ClassLoader.php[258] [spl] Function "spl_autoload_unregister" used in file ..\HttpServer/vendor/composer/ClassLoader.php[266] [spl] Function "spl_autoload_register" used in file ..\HttpServer/vendor/composer/autoload_real.php[22] [spl] Function "spl_autoload_unregister" used in file ..\HttpServer/vendor/composer/autoload_real.php[24]
Used non-built-in extensions in your code:
- [spl] Standard PHP Library (SPL). This extension is bundled with php since PHP 5.0.0. Extension is available in pecl: spl.
You can skip progress with --no-progress
option:
phpca --no-progress ..\yii-1.1.16.bca042\framework\caching Scanning ..\yii-1.1.16.bca042\framework\caching ...
Used non-built-in extensions in your code:
- [apc] Alternative PHP Cache. Extension is available in pecl: apc.
- [wincache] Windows Cache for PHP. Extension is available in pecl: wincache.
Also, you can keep only progress with --no-report
option:
phpca --no-report ..\yii-1.1.16.bca042\framework\caching Scanning ..\yii-1.1.16.bca042\framework\caching ... [apc] Function "apc_fetch" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[46] [apc] Function "apc_fetch" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[56] [apc] Function "apc_store" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[70] [apc] Function "apc_add" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[84] [apc] Function "apc_delete" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[95] [apc] Function "apc_clear_cache" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[107] [apc] Function "apc_clear_cache" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[109] [wincache] Function "wincache_ucache_get" used in file ..\yii-1.1.16.bca042\framework\caching/CWinCache.php[46] [wincache] Function "wincache_ucache_get" used in file ..\yii-1.1.16.bca042\framework\caching/CWinCache.php[56] [wincache] Function "wincache_ucache_set" used in file ..\yii-1.1.16.bca042\framework\caching/CWinCache.php[70] [wincache] Function "wincache_ucache_add" used in file ..\yii-1.1.16.bca042\framework\caching/CWinCache.php[84] [wincache] Function "wincache_ucache_delete" used in file ..\yii-1.1.16.bca042\framework\caching/CWinCache.php[95] [wincache] Function "wincache_ucache_clear" used in file ..\yii-1.1.16.bca042\framework\caching/CWinCache.php[106]
If you want to see only usage of one specific extension, use --extension=
option:
phpca --extension=apc ..\yii-1.1.16.bca042\framework\caching Scanning ..\yii-1.1.16.bca042\framework\caching ... [apc] Function "apc_fetch" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[46] [apc] Function "apc_fetch" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[56] [apc] Function "apc_store" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[70] [apc] Function "apc_add" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[84] [apc] Function "apc_delete" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[95] [apc] Function "apc_clear_cache" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[107] [apc] Function "apc_clear_cache" used in file ..\yii-1.1.16.bca042\framework\caching/CApcCache.php[109]
Summary report in this case will not be added at the end.
Help
Full list of available options:
phpca -h PhpCodeAnalyzer Usage: phpca [-v] [-q] [--output=
] [--no-report] [--no-progress] [--since-version=] FILES... phpca [-v] [-q] [--output= ] --extension= FILES... phpca -h
Options:
-h --help Show this text
-v --verbose Show more debug text
-q --quiet Don't print any messages
--output=
Installation
Phar
- Just download a phar from releases page and make executable
- a. Local installation: use it from current folder:
b. Global installation: move it in to one of folders listed in your$PATH
and run from any folder:
sudo mv phpca.phar /usr/local/bin/phpca
phpca -h
Composer
Another way to install phpca is via composer.
- Install composer:
curl -sS https://getcomposer.org/installer | php
- Install phpcf in global composer dir:
./composer.phar global require wapmorgan/php-code-analyzer dev-master
- Run from any folder: