Skip to content

Instantly share code, notes, and snippets.

@Flyingmana
Created July 2, 2020 09:06
Show Gist options
  • Save Flyingmana/484003b1887ae71ce6a96146cc4a73fa to your computer and use it in GitHub Desktop.
Save Flyingmana/484003b1887ae71ce6a96146cc4a73fa to your computer and use it in GitHub Desktop.
OpenMage Phan config
<?php
// local test: php phan.phar --allow-polyfill-parser --long-progress-bar > .phan/output.log
// for travis arguments: --disable-cache --long-progress-bar --allow-polyfill-parser
/**
* This configuration will be read and overlaid on top of the
* default configuration. Command-line arguments will be applied
* after this file is read.
*/
return [
// Supported values: `'5.6'`, `'7.0'`, `'7.1'`, `'7.2'`, `'7.3'`,
// `'7.4'`, `null`.
// If this is set to `null`,
// then Phan assumes the PHP version which is closest to the minor version
// of the php executable used to execute Phan.
//
// Note that the **only** effect of choosing `'5.6'` is to infer
// that functions removed in php 7.0 exist.
// (See `backward_compatibility_checks` for additional options)
// TODO: Set this.
'target_php_version' => null,
// A list of directories that should be parsed for class and
// method information. After excluding the directories
// defined in exclude_analysis_directory_list, the remaining
// files will be statically analyzed for errors.
//
// Thus, both first-party and third-party code being used by
// your application should be included in this list.
'directory_list' => [
'app/code',
'lib',
'shell',
'vendor/symfony/console',
],
// A list of files to include in analysis
'file_list' => [
'app/Mage.php',
],
// A regex used to match every file name that you want to
// exclude from parsing. Actual value will exclude every
// "test", "tests", "Test" and "Tests" folders found in
// "vendor/" directory.
'exclude_file_regex' => '@^vendor/.*/(tests?|Tests?)/@',
// A directory list that defines files that will be excluded
// from static analysis, but whose class and method
// information should be included.
//
// Generally, you'll want to include the directories for
// third-party code (such as "vendor/") in this list.
//
// n.b.: If you'd like to parse but not analyze 3rd
// party code, directories containing that code
// should be added to both the `directory_list`
// and `exclude_analysis_directory_list` arrays.
'exclude_analysis_directory_list' => [
'vendor/',
'lib/PEAR/',
'lib/Zend/',
'lib/phpseclib/',
'app/code/core/Mage/XmlConnect/',
],
'long_progress_bar' => true,
// The number of processes to fork off during the analysis
// phase.
'processes' => 6,
// Allow null to be cast as any type and for any
// type to be cast to null.
"null_casts_as_any_type" => true,
// Backwards Compatibility Checking
'backward_compatibility_checks' => false,
// Only emit critical issues to start with
// (0 is low severity, 5 is normal severity, 10 is critical)
"minimum_severity" => 5,
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment