.scrutinizer.yml 8.0 KB

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