.scrutinizer.yml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. # .scrutinizer.yml
  2. #build:
  3. # - php-scrutinizer-run
  4. build:
  5. nodes:
  6. analysis:
  7. tests:
  8. override:
  9. - command: php-scrutinizer-run
  10. idle_timeout: 8000
  11. imports:
  12. - javascript
  13. - php
  14. filter:
  15. excluded_paths:
  16. - build/*
  17. - dev/*
  18. - doc/*
  19. - documents/*
  20. - node_modules/*
  21. - test/*
  22. dependency_paths:
  23. - htdocs/includes/*
  24. paths:
  25. - htdocs/*
  26. - scripts/*
  27. tools:
  28. # php_analyzer. Doc on https://scrutinizer-ci.com/docs/tools/php/php-analyzer/
  29. php_analyzer:
  30. enabled: true
  31. extensions:
  32. - php
  33. dependency_paths:
  34. - htdocs/includes/
  35. filter:
  36. excluded_paths:
  37. - build/*
  38. - dev/*
  39. - doc/*
  40. - documents/*
  41. - htdocs/includes/*
  42. - htdocs/core/class/lessc.class.php
  43. - node_modules/*
  44. - test/*
  45. paths:
  46. - htdocs/
  47. - scripts/
  48. config:
  49. parameter_reference_check:
  50. enabled: true
  51. checkstyle:
  52. enabled: false
  53. no_trailing_whitespace: true
  54. naming:
  55. enabled: true
  56. local_variable: ^[a-z][a-zA-Z0-9]*$
  57. abstract_class_name: ^Abstract|Factory$
  58. utility_class_name: Utils?$
  59. constant_name: ^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$
  60. property_name: ^[a-z][a-zA-Z0-9]*$
  61. method_name: ^(?:[a-z]|__)[a-zA-Z0-9]*$
  62. parameter_name: ^[a-z][a-zA-Z0-9]*$
  63. interface_name: ^[A-Z][a-zA-Z0-9]*Interface$
  64. type_name: ^[A-Z][a-zA-Z0-9]*$
  65. exception_name: ^[A-Z][a-zA-Z0-9]*Exception$
  66. isser_method_name: ^(?:is|has|should|may|supports)
  67. unreachable_code:
  68. enabled: true
  69. check_access_control:
  70. enabled: true
  71. typo_checks:
  72. enabled: true
  73. check_variables:
  74. enabled: true
  75. check_calls:
  76. enabled: true
  77. too_many_arguments: true
  78. missing_argument: true
  79. argument_type_checks: lenient # Allowed Values: "disabled", "lenient", "strict"
  80. suspicious_code:
  81. enabled: true
  82. overriding_parameter: false
  83. overriding_closure_use: true
  84. parameter_closure_use_conflict: true
  85. parameter_multiple_times: true
  86. non_existent_class_in_instanceof_check: true
  87. non_existent_class_in_catch_clause: true
  88. assignment_of_null_return: true
  89. non_commented_switch_fallthrough: true
  90. non_commented_empty_catch_block: true
  91. overriding_private_members: true
  92. use_statement_alias_conflict: true
  93. precedence_in_condition_assignment: true
  94. dead_assignments:
  95. enabled: true
  96. verify_php_doc_comments:
  97. enabled: false
  98. parameters: true
  99. return: true
  100. suggest_more_specific_types: true
  101. ask_for_return_if_not_inferrable: true
  102. ask_for_param_type_annotation: true
  103. loops_must_use_braces:
  104. enabled: true
  105. check_usage_context:
  106. enabled: true
  107. simplify_boolean_return:
  108. enabled: false
  109. phpunit_checks:
  110. enabled: false
  111. reflection_checks:
  112. enabled: true
  113. # Checks Common Precedence Mistakes
  114. precedence_checks:
  115. enabled: true
  116. assignment_in_condition: true
  117. comparison_of_bit_result: true
  118. basic_semantic_checks:
  119. enabled: true
  120. # Disabled unused code. In most cases, we want to keep it.
  121. unused_code:
  122. enabled: false
  123. deprecation_checks:
  124. enabled: true
  125. useless_function_calls:
  126. enabled: true
  127. metrics_lack_of_cohesion_methods:
  128. enabled: true
  129. metrics_coupling:
  130. enabled: true
  131. stable_code:
  132. namespace_prefixes: []
  133. classes: []
  134. doctrine_parameter_binding:
  135. enabled: false
  136. doctrine_entity_manager_injection:
  137. enabled: false
  138. symfony_request_injection:
  139. enabled: false
  140. doc_comment_fixes:
  141. enabled: true
  142. reflection_fixes:
  143. enabled: false
  144. use_statement_fixes:
  145. enabled: true
  146. remove_unused: true
  147. # Whether you would like multiple imports in one USE statement to be preserved, e.g. ``use A, B;``.
  148. preserve_multiple: false
  149. # Whether you would like to preserve blank lines between use statements.
  150. preserve_blanklines: false
  151. order_alphabetically: false
  152. # To use specific config for a specific path, use path_configs: (see example on page https://scrutinizer-ci.com/docs/configuration/tool_config_structure)
  153. # php_depend
  154. php_pdepend:
  155. enabled: false
  156. configuration_file: null
  157. suffixes:
  158. - php
  159. excluded_dirs: { }
  160. filter:
  161. excluded_paths:
  162. - 'build/*'
  163. - 'dev/*'
  164. - 'doc/*'
  165. - 'test/*'
  166. - 'htdocs/includes/*'
  167. paths: { }
  168. # change tracking
  169. php_changetracking:
  170. enabled: false
  171. bug_patterns:
  172. - '\bfix(?:es|ed)?\b'
  173. feature_patterns:
  174. - '\badd(?:s|ed)?\b'
  175. - '\bimplement(?:s|ed)?\b'
  176. filter:
  177. excluded_paths:
  178. - 'build/*'
  179. - 'dev/*'
  180. - 'doc/*'
  181. - 'documents/*'
  182. - 'htdocs/includes/*'
  183. - 'node_modules/*'
  184. - 'test/*'
  185. paths: { }
  186. # Similar code detection
  187. php_sim:
  188. enabled: false
  189. min_mass: 30
  190. filter:
  191. excluded_paths:
  192. - 'build/*'
  193. - 'dev/*'
  194. - 'doc/*'
  195. - 'documents/*'
  196. - 'htdocs/includes/*'
  197. - 'node_modules/*'
  198. - 'test/*'
  199. paths: { }
  200. # Coding-Style / Bug Detection
  201. js_hint:
  202. enabled: false
  203. use_native_config: true
  204. extensions:
  205. - js
  206. filter:
  207. excluded_paths:
  208. - 'build/*'
  209. - 'dev/*'
  210. - 'doc/*'
  211. - 'documents/*'
  212. - 'htdocs/includes/*'
  213. - 'node_modules/*'
  214. - 'test/*'
  215. paths: { }
  216. config: { }
  217. path_configs: { }
  218. before_commands: { }
  219. after_commands: { }
  220. artifacts: { }
  221. build_failure_conditions: { }