periplus-map 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. periplus/__init__.py +70 -0
  2. periplus/checkmap.py +80 -0
  3. periplus/cli.py +658 -0
  4. periplus/contract/schema/map.schema.json +138 -0
  5. periplus/contract/schema/navigation.schema.json +200 -0
  6. periplus/contract/schema/pack-file.schema.json +1405 -0
  7. periplus/contract/schema/pack-manifest.schema.json +245 -0
  8. periplus/contract/schema/project-settings.schema.json +85 -0
  9. periplus/contract/spec/engine.md +151 -0
  10. periplus/contract/spec/rules.md +352 -0
  11. periplus/detect.py +228 -0
  12. periplus/engine/__init__.py +5 -0
  13. periplus/engine/check.py +481 -0
  14. periplus/engine/emit.py +368 -0
  15. periplus/engine/packload.py +2321 -0
  16. periplus/engine/pattern.py +27 -0
  17. periplus/engine/rules.py +1946 -0
  18. periplus/engine/select.py +491 -0
  19. periplus/engine/source.py +172 -0
  20. periplus/engine/tree.py +424 -0
  21. periplus/errors.py +332 -0
  22. periplus/init.py +358 -0
  23. periplus/layout.py +28 -0
  24. periplus/manifest.py +498 -0
  25. periplus/map.py +364 -0
  26. periplus/navigate/__init__.py +1 -0
  27. periplus/navigate/find.py +143 -0
  28. periplus/navigate/ids.py +30 -0
  29. periplus/navigate/listing.py +42 -0
  30. periplus/navigate/mapfile.py +189 -0
  31. periplus/navigate/path.py +175 -0
  32. periplus/navigate/show.py +175 -0
  33. periplus/navigate/types.py +83 -0
  34. periplus/navigate/walk.py +138 -0
  35. periplus/packs/advancedqueue_basic@0.0.1/pack.yaml +14 -0
  36. periplus/packs/advancedqueue_basic@0.0.1/queue_job_type/queue_job_type.yaml +9 -0
  37. periplus/packs/advancedqueue_basic@0.0.1/queue_job_type/queue_job_type_annotation.yaml +43 -0
  38. periplus/packs/advancedqueue_basic@0.0.1/queue_job_type/queue_job_type_attribute.yaml +43 -0
  39. periplus/packs/ai_basic@0.0.1/ai_agent/ai_agent.yaml +8 -0
  40. periplus/packs/ai_basic@0.0.1/ai_agent/ai_agent_attribute.yaml +43 -0
  41. periplus/packs/ai_basic@0.0.1/ai_function_call/ai_function_call.yaml +8 -0
  42. periplus/packs/ai_basic@0.0.1/ai_function_call/ai_function_call_attribute.yaml +43 -0
  43. periplus/packs/ai_basic@0.0.1/pack.yaml +15 -0
  44. periplus/packs/config_pages_basic@0.0.1/bundle/config_pages_bundle_config.yaml +54 -0
  45. periplus/packs/config_pages_basic@0.0.1/pack.yaml +11 -0
  46. periplus/packs/crop_basic@0.0.1/bundle/crop_bundle_config.yaml +54 -0
  47. periplus/packs/crop_basic@0.0.1/pack.yaml +11 -0
  48. periplus/packs/drupal@0.1.0/block/block_placement.yaml +25 -0
  49. periplus/packs/drupal@0.1.0/block/block_placement_code.yaml +58 -0
  50. periplus/packs/drupal@0.1.0/block/block_placement_config.yaml +53 -0
  51. periplus/packs/drupal@0.1.0/block/block_plugin.yaml +52 -0
  52. periplus/packs/drupal@0.1.0/block/block_plugin_altered.yaml +61 -0
  53. periplus/packs/drupal@0.1.0/block/block_plugin_annotation.yaml +69 -0
  54. periplus/packs/drupal@0.1.0/block/block_plugin_attribute.yaml +56 -0
  55. periplus/packs/drupal@0.1.0/block/block_plugin_content.yaml +46 -0
  56. periplus/packs/drupal@0.1.0/block/block_plugin_derived.yaml +110 -0
  57. periplus/packs/drupal@0.1.0/block/block_plugin_deriver.yaml +30 -0
  58. periplus/packs/drupal@0.1.0/block/block_type.yaml +14 -0
  59. periplus/packs/drupal@0.1.0/block/block_type_code.yaml +43 -0
  60. periplus/packs/drupal@0.1.0/block/block_type_config.yaml +45 -0
  61. periplus/packs/drupal@0.1.0/cache/cache.yaml +18 -0
  62. periplus/packs/drupal@0.1.0/cache/cache_backend.yaml +31 -0
  63. periplus/packs/drupal@0.1.0/component/sdc.yaml +19 -0
  64. periplus/packs/drupal@0.1.0/component/sdc_definition.yaml +25 -0
  65. periplus/packs/drupal@0.1.0/component/sdc_use.yaml +25 -0
  66. periplus/packs/drupal@0.1.0/config/config_object.yaml +65 -0
  67. periplus/packs/drupal@0.1.0/display/display.yaml +32 -0
  68. periplus/packs/drupal@0.1.0/display/display_code.yaml +53 -0
  69. periplus/packs/drupal@0.1.0/display/display_config.yaml +95 -0
  70. periplus/packs/drupal@0.1.0/entity/entity.yaml +33 -0
  71. periplus/packs/drupal@0.1.0/entity/entity_class.yaml +60 -0
  72. periplus/packs/drupal@0.1.0/entity/entity_save.yaml +27 -0
  73. periplus/packs/drupal@0.1.0/entity/entity_type_annotation.yaml +85 -0
  74. periplus/packs/drupal@0.1.0/entity/entity_type_attribute.yaml +76 -0
  75. periplus/packs/drupal@0.1.0/field/field_instance_code.yaml +40 -0
  76. periplus/packs/drupal@0.1.0/field/field_instance_config.yaml +58 -0
  77. periplus/packs/drupal@0.1.0/field/field_storage.yaml +37 -0
  78. periplus/packs/drupal@0.1.0/field/field_storage_code.yaml +39 -0
  79. periplus/packs/drupal@0.1.0/field/field_storage_config.yaml +24 -0
  80. periplus/packs/drupal@0.1.0/form/form.yaml +48 -0
  81. periplus/packs/drupal@0.1.0/form/form_class.yaml +50 -0
  82. periplus/packs/drupal@0.1.0/form/form_id.yaml +48 -0
  83. periplus/packs/drupal@0.1.0/form/form_methods.yaml +39 -0
  84. periplus/packs/drupal@0.1.0/hook/hook.yaml +8 -0
  85. periplus/packs/drupal@0.1.0/hook/hook_attribute.yaml +28 -0
  86. periplus/packs/drupal@0.1.0/module/module.yaml +8 -0
  87. periplus/packs/drupal@0.1.0/module/module_info.yaml +50 -0
  88. periplus/packs/drupal@0.1.0/pack.yaml +184 -0
  89. periplus/packs/drupal@0.1.0/plugin/plugin.yaml +17 -0
  90. periplus/packs/drupal@0.1.0/plugin/plugin_annotation.yaml +120 -0
  91. periplus/packs/drupal@0.1.0/recommendations/recommendations.yaml +14 -0
  92. periplus/packs/drupal@0.1.0/service/service.yaml +19 -0
  93. periplus/packs/drupal@0.1.0/service/service_autowire.yaml +28 -0
  94. periplus/packs/drupal@0.1.0/service/service_definition.yaml +24 -0
  95. periplus/packs/drupal@0.1.0/service/service_use.yaml +43 -0
  96. periplus/packs/drupal_basic@0.3.0/action/action.yaml +9 -0
  97. periplus/packs/drupal_basic@0.3.0/action/action_annotation.yaml +43 -0
  98. periplus/packs/drupal_basic@0.3.0/action/action_attribute.yaml +43 -0
  99. periplus/packs/drupal_basic@0.3.0/block/block_placement.yaml +16 -0
  100. periplus/packs/drupal_basic@0.3.0/block/block_placement_config.yaml +51 -0
  101. periplus/packs/drupal_basic@0.3.0/block_plugin/block_plugin.yaml +14 -0
  102. periplus/packs/drupal_basic@0.3.0/block_plugin/block_plugin_annotation.yaml +47 -0
  103. periplus/packs/drupal_basic@0.3.0/block_plugin/block_plugin_attribute.yaml +43 -0
  104. periplus/packs/drupal_basic@0.3.0/block_type/block_type.yaml +8 -0
  105. periplus/packs/drupal_basic@0.3.0/block_type/block_type_config.yaml +54 -0
  106. periplus/packs/drupal_basic@0.3.0/boundary/boundary_types.yaml +19 -0
  107. periplus/packs/drupal_basic@0.3.0/bundle/bundle.yaml +20 -0
  108. periplus/packs/drupal_basic@0.3.0/bundle/bundle_config.yaml +393 -0
  109. periplus/packs/drupal_basic@0.3.0/call/call.yaml +349 -0
  110. periplus/packs/drupal_basic@0.3.0/component/component.yaml +30 -0
  111. periplus/packs/drupal_basic@0.3.0/config/config_object.yaml +119 -0
  112. periplus/packs/drupal_basic@0.3.0/constraint/constraint.yaml +8 -0
  113. periplus/packs/drupal_basic@0.3.0/constraint/constraint_annotation.yaml +43 -0
  114. periplus/packs/drupal_basic@0.3.0/constraint/constraint_attribute.yaml +43 -0
  115. periplus/packs/drupal_basic@0.3.0/display/display.yaml +30 -0
  116. periplus/packs/drupal_basic@0.3.0/display/display_config.yaml +203 -0
  117. periplus/packs/drupal_basic@0.3.0/display/display_mode_config.yaml +60 -0
  118. periplus/packs/drupal_basic@0.3.0/entity_type/config_entity_type_annotation.yaml +46 -0
  119. periplus/packs/drupal_basic@0.3.0/entity_type/config_entity_type_attribute.yaml +43 -0
  120. periplus/packs/drupal_basic@0.3.0/entity_type/content_entity_type_annotation.yaml +46 -0
  121. periplus/packs/drupal_basic@0.3.0/entity_type/content_entity_type_attribute.yaml +43 -0
  122. periplus/packs/drupal_basic@0.3.0/entity_type/entity_type.yaml +16 -0
  123. periplus/packs/drupal_basic@0.3.0/field/field_instance_config.yaml +116 -0
  124. periplus/packs/drupal_basic@0.3.0/field/field_storage.yaml +21 -0
  125. periplus/packs/drupal_basic@0.3.0/field/field_storage_config.yaml +45 -0
  126. periplus/packs/drupal_basic@0.3.0/field_formatter/field_formatter.yaml +8 -0
  127. periplus/packs/drupal_basic@0.3.0/field_formatter/field_formatter_annotation.yaml +46 -0
  128. periplus/packs/drupal_basic@0.3.0/field_formatter/field_formatter_attribute.yaml +43 -0
  129. periplus/packs/drupal_basic@0.3.0/field_type/field_type_annotation.yaml +46 -0
  130. periplus/packs/drupal_basic@0.3.0/field_type/field_type_attribute.yaml +50 -0
  131. periplus/packs/drupal_basic@0.3.0/field_widget/field_widget_annotation.yaml +46 -0
  132. periplus/packs/drupal_basic@0.3.0/field_widget/field_widget_attribute.yaml +50 -0
  133. periplus/packs/drupal_basic@0.3.0/form/form_id.yaml +80 -0
  134. periplus/packs/drupal_basic@0.3.0/hook/hook.yaml +100 -0
  135. periplus/packs/drupal_basic@0.3.0/hook/hook_attribute.yaml +64 -0
  136. periplus/packs/drupal_basic@0.3.0/hook/hook_theme_include.yaml +34 -0
  137. periplus/packs/drupal_basic@0.3.0/library/library.yaml +12 -0
  138. periplus/packs/drupal_basic@0.3.0/library/library_definition.yaml +58 -0
  139. periplus/packs/drupal_basic@0.3.0/local_action/local_action.yaml +12 -0
  140. periplus/packs/drupal_basic@0.3.0/local_action/local_action_definition.yaml +49 -0
  141. periplus/packs/drupal_basic@0.3.0/mail/mail.yaml +8 -0
  142. periplus/packs/drupal_basic@0.3.0/mail/mail_attribute.yaml +43 -0
  143. periplus/packs/drupal_basic@0.3.0/media_source/media_source.yaml +8 -0
  144. periplus/packs/drupal_basic@0.3.0/media_source/media_source_annotation.yaml +43 -0
  145. periplus/packs/drupal_basic@0.3.0/media_source/media_source_attribute.yaml +79 -0
  146. periplus/packs/drupal_basic@0.3.0/menu_link/menu_link.yaml +18 -0
  147. periplus/packs/drupal_basic@0.3.0/menu_link/menu_link_definition.yaml +48 -0
  148. periplus/packs/drupal_basic@0.3.0/module/module.yaml +7 -0
  149. periplus/packs/drupal_basic@0.3.0/module/module_info.yaml +58 -0
  150. periplus/packs/drupal_basic@0.3.0/pack.yaml +528 -0
  151. periplus/packs/drupal_basic@0.3.0/permission/permission.yaml +7 -0
  152. periplus/packs/drupal_basic@0.3.0/permission/permission_definition.yaml +27 -0
  153. periplus/packs/drupal_basic@0.3.0/queue_worker/queue_worker.yaml +9 -0
  154. periplus/packs/drupal_basic@0.3.0/queue_worker/queue_worker_annotation.yaml +43 -0
  155. periplus/packs/drupal_basic@0.3.0/queue_worker/queue_worker_attribute.yaml +43 -0
  156. periplus/packs/drupal_basic@0.3.0/rest_resource/rest_resource.yaml +8 -0
  157. periplus/packs/drupal_basic@0.3.0/rest_resource/rest_resource_annotation.yaml +43 -0
  158. periplus/packs/drupal_basic@0.3.0/rest_resource/rest_resource_attribute.yaml +43 -0
  159. periplus/packs/drupal_basic@0.3.0/role/role.yaml +14 -0
  160. periplus/packs/drupal_basic@0.3.0/role/role_config.yaml +44 -0
  161. periplus/packs/drupal_basic@0.3.0/route/route.yaml +42 -0
  162. periplus/packs/drupal_basic@0.3.0/route/route_definition.yaml +113 -0
  163. periplus/packs/drupal_basic@0.3.0/route/route_options.yaml +55 -0
  164. periplus/packs/drupal_basic@0.3.0/route/route_requirements.yaml +108 -0
  165. periplus/packs/drupal_basic@0.3.0/service/service.yaml +56 -0
  166. periplus/packs/drupal_basic@0.3.0/service/service_definition.yaml +181 -0
  167. periplus/packs/drupal_basic@0.3.0/template/template.yaml +86 -0
  168. periplus/packs/drupal_basic@0.3.0/template/template_route_link.yaml +30 -0
  169. periplus/packs/drupal_basic@0.3.0/theme/theme.yaml +15 -0
  170. periplus/packs/drupal_basic@0.3.0/theme/theme_info.yaml +61 -0
  171. periplus/packs/drupal_basic@0.3.0/theme_hook/template_suggestion.yaml +29 -0
  172. periplus/packs/drupal_basic@0.3.0/theme_hook/theme_hook.yaml +87 -0
  173. periplus/packs/drupal_basic@0.3.0/theme_hook/theme_hook_render.yaml +20 -0
  174. periplus/packs/drupal_basic@0.3.0/url/url.yaml +88 -0
  175. periplus/packs/drupal_basic@0.3.0/views_plugin/views_field_attribute.yaml +80 -0
  176. periplus/packs/drupal_basic@0.3.0/views_plugin/views_filter_attribute.yaml +80 -0
  177. periplus/packs/drupal_basic@0.3.0/views_plugin/views_plugin.yaml +15 -0
  178. periplus/packs/drupal_basic@0.3.0/views_plugin/views_style_attribute.yaml +80 -0
  179. periplus/packs/drupal_js_basic@0.0.1/attachment/attachment.yaml +12 -0
  180. periplus/packs/drupal_js_basic@0.0.1/attachment/attachment_in_php.yaml +15 -0
  181. periplus/packs/drupal_js_basic@0.0.1/attachment/attachment_in_php_array.yaml +52 -0
  182. periplus/packs/drupal_js_basic@0.0.1/attachment/attachment_in_twig.yaml +26 -0
  183. periplus/packs/drupal_js_basic@0.0.1/attachment/php_function_holder.yaml +13 -0
  184. periplus/packs/drupal_js_basic@0.0.1/behavior/behavior.yaml +198 -0
  185. periplus/packs/drupal_js_basic@0.0.1/pack.yaml +153 -0
  186. periplus/packs/drupal_js_basic@0.0.1/setting/setting.yaml +13 -0
  187. periplus/packs/drupal_js_basic@0.0.1/setting/setting_in_js.yaml +15 -0
  188. periplus/packs/drupal_js_basic@0.0.1/setting/setting_in_php.yaml +92 -0
  189. periplus/packs/drush_basic@0.0.1/command/command.yaml +15 -0
  190. periplus/packs/drush_basic@0.0.1/command/command_annotation.yaml +60 -0
  191. periplus/packs/drush_basic@0.0.1/command/command_attribute.yaml +88 -0
  192. periplus/packs/drush_basic@0.0.1/pack.yaml +29 -0
  193. periplus/packs/eck_basic@0.0.1/bundle/eck_bundle_config.yaml +56 -0
  194. periplus/packs/eck_basic@0.0.1/entity_type/eck_entity_type_config.yaml +26 -0
  195. periplus/packs/eck_basic@0.0.1/pack.yaml +28 -0
  196. periplus/packs/go@0.0.2/interfaces/satisfies.yaml +47 -0
  197. periplus/packs/go@0.0.2/pack.yaml +51 -0
  198. periplus/packs/go@0.0.2/types/find_declarations.yaml +137 -0
  199. periplus/packs/go@0.0.2/types/node_types.yaml +36 -0
  200. periplus/packs/go_basic@0.0.3/pack.yaml +104 -0
  201. periplus/packs/go_basic@0.0.3/rules/calls.yaml +25 -0
  202. periplus/packs/go_basic@0.0.3/rules/declarations.yaml +40 -0
  203. periplus/packs/go_basic@0.0.3/rules/imports.yaml +16 -0
  204. periplus/packs/go_basic@0.0.3/types/node_types.yaml +15 -0
  205. periplus/packs/js_basic@0.0.1/function/function.yaml +68 -0
  206. periplus/packs/js_basic@0.0.1/pack.yaml +50 -0
  207. periplus/packs/laravel_basic@0.0.5/pack.yaml +313 -0
  208. periplus/packs/laravel_basic@0.0.5/rules/classes.yaml +42 -0
  209. periplus/packs/laravel_basic@0.0.5/rules/config.yaml +229 -0
  210. periplus/packs/laravel_basic@0.0.5/rules/routes.yaml +210 -0
  211. periplus/packs/laravel_basic@0.0.5/rules/types.yaml +50 -0
  212. periplus/packs/laravel_basic@0.0.5/rules/views.yaml +100 -0
  213. periplus/packs/paragraphs_basic@0.0.1/bundle/paragraph_bundle_config.yaml +54 -0
  214. periplus/packs/paragraphs_basic@0.0.1/pack.yaml +12 -0
  215. periplus/packs/php@0.1.0/edges/edge_kinds.yaml +64 -0
  216. periplus/packs/php@0.1.0/edges/find_calls.yaml +34 -0
  217. periplus/packs/php@0.1.0/edges/find_imports.yaml +18 -0
  218. periplus/packs/php@0.1.0/edges/find_member_access.yaml +22 -0
  219. periplus/packs/php@0.1.0/edges/find_structure.yaml +38 -0
  220. periplus/packs/php@0.1.0/embedded/embedded_regions.yaml +19 -0
  221. periplus/packs/php@0.1.0/imports/imports.yaml +20 -0
  222. periplus/packs/php@0.1.0/pack.yaml +117 -0
  223. periplus/packs/php@0.1.0/resolution/excluded_tokens.yaml +23 -0
  224. periplus/packs/php@0.1.0/resolution/resolution.yaml +35 -0
  225. periplus/packs/php@0.1.0/types/find_declarations.yaml +102 -0
  226. periplus/packs/php@0.1.0/types/node_types.yaml +55 -0
  227. periplus/packs/php_basic@0.2.0/edges/edge_kinds.yaml +48 -0
  228. periplus/packs/php_basic@0.2.0/edges/find_structure.yaml +750 -0
  229. periplus/packs/php_basic@0.2.0/imports/imports.yaml +19 -0
  230. periplus/packs/php_basic@0.2.0/pack.yaml +94 -0
  231. periplus/packs/php_basic@0.2.0/types/find_declarations.yaml +267 -0
  232. periplus/packs/php_basic@0.2.0/types/node_types.yaml +55 -0
  233. periplus/packs/profile_basic@0.0.1/bundle/profile_bundle_config.yaml +54 -0
  234. periplus/packs/profile_basic@0.0.1/pack.yaml +12 -0
  235. periplus/packs/salesforce_basic@0.0.1/event/salesforce_event.yaml +36 -0
  236. periplus/packs/salesforce_basic@0.0.1/pack.yaml +31 -0
  237. periplus/packs/salesforce_basic@0.0.1/salesforce_mapping/salesforce_mapping.yaml +19 -0
  238. periplus/packs/salesforce_basic@0.0.1/salesforce_mapping/salesforce_mapping_config.yaml +83 -0
  239. periplus/packs/salesforce_basic@0.0.1/salesforce_mapping_field/salesforce_mapping_field.yaml +8 -0
  240. periplus/packs/salesforce_basic@0.0.1/salesforce_mapping_field/salesforce_mapping_field_annotation.yaml +43 -0
  241. periplus/packs/twig@0.0.1/pack.yaml +26 -0
  242. periplus/packs/twig@0.0.1/types/template.yaml +57 -0
  243. periplus/packs/twig_basic@0.1.0/pack.yaml +11 -0
  244. periplus/packs/twig_tweak_basic@0.0.1/pack.yaml +27 -0
  245. periplus/packs/twig_tweak_basic@0.0.1/rules/block.yaml +20 -0
  246. periplus/packs/twig_tweak_basic@0.0.1/rules/entity.yaml +35 -0
  247. periplus/packs/twig_tweak_basic@0.0.1/rules/field.yaml +21 -0
  248. periplus/packs/twig_tweak_basic@0.0.1/rules/menu.yaml +21 -0
  249. periplus/packs/webform_basic@0.0.1/bundle/webform_submission_bundle_config.yaml +54 -0
  250. periplus/packs/webform_basic@0.0.1/pack.yaml +20 -0
  251. periplus/packs/webform_basic@0.0.1/webform_handler/webform_handler.yaml +8 -0
  252. periplus/packs/webform_basic@0.0.1/webform_handler/webform_handler_annotation.yaml +43 -0
  253. periplus/packs/yaml@0.0.1/pack.yaml +72 -0
  254. periplus/packs/yaml@0.0.1/types/find_mapping_entry.yaml +21 -0
  255. periplus/packs/yaml@0.0.1/types/yaml_types.yaml +44 -0
  256. periplus/packs/yaml_basic@0.1.0/pack.yaml +10 -0
  257. periplus/packs.py +447 -0
  258. periplus/preflight.py +102 -0
  259. periplus/py.typed +0 -0
  260. periplus/report.py +596 -0
  261. periplus/resolution.py +355 -0
  262. periplus/settings.py +617 -0
  263. periplus/settings.stub.yml +99 -0
  264. periplus/spec.py +774 -0
  265. periplus/update.py +197 -0
  266. periplus/validate.py +655 -0
  267. periplus_map-0.2.1.dist-info/METADATA +566 -0
  268. periplus_map-0.2.1.dist-info/RECORD +272 -0
  269. periplus_map-0.2.1.dist-info/WHEEL +4 -0
  270. periplus_map-0.2.1.dist-info/entry_points.txt +2 -0
  271. periplus_map-0.2.1.dist-info/licenses/LICENSE +202 -0
  272. periplus_map-0.2.1.dist-info/licenses/NOTICE +2 -0
@@ -0,0 +1,750 @@
1
+ $schema: "https://periplus.dev/schema/0/pack-file.schema.json"
2
+
3
+ # A property to the type its class declares for it, which the rules below find; edge_kinds.yaml
4
+ # holds the pack's other edge kinds.
5
+ edge_kinds:
6
+
7
+ - kind: property_typed_as
8
+ from: php.property
9
+ to: php.property_type
10
+
11
+ # The edges written at a declaration. Each of the first three makes one edge per name written in
12
+ # the clause, at that name's line, to the full name the file's imports and namespace give it.
13
+ rules:
14
+
15
+ - rule: inherits_from_base_clause
16
+ reads: file
17
+ in: [source]
18
+ match: {declaration: base_clause, filetype: php}
19
+ emits: [{edge: {kind: inherits, from: enclosing_class, to: {from: qualified_name}}}]
20
+ confidence: declared
21
+
22
+ - rule: implements_from_interface_clause
23
+ reads: file
24
+ in: [source]
25
+ match: {declaration: class_interface_clause, filetype: php}
26
+ emits: [{edge: {kind: implements, from: enclosing_class, to: {from: qualified_name}}}]
27
+ confidence: declared
28
+
29
+ - rule: mixes_in_from_use_declaration
30
+ reads: file
31
+ in: [source]
32
+ match: {declaration: use_declaration, filetype: php}
33
+ emits: [{edge: {kind: mixes_in, from: enclosing_class, to: {from: qualified_name}}}]
34
+ confidence: declared
35
+
36
+ # The twin of find_method: the same match, id and folders, so this_node is the method's node.
37
+ - rule: contains_method
38
+ reads: file
39
+ in: [source]
40
+ match: {declaration: method_declaration, name_child: name, filetype: php}
41
+ id:
42
+ from: [enclosing_type, declared_name]
43
+ template: "{enclosing_type}::{declared_name}"
44
+ emits: [{edge: {kind: contains, from: enclosing_class, to: this_node}}]
45
+ confidence: declared
46
+
47
+ # A call, from the function or method around it to the full name its written callee resolves to,
48
+ # at the call's line; unresolved when the project holds no such function or method. A plain call
49
+ # names a function. A static call, Class::method(), resolves the class through the imports and
50
+ # joins the method with ::, which is how find_method builds a method's id. A call on self, static
51
+ # or parent, a call on a variable and a call outside any function or method make nothing and go
52
+ # under skipped. A method call on an object, member_call_expression, is stated only by the map
53
+ # rules below, for a call on a property of the enclosing object: the class of $x in $x->m() is
54
+ # known only when the code runs. A function imported by use function x as y is not bound, because the imports bind type names only, so y() resolves under the namespace as y;
55
+ # and PHP's fallback of an unqualified call to a global function is not read.
56
+ # skip_names lists PHP's language constructs, as written: grammar 0.24.1 parses isset(, empty(,
57
+ # die( and eval( as function calls, and the rest are listed in case a release does too. After them
58
+ # come the functions PHP reports as internal, so strlen() makes nothing; pack.yaml names the run
59
+ # the list came from and its limits.
60
+ - rule: calls_function
61
+ reads: file
62
+ in: [source]
63
+ match:
64
+ reference: function_call_expression
65
+ name_child: function
66
+ filetype: php
67
+ skip_names: [isset, empty, unset, list, array, echo, print, exit, die, eval, include, require,
68
+ include_once, require_once, _, abs, acos, acosh, addcslashes, addslashes, array_all,
69
+ array_any, array_change_key_case, array_chunk, array_column, array_combine,
70
+ array_count_values, array_diff, array_diff_assoc, array_diff_key, array_diff_uassoc,
71
+ array_diff_ukey, array_fill, array_fill_keys, array_filter, array_find, array_find_key,
72
+ array_first, array_flip, array_intersect, array_intersect_assoc, array_intersect_key,
73
+ array_intersect_uassoc, array_intersect_ukey, array_is_list, array_key_exists,
74
+ array_key_first, array_key_last, array_keys, array_last, array_map, array_merge,
75
+ array_merge_recursive, array_multisort, array_pad, array_pop, array_product, array_push,
76
+ array_rand, array_reduce, array_replace, array_replace_recursive, array_reverse, array_search,
77
+ array_shift, array_slice, array_splice, array_sum, array_udiff, array_udiff_assoc,
78
+ array_udiff_uassoc, array_uintersect, array_uintersect_assoc, array_uintersect_uassoc,
79
+ array_unique, array_unshift, array_values, array_walk, array_walk_recursive, arsort, asin,
80
+ asinh, asort, assert, assert_options, atan, atan2, atanh, base64_decode, base64_encode,
81
+ base_convert, basename, bcadd, bcceil, bccomp, bcdiv, bcdivmod, bcfloor, bcmod, bcmul, bcpow,
82
+ bcpowmod, bcround, bcscale, bcsqrt, bcsub, bin2hex, bind_textdomain_codeset, bindec,
83
+ bindtextdomain, boolval, bzclose, bzcompress, bzdecompress, bzerrno, bzerror, bzerrstr,
84
+ bzflush, bzopen, bzread, bzwrite, cal_days_in_month, cal_from_jd, cal_info, cal_to_jd,
85
+ call_user_func, call_user_func_array, ceil, chdir, checkdate, checkdnsrr, chgrp, chmod, chop,
86
+ chown, chr, chunk_split, class_alias, class_exists, class_implements, class_parents,
87
+ class_uses, clearstatcache, cli_get_process_title, cli_set_process_title, clone, closedir,
88
+ closelog, collator_asort, collator_compare, collator_create, collator_get_attribute,
89
+ collator_get_error_code, collator_get_error_message, collator_get_locale,
90
+ collator_get_sort_key, collator_get_strength, collator_set_attribute, collator_set_strength,
91
+ collator_sort, collator_sort_with_sort_keys, compact, connection_aborted, connection_status,
92
+ constant, convert_uudecode, convert_uuencode, copy, cos, cosh, count, count_chars, crc32,
93
+ crypt, ctype_alnum, ctype_alpha, ctype_cntrl, ctype_digit, ctype_graph, ctype_lower,
94
+ ctype_print, ctype_punct, ctype_space, ctype_upper, ctype_xdigit, curl_close,
95
+ curl_copy_handle, curl_errno, curl_error, curl_escape, curl_exec, curl_file_create,
96
+ curl_getinfo, curl_init, curl_multi_add_handle, curl_multi_close, curl_multi_errno,
97
+ curl_multi_exec, curl_multi_get_handles, curl_multi_getcontent, curl_multi_info_read,
98
+ curl_multi_init, curl_multi_remove_handle, curl_multi_select, curl_multi_setopt,
99
+ curl_multi_strerror, curl_pause, curl_reset, curl_setopt, curl_setopt_array, curl_share_close,
100
+ curl_share_errno, curl_share_init, curl_share_init_persistent, curl_share_setopt,
101
+ curl_share_strerror, curl_strerror, curl_unescape, curl_upkeep, curl_version, current, date,
102
+ date_add, date_create, date_create_from_format, date_create_immutable,
103
+ date_create_immutable_from_format, date_date_set, date_default_timezone_get,
104
+ date_default_timezone_set, date_diff, date_format, date_get_last_errors,
105
+ date_interval_create_from_date_string, date_interval_format, date_isodate_set, date_modify,
106
+ date_offset_get, date_parse, date_parse_from_format, date_sub, date_sun_info, date_sunrise,
107
+ date_sunset, date_time_set, date_timestamp_get, date_timestamp_set, date_timezone_get,
108
+ date_timezone_set, datefmt_create, datefmt_format, datefmt_format_object,
109
+ datefmt_get_calendar, datefmt_get_calendar_object, datefmt_get_datetype,
110
+ datefmt_get_error_code, datefmt_get_error_message, datefmt_get_locale, datefmt_get_pattern,
111
+ datefmt_get_timetype, datefmt_get_timezone, datefmt_get_timezone_id, datefmt_is_lenient,
112
+ datefmt_localtime, datefmt_parse, datefmt_set_calendar, datefmt_set_lenient,
113
+ datefmt_set_pattern, datefmt_set_timezone, dba_close, dba_delete, dba_exists, dba_fetch,
114
+ dba_firstkey, dba_handlers, dba_insert, dba_key_split, dba_list, dba_nextkey, dba_open,
115
+ dba_optimize, dba_popen, dba_replace, dba_sync, dcgettext, dcngettext, debug_backtrace,
116
+ debug_print_backtrace, debug_zval_dump, decbin, dechex, decoct, define, defined, deflate_add,
117
+ deflate_init, deg2rad, dgettext, dir, dirname, disk_free_space, disk_total_space,
118
+ diskfreespace, dl, dngettext, dns_check_record, dns_get_mx, dns_get_record,
119
+ dom\import_simplexml, dom_import_simplexml, doubleval, easter_date, easter_days, end,
120
+ enum_exists, error_clear_last, error_get_last, error_log, error_reporting, escapeshellarg,
121
+ escapeshellcmd, exec, exif_imagetype, exif_read_data, exif_tagname, exif_thumbnail, exp,
122
+ explode, expm1, extension_loaded, extract, fclose, fdatasync, fdiv, feof, fflush, fgetc,
123
+ fgetcsv, fgets, file, file_exists, file_get_contents, file_put_contents, fileatime, filectime,
124
+ filegroup, fileinode, filemtime, fileowner, fileperms, filesize, filetype, filter_has_var,
125
+ filter_id, filter_input, filter_input_array, filter_list, filter_var, filter_var_array,
126
+ finfo_buffer, finfo_close, finfo_file, finfo_open, finfo_set_flags, floatval, flock, floor,
127
+ flush, fmod, fnmatch, fopen, forward_static_call, forward_static_call_array, fpassthru, fpow,
128
+ fprintf, fputcsv, fputs, fread, frenchtojd, fscanf, fseek, fsockopen, fstat, fsync, ftell,
129
+ ftok, ftp_alloc, ftp_append, ftp_cdup, ftp_chdir, ftp_chmod, ftp_close, ftp_connect,
130
+ ftp_delete, ftp_exec, ftp_fget, ftp_fput, ftp_get, ftp_get_option, ftp_login, ftp_mdtm,
131
+ ftp_mkdir, ftp_mlsd, ftp_nb_continue, ftp_nb_fget, ftp_nb_fput, ftp_nb_get, ftp_nb_put,
132
+ ftp_nlist, ftp_pasv, ftp_put, ftp_pwd, ftp_quit, ftp_raw, ftp_rawlist, ftp_rename, ftp_rmdir,
133
+ ftp_set_option, ftp_site, ftp_size, ftp_ssl_connect, ftp_systype, ftruncate, func_get_arg,
134
+ func_get_args, func_num_args, function_exists, fwrite, gc_collect_cycles, gc_disable,
135
+ gc_enable, gc_enabled, gc_mem_caches, gc_status, gd_info, get_browser, get_called_class,
136
+ get_cfg_var, get_class, get_class_methods, get_class_vars, get_current_user, get_debug_type,
137
+ get_declared_classes, get_declared_interfaces, get_declared_traits, get_defined_constants,
138
+ get_defined_functions, get_defined_vars, get_error_handler, get_exception_handler,
139
+ get_extension_funcs, get_headers, get_html_translation_table, get_include_path,
140
+ get_included_files, get_loaded_extensions, get_mangled_object_vars, get_meta_tags,
141
+ get_object_vars, get_parent_class, get_required_files, get_resource_id, get_resource_type,
142
+ get_resources, getcwd, getdate, getenv, gethostbyaddr, gethostbyname, gethostbynamel,
143
+ gethostname, getimagesize, getimagesizefromstring, getlastmod, getmxrr, getmygid, getmyinode,
144
+ getmypid, getmyuid, getopt, getprotobyname, getprotobynumber, getrandmax, getrusage,
145
+ getservbyname, getservbyport, gettext, gettimeofday, gettype, glob, gmdate, gmmktime, gmp_abs,
146
+ gmp_add, gmp_and, gmp_binomial, gmp_clrbit, gmp_cmp, gmp_com, gmp_div, gmp_div_q, gmp_div_qr,
147
+ gmp_div_r, gmp_divexact, gmp_export, gmp_fact, gmp_gcd, gmp_gcdext, gmp_hamdist, gmp_import,
148
+ gmp_init, gmp_intval, gmp_invert, gmp_jacobi, gmp_kronecker, gmp_lcm, gmp_legendre, gmp_mod,
149
+ gmp_mul, gmp_neg, gmp_nextprime, gmp_or, gmp_perfect_power, gmp_perfect_square, gmp_popcount,
150
+ gmp_pow, gmp_powm, gmp_prob_prime, gmp_random_bits, gmp_random_range, gmp_random_seed,
151
+ gmp_root, gmp_rootrem, gmp_scan0, gmp_scan1, gmp_setbit, gmp_sign, gmp_sqrt, gmp_sqrtrem,
152
+ gmp_strval, gmp_sub, gmp_testbit, gmp_xor, gmstrftime, grapheme_extract, grapheme_levenshtein,
153
+ grapheme_str_split, grapheme_stripos, grapheme_stristr, grapheme_strlen, grapheme_strpos,
154
+ grapheme_strripos, grapheme_strrpos, grapheme_strstr, grapheme_substr, gregoriantojd, gzclose,
155
+ gzcompress, gzdecode, gzdeflate, gzencode, gzeof, gzfile, gzgetc, gzgets, gzinflate, gzopen,
156
+ gzpassthru, gzputs, gzread, gzrewind, gzseek, gztell, gzuncompress, gzwrite, hash, hash_algos,
157
+ hash_copy, hash_equals, hash_file, hash_final, hash_hkdf, hash_hmac, hash_hmac_algos,
158
+ hash_hmac_file, hash_init, hash_pbkdf2, hash_update, hash_update_file, hash_update_stream,
159
+ header, header_register_callback, header_remove, headers_list, headers_sent, hebrev, hex2bin,
160
+ hexdec, highlight_file, highlight_string, hrtime, html_entity_decode, htmlentities,
161
+ htmlspecialchars, htmlspecialchars_decode, http_build_query, http_clear_last_response_headers,
162
+ http_get_last_response_headers, http_response_code, hypot, iconv, iconv_get_encoding,
163
+ iconv_mime_decode, iconv_mime_decode_headers, iconv_mime_encode, iconv_set_encoding,
164
+ iconv_strlen, iconv_strpos, iconv_strrpos, iconv_substr, idate, idn_to_ascii, idn_to_utf8,
165
+ ignore_user_abort, image_type_to_extension, image_type_to_mime_type, imageaffine,
166
+ imageaffinematrixconcat, imageaffinematrixget, imagealphablending, imageantialias, imagearc,
167
+ imageavif, imagebmp, imagechar, imagecharup, imagecolorallocate, imagecolorallocatealpha,
168
+ imagecolorat, imagecolorclosest, imagecolorclosestalpha, imagecolorclosesthwb,
169
+ imagecolordeallocate, imagecolorexact, imagecolorexactalpha, imagecolormatch,
170
+ imagecolorresolve, imagecolorresolvealpha, imagecolorset, imagecolorsforindex,
171
+ imagecolorstotal, imagecolortransparent, imageconvolution, imagecopy, imagecopymerge,
172
+ imagecopymergegray, imagecopyresampled, imagecopyresized, imagecreate, imagecreatefromavif,
173
+ imagecreatefrombmp, imagecreatefromgd, imagecreatefromgd2, imagecreatefromgd2part,
174
+ imagecreatefromgif, imagecreatefromjpeg, imagecreatefrompng, imagecreatefromstring,
175
+ imagecreatefromtga, imagecreatefromwbmp, imagecreatefromwebp, imagecreatefromxbm,
176
+ imagecreatetruecolor, imagecrop, imagecropauto, imagedashedline, imagedestroy, imageellipse,
177
+ imagefill, imagefilledarc, imagefilledellipse, imagefilledpolygon, imagefilledrectangle,
178
+ imagefilltoborder, imagefilter, imageflip, imagefontheight, imagefontwidth, imageftbbox,
179
+ imagefttext, imagegammacorrect, imagegd, imagegd2, imagegetclip, imagegetinterpolation,
180
+ imagegif, imageinterlace, imageistruecolor, imagejpeg, imagelayereffect, imageline,
181
+ imageloadfont, imageopenpolygon, imagepalettecopy, imagepalettetotruecolor, imagepng,
182
+ imagepolygon, imagerectangle, imageresolution, imagerotate, imagesavealpha, imagescale,
183
+ imagesetbrush, imagesetclip, imagesetinterpolation, imagesetpixel, imagesetstyle,
184
+ imagesetthickness, imagesettile, imagestring, imagestringup, imagesx, imagesy,
185
+ imagetruecolortopalette, imagettfbbox, imagettftext, imagetypes, imagewbmp, imagewebp,
186
+ imagexbm, implode, in_array, inet_ntop, inet_pton, inflate_add, inflate_get_read_len,
187
+ inflate_get_status, inflate_init, ini_alter, ini_get, ini_get_all, ini_parse_quantity,
188
+ ini_restore, ini_set, intdiv, interface_exists, intl_error_name, intl_get_error_code,
189
+ intl_get_error_message, intl_is_failure, intlcal_add, intlcal_after, intlcal_before,
190
+ intlcal_clear, intlcal_create_instance, intlcal_equals, intlcal_field_difference,
191
+ intlcal_from_date_time, intlcal_get, intlcal_get_actual_maximum, intlcal_get_actual_minimum,
192
+ intlcal_get_available_locales, intlcal_get_day_of_week_type, intlcal_get_error_code,
193
+ intlcal_get_error_message, intlcal_get_first_day_of_week, intlcal_get_greatest_minimum,
194
+ intlcal_get_keyword_values_for_locale, intlcal_get_least_maximum, intlcal_get_locale,
195
+ intlcal_get_maximum, intlcal_get_minimal_days_in_first_week, intlcal_get_minimum,
196
+ intlcal_get_now, intlcal_get_repeated_wall_time_option, intlcal_get_skipped_wall_time_option,
197
+ intlcal_get_time, intlcal_get_time_zone, intlcal_get_type, intlcal_get_weekend_transition,
198
+ intlcal_in_daylight_time, intlcal_is_equivalent_to, intlcal_is_lenient, intlcal_is_set,
199
+ intlcal_is_weekend, intlcal_roll, intlcal_set, intlcal_set_first_day_of_week,
200
+ intlcal_set_lenient, intlcal_set_minimal_days_in_first_week,
201
+ intlcal_set_repeated_wall_time_option, intlcal_set_skipped_wall_time_option, intlcal_set_time,
202
+ intlcal_set_time_zone, intlcal_to_date_time, intlgregcal_create_instance,
203
+ intlgregcal_get_gregorian_change, intlgregcal_is_leap_year, intlgregcal_set_gregorian_change,
204
+ intltz_count_equivalent_ids, intltz_create_default, intltz_create_enumeration,
205
+ intltz_create_time_zone, intltz_create_time_zone_id_enumeration, intltz_from_date_time_zone,
206
+ intltz_get_canonical_id, intltz_get_display_name, intltz_get_dst_savings,
207
+ intltz_get_equivalent_id, intltz_get_error_code, intltz_get_error_message, intltz_get_gmt,
208
+ intltz_get_iana_id, intltz_get_id, intltz_get_id_for_windows_id, intltz_get_offset,
209
+ intltz_get_raw_offset, intltz_get_region, intltz_get_tz_data_version, intltz_get_unknown,
210
+ intltz_get_windows_id, intltz_has_same_rules, intltz_to_date_time_zone,
211
+ intltz_use_daylight_time, intval, ip2long, iptcembed, iptcparse, is_a, is_array, is_bool,
212
+ is_callable, is_countable, is_dir, is_double, is_executable, is_file, is_finite, is_float,
213
+ is_infinite, is_int, is_integer, is_iterable, is_link, is_long, is_nan, is_null, is_numeric,
214
+ is_object, is_readable, is_resource, is_scalar, is_soap_fault, is_string, is_subclass_of,
215
+ is_uploaded_file, is_writable, is_writeable, iterator_apply, iterator_count,
216
+ iterator_to_array, jddayofweek, jdmonthname, jdtofrench, jdtogregorian, jdtojewish,
217
+ jdtojulian, jdtounix, jewishtojd, join, json_decode, json_encode, json_last_error,
218
+ json_last_error_msg, json_validate, juliantojd, key, key_exists, krsort, ksort, lcfirst,
219
+ lcg_value, lchgrp, lchown, ldap_add, ldap_add_ext, ldap_bind, ldap_bind_ext, ldap_close,
220
+ ldap_compare, ldap_connect, ldap_count_entries, ldap_count_references, ldap_delete,
221
+ ldap_delete_ext, ldap_dn2ufn, ldap_err2str, ldap_errno, ldap_error, ldap_escape, ldap_exop,
222
+ ldap_exop_passwd, ldap_exop_refresh, ldap_exop_sync, ldap_exop_whoami, ldap_explode_dn,
223
+ ldap_first_attribute, ldap_first_entry, ldap_first_reference, ldap_free_result,
224
+ ldap_get_attributes, ldap_get_dn, ldap_get_entries, ldap_get_option, ldap_get_values,
225
+ ldap_get_values_len, ldap_list, ldap_mod_add, ldap_mod_add_ext, ldap_mod_del,
226
+ ldap_mod_del_ext, ldap_mod_replace, ldap_mod_replace_ext, ldap_modify, ldap_modify_batch,
227
+ ldap_next_attribute, ldap_next_entry, ldap_next_reference, ldap_parse_exop,
228
+ ldap_parse_reference, ldap_parse_result, ldap_read, ldap_rename, ldap_rename_ext,
229
+ ldap_sasl_bind, ldap_search, ldap_set_option, ldap_set_rebind_proc, ldap_start_tls,
230
+ ldap_unbind, levenshtein, libxml_clear_errors, libxml_disable_entity_loader,
231
+ libxml_get_errors, libxml_get_external_entity_loader, libxml_get_last_error,
232
+ libxml_set_external_entity_loader, libxml_set_streams_context, libxml_use_internal_errors,
233
+ link, linkinfo, locale_accept_from_http, locale_add_likely_subtags, locale_canonicalize,
234
+ locale_compose, locale_filter_matches, locale_get_all_variants, locale_get_default,
235
+ locale_get_display_language, locale_get_display_name, locale_get_display_region,
236
+ locale_get_display_script, locale_get_display_variant, locale_get_keywords,
237
+ locale_get_primary_language, locale_get_region, locale_get_script, locale_is_right_to_left,
238
+ locale_lookup, locale_minimize_subtags, locale_parse, locale_set_default, localeconv,
239
+ localtime, log, log10, log1p, long2ip, lstat, ltrim, mail, max, mb_check_encoding, mb_chr,
240
+ mb_convert_case, mb_convert_encoding, mb_convert_kana, mb_convert_variables,
241
+ mb_decode_mimeheader, mb_decode_numericentity, mb_detect_encoding, mb_detect_order,
242
+ mb_encode_mimeheader, mb_encode_numericentity, mb_encoding_aliases, mb_ereg, mb_ereg_match,
243
+ mb_ereg_replace, mb_ereg_replace_callback, mb_ereg_search, mb_ereg_search_getpos,
244
+ mb_ereg_search_getregs, mb_ereg_search_init, mb_ereg_search_pos, mb_ereg_search_regs,
245
+ mb_ereg_search_setpos, mb_eregi, mb_eregi_replace, mb_get_info, mb_http_input, mb_http_output,
246
+ mb_internal_encoding, mb_language, mb_lcfirst, mb_list_encodings, mb_ltrim, mb_ord,
247
+ mb_output_handler, mb_parse_str, mb_preferred_mime_name, mb_regex_encoding,
248
+ mb_regex_set_options, mb_rtrim, mb_scrub, mb_send_mail, mb_split, mb_str_pad, mb_str_split,
249
+ mb_strcut, mb_strimwidth, mb_stripos, mb_stristr, mb_strlen, mb_strpos, mb_strrchr,
250
+ mb_strrichr, mb_strripos, mb_strrpos, mb_strstr, mb_strtolower, mb_strtoupper, mb_strwidth,
251
+ mb_substitute_character, mb_substr, mb_substr_count, mb_trim, mb_ucfirst, md5, md5_file,
252
+ memory_get_peak_usage, memory_get_usage, memory_reset_peak_usage, metaphone, method_exists,
253
+ mhash, mhash_count, mhash_get_block_size, mhash_get_hash_name, mhash_keygen_s2k, microtime,
254
+ mime_content_type, min, mkdir, mktime, move_uploaded_file, msg_get_queue, msg_queue_exists,
255
+ msg_receive, msg_remove_queue, msg_send, msg_set_queue, msg_stat_queue, msgfmt_create,
256
+ msgfmt_format, msgfmt_format_message, msgfmt_get_error_code, msgfmt_get_error_message,
257
+ msgfmt_get_locale, msgfmt_get_pattern, msgfmt_parse, msgfmt_parse_message, msgfmt_set_pattern,
258
+ mt_getrandmax, mt_rand, mt_srand, mysqli_affected_rows, mysqli_autocommit,
259
+ mysqli_begin_transaction, mysqli_change_user, mysqli_character_set_name, mysqli_close,
260
+ mysqli_commit, mysqli_connect, mysqli_connect_errno, mysqli_connect_error, mysqli_data_seek,
261
+ mysqli_debug, mysqli_dump_debug_info, mysqli_errno, mysqli_error, mysqli_error_list,
262
+ mysqli_escape_string, mysqli_execute, mysqli_execute_query, mysqli_fetch_all,
263
+ mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_column, mysqli_fetch_field,
264
+ mysqli_fetch_field_direct, mysqli_fetch_fields, mysqli_fetch_lengths, mysqli_fetch_object,
265
+ mysqli_fetch_row, mysqli_field_count, mysqli_field_seek, mysqli_field_tell,
266
+ mysqli_free_result, mysqli_get_charset, mysqli_get_client_info, mysqli_get_client_stats,
267
+ mysqli_get_client_version, mysqli_get_connection_stats, mysqli_get_host_info,
268
+ mysqli_get_links_stats, mysqli_get_proto_info, mysqli_get_server_info,
269
+ mysqli_get_server_version, mysqli_get_warnings, mysqli_info, mysqli_init, mysqli_insert_id,
270
+ mysqli_kill, mysqli_more_results, mysqli_multi_query, mysqli_next_result, mysqli_num_fields,
271
+ mysqli_num_rows, mysqli_options, mysqli_ping, mysqli_poll, mysqli_prepare, mysqli_query,
272
+ mysqli_real_connect, mysqli_real_escape_string, mysqli_real_query, mysqli_reap_async_query,
273
+ mysqli_refresh, mysqli_release_savepoint, mysqli_report, mysqli_rollback, mysqli_savepoint,
274
+ mysqli_select_db, mysqli_set_charset, mysqli_set_opt, mysqli_sqlstate, mysqli_ssl_set,
275
+ mysqli_stat, mysqli_stmt_affected_rows, mysqli_stmt_attr_get, mysqli_stmt_attr_set,
276
+ mysqli_stmt_bind_param, mysqli_stmt_bind_result, mysqli_stmt_close, mysqli_stmt_data_seek,
277
+ mysqli_stmt_errno, mysqli_stmt_error, mysqli_stmt_error_list, mysqli_stmt_execute,
278
+ mysqli_stmt_fetch, mysqli_stmt_field_count, mysqli_stmt_free_result, mysqli_stmt_get_result,
279
+ mysqli_stmt_get_warnings, mysqli_stmt_init, mysqli_stmt_insert_id, mysqli_stmt_more_results,
280
+ mysqli_stmt_next_result, mysqli_stmt_num_rows, mysqli_stmt_param_count, mysqli_stmt_prepare,
281
+ mysqli_stmt_reset, mysqli_stmt_result_metadata, mysqli_stmt_send_long_data,
282
+ mysqli_stmt_sqlstate, mysqli_stmt_store_result, mysqli_store_result, mysqli_thread_id,
283
+ mysqli_thread_safe, mysqli_use_result, mysqli_warning_count, natcasesort, natsort,
284
+ net_get_interfaces, next, ngettext, nl2br, nl_langinfo, normalizer_get_raw_decomposition,
285
+ normalizer_is_normalized, normalizer_normalize, number_format, numfmt_create, numfmt_format,
286
+ numfmt_format_currency, numfmt_get_attribute, numfmt_get_error_code, numfmt_get_error_message,
287
+ numfmt_get_locale, numfmt_get_pattern, numfmt_get_symbol, numfmt_get_text_attribute,
288
+ numfmt_parse, numfmt_parse_currency, numfmt_set_attribute, numfmt_set_pattern,
289
+ numfmt_set_symbol, numfmt_set_text_attribute, ob_clean, ob_end_clean, ob_end_flush, ob_flush,
290
+ ob_get_clean, ob_get_contents, ob_get_flush, ob_get_length, ob_get_level, ob_get_status,
291
+ ob_gzhandler, ob_implicit_flush, ob_list_handlers, ob_start, octdec, odbc_autocommit,
292
+ odbc_binmode, odbc_close, odbc_close_all, odbc_columnprivileges, odbc_columns, odbc_commit,
293
+ odbc_connect, odbc_connection_string_is_quoted, odbc_connection_string_quote,
294
+ odbc_connection_string_should_quote, odbc_cursor, odbc_data_source, odbc_do, odbc_error,
295
+ odbc_errormsg, odbc_exec, odbc_execute, odbc_fetch_array, odbc_fetch_into, odbc_fetch_object,
296
+ odbc_fetch_row, odbc_field_len, odbc_field_name, odbc_field_num, odbc_field_precision,
297
+ odbc_field_scale, odbc_field_type, odbc_foreignkeys, odbc_free_result, odbc_gettypeinfo,
298
+ odbc_longreadlen, odbc_next_result, odbc_num_fields, odbc_num_rows, odbc_pconnect,
299
+ odbc_prepare, odbc_primarykeys, odbc_procedurecolumns, odbc_procedures, odbc_result,
300
+ odbc_result_all, odbc_rollback, odbc_setoption, odbc_specialcolumns, odbc_statistics,
301
+ odbc_tableprivileges, odbc_tables, opcache_compile_file, opcache_get_configuration,
302
+ opcache_get_status, opcache_invalidate, opcache_is_script_cached,
303
+ opcache_is_script_cached_in_file_cache, opcache_jit_blacklist, opcache_reset, opendir,
304
+ openlog, openssl_cipher_iv_length, openssl_cipher_key_length, openssl_cms_decrypt,
305
+ openssl_cms_encrypt, openssl_cms_read, openssl_cms_sign, openssl_cms_verify,
306
+ openssl_csr_export, openssl_csr_export_to_file, openssl_csr_get_public_key,
307
+ openssl_csr_get_subject, openssl_csr_new, openssl_csr_sign, openssl_decrypt,
308
+ openssl_dh_compute_key, openssl_digest, openssl_encrypt, openssl_error_string,
309
+ openssl_free_key, openssl_get_cert_locations, openssl_get_cipher_methods,
310
+ openssl_get_curve_names, openssl_get_md_methods, openssl_get_privatekey,
311
+ openssl_get_publickey, openssl_open, openssl_pbkdf2, openssl_pkcs12_export,
312
+ openssl_pkcs12_export_to_file, openssl_pkcs12_read, openssl_pkcs7_decrypt,
313
+ openssl_pkcs7_encrypt, openssl_pkcs7_read, openssl_pkcs7_sign, openssl_pkcs7_verify,
314
+ openssl_pkey_derive, openssl_pkey_export, openssl_pkey_export_to_file, openssl_pkey_free,
315
+ openssl_pkey_get_details, openssl_pkey_get_private, openssl_pkey_get_public, openssl_pkey_new,
316
+ openssl_private_decrypt, openssl_private_encrypt, openssl_public_decrypt,
317
+ openssl_public_encrypt, openssl_random_pseudo_bytes, openssl_seal, openssl_sign,
318
+ openssl_spki_export, openssl_spki_export_challenge, openssl_spki_new, openssl_spki_verify,
319
+ openssl_verify, openssl_x509_check_private_key, openssl_x509_checkpurpose,
320
+ openssl_x509_export, openssl_x509_export_to_file, openssl_x509_fingerprint, openssl_x509_free,
321
+ openssl_x509_parse, openssl_x509_read, openssl_x509_verify, ord, output_add_rewrite_var,
322
+ output_reset_rewrite_vars, pack, parse_ini_file, parse_ini_string, parse_str, parse_url,
323
+ passthru, password_algos, password_get_info, password_hash, password_needs_rehash,
324
+ password_verify, pathinfo, pclose, pcntl_alarm, pcntl_async_signals, pcntl_errno, pcntl_exec,
325
+ pcntl_fork, pcntl_get_last_error, pcntl_getcpu, pcntl_getcpuaffinity, pcntl_getpriority,
326
+ pcntl_setcpuaffinity, pcntl_setpriority, pcntl_signal, pcntl_signal_dispatch,
327
+ pcntl_signal_get_handler, pcntl_sigprocmask, pcntl_sigtimedwait, pcntl_sigwaitinfo,
328
+ pcntl_strerror, pcntl_unshare, pcntl_wait, pcntl_waitid, pcntl_waitpid, pcntl_wexitstatus,
329
+ pcntl_wifcontinued, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig,
330
+ pcntl_wtermsig, pdo_drivers, pfsockopen, pg_affected_rows, pg_cancel_query,
331
+ pg_change_password, pg_client_encoding, pg_clientencoding, pg_close, pg_close_stmt,
332
+ pg_cmdtuples, pg_connect, pg_connect_poll, pg_connection_busy, pg_connection_reset,
333
+ pg_connection_status, pg_consume_input, pg_convert, pg_copy_from, pg_copy_to, pg_dbname,
334
+ pg_delete, pg_end_copy, pg_errormessage, pg_escape_bytea, pg_escape_identifier,
335
+ pg_escape_literal, pg_escape_string, pg_exec, pg_execute, pg_fetch_all, pg_fetch_all_columns,
336
+ pg_fetch_array, pg_fetch_assoc, pg_fetch_object, pg_fetch_result, pg_fetch_row,
337
+ pg_field_is_null, pg_field_name, pg_field_num, pg_field_prtlen, pg_field_size, pg_field_table,
338
+ pg_field_type, pg_field_type_oid, pg_fieldisnull, pg_fieldname, pg_fieldnum, pg_fieldprtlen,
339
+ pg_fieldsize, pg_fieldtype, pg_flush, pg_free_result, pg_freeresult, pg_get_notify,
340
+ pg_get_pid, pg_get_result, pg_getlastoid, pg_host, pg_insert, pg_jit, pg_last_error,
341
+ pg_last_notice, pg_last_oid, pg_lo_close, pg_lo_create, pg_lo_export, pg_lo_import,
342
+ pg_lo_open, pg_lo_read, pg_lo_read_all, pg_lo_seek, pg_lo_tell, pg_lo_truncate, pg_lo_unlink,
343
+ pg_lo_write, pg_loclose, pg_locreate, pg_loexport, pg_loimport, pg_loopen, pg_loread,
344
+ pg_loreadall, pg_lounlink, pg_lowrite, pg_meta_data, pg_num_fields, pg_num_rows, pg_numfields,
345
+ pg_numrows, pg_options, pg_parameter_status, pg_pconnect, pg_ping, pg_port, pg_prepare,
346
+ pg_put_copy_data, pg_put_copy_end, pg_put_line, pg_query, pg_query_params, pg_result,
347
+ pg_result_error, pg_result_error_field, pg_result_memory_size, pg_result_seek,
348
+ pg_result_status, pg_select, pg_send_execute, pg_send_prepare, pg_send_query,
349
+ pg_send_query_params, pg_set_chunked_rows_size, pg_set_client_encoding,
350
+ pg_set_error_context_visibility, pg_set_error_verbosity, pg_setclientencoding, pg_socket,
351
+ pg_socket_poll, pg_trace, pg_transaction_status, pg_tty, pg_unescape_bytea, pg_untrace,
352
+ pg_update, pg_version, php_ini_loaded_file, php_ini_scanned_files, php_sapi_name,
353
+ php_strip_whitespace, php_uname, phpcredits, phpinfo, phpversion, pi, popen, pos,
354
+ posix_access, posix_ctermid, posix_eaccess, posix_errno, posix_fpathconf,
355
+ posix_get_last_error, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid,
356
+ posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp,
357
+ posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid,
358
+ posix_getuid, posix_initgroups, posix_isatty, posix_kill, posix_mkfifo, posix_mknod,
359
+ posix_pathconf, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setrlimit,
360
+ posix_setsid, posix_setuid, posix_strerror, posix_sysconf, posix_times, posix_ttyname,
361
+ posix_uname, pow, preg_filter, preg_grep, preg_last_error, preg_last_error_msg, preg_match,
362
+ preg_match_all, preg_quote, preg_replace, preg_replace_callback, preg_replace_callback_array,
363
+ preg_split, prev, print_r, printf, proc_close, proc_get_status, proc_nice, proc_open,
364
+ proc_terminate, property_exists, putenv, quoted_printable_decode, quoted_printable_encode,
365
+ quotemeta, rad2deg, rand, random_bytes, random_int, range, rawurldecode, rawurlencode,
366
+ readdir, readfile, readgzfile, readline, readline_add_history,
367
+ readline_callback_handler_install, readline_callback_handler_remove,
368
+ readline_callback_read_char, readline_clear_history, readline_completion_function,
369
+ readline_info, readline_list_history, readline_on_new_line, readline_read_history,
370
+ readline_redisplay, readline_write_history, readlink, realpath, realpath_cache_get,
371
+ realpath_cache_size, register_shutdown_function, register_tick_function, rename,
372
+ request_parse_body, reset, resourcebundle_count, resourcebundle_create, resourcebundle_get,
373
+ resourcebundle_get_error_code, resourcebundle_get_error_message, resourcebundle_locales,
374
+ restore_error_handler, restore_exception_handler, rewind, rewinddir, rmdir, round, rsort,
375
+ rtrim, scandir, sem_acquire, sem_get, sem_release, sem_remove, serialize, session_abort,
376
+ session_cache_expire, session_cache_limiter, session_commit, session_create_id,
377
+ session_decode, session_destroy, session_encode, session_gc, session_get_cookie_params,
378
+ session_id, session_module_name, session_name, session_regenerate_id,
379
+ session_register_shutdown, session_reset, session_save_path, session_set_cookie_params,
380
+ session_set_save_handler, session_start, session_status, session_unset, session_write_close,
381
+ set_error_handler, set_exception_handler, set_file_buffer, set_include_path, set_time_limit,
382
+ setcookie, setlocale, setrawcookie, settype, sha1, sha1_file, shell_exec, shm_attach,
383
+ shm_detach, shm_get_var, shm_has_var, shm_put_var, shm_remove, shm_remove_var, shmop_close,
384
+ shmop_delete, shmop_open, shmop_read, shmop_size, shmop_write, show_source, shuffle,
385
+ similar_text, simplexml_import_dom, simplexml_load_file, simplexml_load_string, sin, sinh,
386
+ sizeof, sleep, snmp2_get, snmp2_getnext, snmp2_real_walk, snmp2_set, snmp2_walk, snmp3_get,
387
+ snmp3_getnext, snmp3_real_walk, snmp3_set, snmp3_walk, snmp_get_quick_print,
388
+ snmp_get_valueretrieval, snmp_read_mib, snmp_set_enum_print, snmp_set_oid_numeric_print,
389
+ snmp_set_oid_output_format, snmp_set_quick_print, snmp_set_valueretrieval, snmpget,
390
+ snmpgetnext, snmprealwalk, snmpset, snmpwalk, snmpwalkoid, socket_accept,
391
+ socket_addrinfo_bind, socket_addrinfo_connect, socket_addrinfo_explain,
392
+ socket_addrinfo_lookup, socket_atmark, socket_bind, socket_clear_error, socket_close,
393
+ socket_cmsg_space, socket_connect, socket_create, socket_create_listen, socket_create_pair,
394
+ socket_export_stream, socket_get_option, socket_get_status, socket_getopt, socket_getpeername,
395
+ socket_getsockname, socket_import_stream, socket_last_error, socket_listen, socket_read,
396
+ socket_recv, socket_recvfrom, socket_recvmsg, socket_select, socket_send, socket_sendmsg,
397
+ socket_sendto, socket_set_block, socket_set_blocking, socket_set_nonblock, socket_set_option,
398
+ socket_set_timeout, socket_setopt, socket_shutdown, socket_strerror, socket_write, sodium_add,
399
+ sodium_base642bin, sodium_bin2base64, sodium_bin2hex, sodium_compare,
400
+ sodium_crypto_aead_aegis128l_decrypt, sodium_crypto_aead_aegis128l_encrypt,
401
+ sodium_crypto_aead_aegis128l_keygen, sodium_crypto_aead_aegis256_decrypt,
402
+ sodium_crypto_aead_aegis256_encrypt, sodium_crypto_aead_aegis256_keygen,
403
+ sodium_crypto_aead_aes256gcm_decrypt, sodium_crypto_aead_aes256gcm_encrypt,
404
+ sodium_crypto_aead_aes256gcm_is_available, sodium_crypto_aead_aes256gcm_keygen,
405
+ sodium_crypto_aead_chacha20poly1305_decrypt, sodium_crypto_aead_chacha20poly1305_encrypt,
406
+ sodium_crypto_aead_chacha20poly1305_ietf_decrypt,
407
+ sodium_crypto_aead_chacha20poly1305_ietf_encrypt,
408
+ sodium_crypto_aead_chacha20poly1305_ietf_keygen, sodium_crypto_aead_chacha20poly1305_keygen,
409
+ sodium_crypto_aead_xchacha20poly1305_ietf_decrypt,
410
+ sodium_crypto_aead_xchacha20poly1305_ietf_encrypt,
411
+ sodium_crypto_aead_xchacha20poly1305_ietf_keygen, sodium_crypto_auth,
412
+ sodium_crypto_auth_keygen, sodium_crypto_auth_verify, sodium_crypto_box,
413
+ sodium_crypto_box_keypair, sodium_crypto_box_keypair_from_secretkey_and_publickey,
414
+ sodium_crypto_box_open, sodium_crypto_box_publickey,
415
+ sodium_crypto_box_publickey_from_secretkey, sodium_crypto_box_seal,
416
+ sodium_crypto_box_seal_open, sodium_crypto_box_secretkey, sodium_crypto_box_seed_keypair,
417
+ sodium_crypto_core_ristretto255_add, sodium_crypto_core_ristretto255_from_hash,
418
+ sodium_crypto_core_ristretto255_is_valid_point, sodium_crypto_core_ristretto255_random,
419
+ sodium_crypto_core_ristretto255_scalar_add, sodium_crypto_core_ristretto255_scalar_complement,
420
+ sodium_crypto_core_ristretto255_scalar_invert, sodium_crypto_core_ristretto255_scalar_mul,
421
+ sodium_crypto_core_ristretto255_scalar_negate, sodium_crypto_core_ristretto255_scalar_random,
422
+ sodium_crypto_core_ristretto255_scalar_reduce, sodium_crypto_core_ristretto255_scalar_sub,
423
+ sodium_crypto_core_ristretto255_sub, sodium_crypto_generichash,
424
+ sodium_crypto_generichash_final, sodium_crypto_generichash_init,
425
+ sodium_crypto_generichash_keygen, sodium_crypto_generichash_update,
426
+ sodium_crypto_kdf_derive_from_key, sodium_crypto_kdf_keygen,
427
+ sodium_crypto_kx_client_session_keys, sodium_crypto_kx_keypair, sodium_crypto_kx_publickey,
428
+ sodium_crypto_kx_secretkey, sodium_crypto_kx_seed_keypair,
429
+ sodium_crypto_kx_server_session_keys, sodium_crypto_pwhash,
430
+ sodium_crypto_pwhash_scryptsalsa208sha256, sodium_crypto_pwhash_scryptsalsa208sha256_str,
431
+ sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, sodium_crypto_pwhash_str,
432
+ sodium_crypto_pwhash_str_needs_rehash, sodium_crypto_pwhash_str_verify,
433
+ sodium_crypto_scalarmult, sodium_crypto_scalarmult_base,
434
+ sodium_crypto_scalarmult_ristretto255, sodium_crypto_scalarmult_ristretto255_base,
435
+ sodium_crypto_secretbox, sodium_crypto_secretbox_keygen, sodium_crypto_secretbox_open,
436
+ sodium_crypto_secretstream_xchacha20poly1305_init_pull,
437
+ sodium_crypto_secretstream_xchacha20poly1305_init_push,
438
+ sodium_crypto_secretstream_xchacha20poly1305_keygen,
439
+ sodium_crypto_secretstream_xchacha20poly1305_pull,
440
+ sodium_crypto_secretstream_xchacha20poly1305_push,
441
+ sodium_crypto_secretstream_xchacha20poly1305_rekey, sodium_crypto_shorthash,
442
+ sodium_crypto_shorthash_keygen, sodium_crypto_sign, sodium_crypto_sign_detached,
443
+ sodium_crypto_sign_ed25519_pk_to_curve25519, sodium_crypto_sign_ed25519_sk_to_curve25519,
444
+ sodium_crypto_sign_keypair, sodium_crypto_sign_keypair_from_secretkey_and_publickey,
445
+ sodium_crypto_sign_open, sodium_crypto_sign_publickey,
446
+ sodium_crypto_sign_publickey_from_secretkey, sodium_crypto_sign_secretkey,
447
+ sodium_crypto_sign_seed_keypair, sodium_crypto_sign_verify_detached, sodium_crypto_stream,
448
+ sodium_crypto_stream_keygen, sodium_crypto_stream_xchacha20,
449
+ sodium_crypto_stream_xchacha20_keygen, sodium_crypto_stream_xchacha20_xor,
450
+ sodium_crypto_stream_xchacha20_xor_ic, sodium_crypto_stream_xor, sodium_hex2bin,
451
+ sodium_increment, sodium_memcmp, sodium_memzero, sodium_pad, sodium_unpad, sort, soundex,
452
+ spl_autoload, spl_autoload_call, spl_autoload_extensions, spl_autoload_functions,
453
+ spl_autoload_register, spl_autoload_unregister, spl_classes, spl_object_hash, spl_object_id,
454
+ sprintf, sqrt, srand, sscanf, stat, str_contains, str_decrement, str_ends_with, str_getcsv,
455
+ str_increment, str_ireplace, str_pad, str_repeat, str_replace, str_rot13, str_shuffle,
456
+ str_split, str_starts_with, str_word_count, strcasecmp, strchr, strcmp, strcoll, strcspn,
457
+ stream_bucket_append, stream_bucket_make_writeable, stream_bucket_new, stream_bucket_prepend,
458
+ stream_context_create, stream_context_get_default, stream_context_get_options,
459
+ stream_context_get_params, stream_context_set_default, stream_context_set_option,
460
+ stream_context_set_options, stream_context_set_params, stream_copy_to_stream,
461
+ stream_filter_append, stream_filter_prepend, stream_filter_register, stream_filter_remove,
462
+ stream_get_contents, stream_get_filters, stream_get_line, stream_get_meta_data,
463
+ stream_get_transports, stream_get_wrappers, stream_is_local, stream_isatty,
464
+ stream_register_wrapper, stream_resolve_include_path, stream_select, stream_set_blocking,
465
+ stream_set_chunk_size, stream_set_read_buffer, stream_set_timeout, stream_set_write_buffer,
466
+ stream_socket_accept, stream_socket_client, stream_socket_enable_crypto,
467
+ stream_socket_get_name, stream_socket_pair, stream_socket_recvfrom, stream_socket_sendto,
468
+ stream_socket_server, stream_socket_shutdown, stream_supports_lock, stream_wrapper_register,
469
+ stream_wrapper_restore, stream_wrapper_unregister, strftime, strip_tags, stripcslashes,
470
+ stripos, stripslashes, stristr, strlen, strnatcasecmp, strnatcmp, strncasecmp, strncmp,
471
+ strpbrk, strpos, strptime, strrchr, strrev, strripos, strrpos, strspn, strstr, strtok,
472
+ strtolower, strtotime, strtoupper, strtr, strval, substr, substr_compare, substr_count,
473
+ substr_replace, symlink, sys_get_temp_dir, sys_getloadavg, syslog, system, tan, tanh, tempnam,
474
+ textdomain, tidy_access_count, tidy_clean_repair, tidy_config_count, tidy_diagnose,
475
+ tidy_error_count, tidy_get_body, tidy_get_config, tidy_get_error_buffer, tidy_get_head,
476
+ tidy_get_html, tidy_get_html_ver, tidy_get_opt_doc, tidy_get_output, tidy_get_release,
477
+ tidy_get_root, tidy_get_status, tidy_getopt, tidy_is_xhtml, tidy_is_xml, tidy_parse_file,
478
+ tidy_parse_string, tidy_repair_file, tidy_repair_string, tidy_warning_count, time,
479
+ time_nanosleep, time_sleep_until, timezone_abbreviations_list, timezone_identifiers_list,
480
+ timezone_location_get, timezone_name_from_abbr, timezone_name_get, timezone_offset_get,
481
+ timezone_open, timezone_transitions_get, timezone_version_get, tmpfile, token_get_all,
482
+ token_name, touch, trait_exists, transliterator_create, transliterator_create_from_rules,
483
+ transliterator_create_inverse, transliterator_get_error_code,
484
+ transliterator_get_error_message, transliterator_list_ids, transliterator_transliterate,
485
+ trigger_error, trim, uasort, ucfirst, ucwords, uksort, umask, uniqid, unixtojd, unlink,
486
+ unpack, unregister_tick_function, unserialize, urldecode, urlencode, use_soap_error_handler,
487
+ user_error, usleep, usort, utf8_decode, utf8_encode, var_dump, var_export, version_compare,
488
+ vfprintf, vprintf, vsprintf, wordwrap, xml_error_string, xml_get_current_byte_index,
489
+ xml_get_current_column_number, xml_get_current_line_number, xml_get_error_code, xml_parse,
490
+ xml_parse_into_struct, xml_parser_create, xml_parser_create_ns, xml_parser_free,
491
+ xml_parser_get_option, xml_parser_set_option, xml_set_character_data_handler,
492
+ xml_set_default_handler, xml_set_element_handler, xml_set_end_namespace_decl_handler,
493
+ xml_set_external_entity_ref_handler, xml_set_notation_decl_handler, xml_set_object,
494
+ xml_set_processing_instruction_handler, xml_set_start_namespace_decl_handler,
495
+ xml_set_unparsed_entity_decl_handler, xmlwriter_end_attribute, xmlwriter_end_cdata,
496
+ xmlwriter_end_comment, xmlwriter_end_document, xmlwriter_end_dtd, xmlwriter_end_dtd_attlist,
497
+ xmlwriter_end_dtd_element, xmlwriter_end_dtd_entity, xmlwriter_end_element, xmlwriter_end_pi,
498
+ xmlwriter_flush, xmlwriter_full_end_element, xmlwriter_open_memory, xmlwriter_open_uri,
499
+ xmlwriter_output_memory, xmlwriter_set_indent, xmlwriter_set_indent_string,
500
+ xmlwriter_start_attribute, xmlwriter_start_attribute_ns, xmlwriter_start_cdata,
501
+ xmlwriter_start_comment, xmlwriter_start_document, xmlwriter_start_dtd,
502
+ xmlwriter_start_dtd_attlist, xmlwriter_start_dtd_element, xmlwriter_start_dtd_entity,
503
+ xmlwriter_start_element, xmlwriter_start_element_ns, xmlwriter_start_pi, xmlwriter_text,
504
+ xmlwriter_write_attribute, xmlwriter_write_attribute_ns, xmlwriter_write_cdata,
505
+ xmlwriter_write_comment, xmlwriter_write_dtd, xmlwriter_write_dtd_attlist,
506
+ xmlwriter_write_dtd_element, xmlwriter_write_dtd_entity, xmlwriter_write_element,
507
+ xmlwriter_write_element_ns, xmlwriter_write_pi, xmlwriter_write_raw, zend_version, zip_close,
508
+ zip_entry_close, zip_entry_compressedsize, zip_entry_compressionmethod, zip_entry_filesize,
509
+ zip_entry_name, zip_entry_open, zip_entry_read, zip_open, zip_read, zlib_decode, zlib_encode,
510
+ zlib_get_coding_type]
511
+ emits: [{edge: {kind: calls, from: enclosing_declaration, to: {types: [php.function], on_miss: unresolved}}}]
512
+ confidence: declared
513
+
514
+ - rule: calls_static_method
515
+ reads: file
516
+ in: [source]
517
+ match: {reference: scoped_call_expression, name_child: [scope, name], filetype: php}
518
+ emits: [{edge: {kind: calls, from: enclosing_declaration, to: {types: [php.method], separator: "::", on_miss: unresolved}}}]
519
+ confidence: declared
520
+
521
+ # The joins of a call through a property, each the twin of a rule in types/find_declarations.yaml:
522
+ # a class to its property; a typed parameter to its type; a property to the type its class
523
+ # declares for it; an assignment to its value; and a call site to and from the method around it.
524
+ - rule: declares_property
525
+ reads: file
526
+ in: [source]
527
+ match: {declaration: property_element, name_child: name, filetype: php}
528
+ id:
529
+ from: [enclosing_type, declared_name]
530
+ template: "{enclosing_type}::{declared_name}"
531
+ emits: [{edge: {kind: declares_property, from: enclosing_class, to: this_node}}]
532
+ confidence: declared
533
+
534
+ - rule: parameter_typed_as
535
+ reads: file
536
+ in: [source]
537
+ match: {declaration: simple_parameter, name_child: name, filetype: php, where: [{has_child: named_type}]}
538
+ id:
539
+ from: [enclosing_type, enclosing_method, declared_name]
540
+ template: "{enclosing_type}::{enclosing_method}::{declared_name}"
541
+ emits: [{edge: {kind: parameter_typed_as, from: this_node, to: {declared: php.parameter_type}}}]
542
+ confidence: declared
543
+
544
+ - rule: property_typed_as
545
+ reads: file
546
+ in: [source]
547
+ match:
548
+ declaration: property_declaration
549
+ name_child: [property_element, name]
550
+ filetype: php
551
+ where: [{has_child: named_type}]
552
+ id:
553
+ from: [enclosing_type, declared_name]
554
+ template: "{enclosing_type}::{declared_name}"
555
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
556
+ confidence: declared
557
+
558
+ - rule: promoted_property_typed_as
559
+ reads: file
560
+ in: [source]
561
+ match:
562
+ declaration: property_promotion_parameter
563
+ name_child: name
564
+ filetype: php
565
+ where: [{has_child: named_type}]
566
+ id:
567
+ from: [enclosing_type, declared_name]
568
+ template: "{enclosing_type}::{declared_name}"
569
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
570
+ confidence: declared
571
+
572
+ # A nullable type, ?Mailer. The type is read only so that ?int, which holds no class name, makes no
573
+ # edge and no row; normalize drops it again, leaving the property's id.
574
+ - rule: nullable_property_typed_as
575
+ reads: file
576
+ in: [source]
577
+ match:
578
+ declaration: property_declaration
579
+ name_child: [property_element, name]
580
+ filetype: php
581
+ where: [{has_child: optional_type}]
582
+ id:
583
+ from: [enclosing_type, declared_name, {qualified: type}]
584
+ template: "{enclosing_type}::{declared_name}::{type}"
585
+ normalize: [{replace: '::[^:]+$', with: ''}]
586
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
587
+ confidence: declared
588
+
589
+ - rule: nullable_promoted_property_typed_as
590
+ reads: file
591
+ in: [source]
592
+ match:
593
+ declaration: property_promotion_parameter
594
+ name_child: name
595
+ filetype: php
596
+ where: [{has_child: optional_type}]
597
+ id:
598
+ from: [enclosing_type, declared_name, {qualified: type}]
599
+ template: "{enclosing_type}::{declared_name}::{type}"
600
+ normalize: [{replace: '::[^:]+$', with: ''}]
601
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
602
+ confidence: declared
603
+
604
+ # A union with one class name, Mailer|null; the guard is find_union_property_type's.
605
+ - rule: union_property_typed_as
606
+ reads: file
607
+ in: [source]
608
+ match:
609
+ declaration: property_declaration
610
+ name_child: [property_element, name]
611
+ filetype: php
612
+ where:
613
+ - has_child: union_type
614
+ - name_matches: {child: type, pattern: '(?i)^(?:(?:null|false|true|int|float|string|bool|array|iterable|mixed|callable)\s*\|\s*)*\\?[A-Za-z_][\w\\]*(?:\s*\|\s*(?:null|false|true|int|float|string|bool|array|iterable|mixed|callable))*$'}
615
+ id:
616
+ from: [enclosing_type, declared_name, {qualified: type}]
617
+ template: "{enclosing_type}::{declared_name}::{type}"
618
+ normalize: [{replace: '::[^:]+$', with: ''}]
619
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
620
+ confidence: declared
621
+
622
+ - rule: union_promoted_property_typed_as
623
+ reads: file
624
+ in: [source]
625
+ match:
626
+ declaration: property_promotion_parameter
627
+ name_child: name
628
+ filetype: php
629
+ where:
630
+ - has_child: union_type
631
+ - name_matches: {child: type, pattern: '(?i)^(?:(?:null|false|true|int|float|string|bool|array|iterable|mixed|callable)\s*\|\s*)*\\?[A-Za-z_][\w\\]*(?:\s*\|\s*(?:null|false|true|int|float|string|bool|array|iterable|mixed|callable))*$'}
632
+ id:
633
+ from: [enclosing_type, declared_name, {qualified: type}]
634
+ template: "{enclosing_type}::{declared_name}::{type}"
635
+ normalize: [{replace: '::[^:]+$', with: ''}]
636
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
637
+ confidence: declared
638
+
639
+ # The docblock source is only a condition here: a property with no @var line gets no edge.
640
+ - rule: var_property_typed_as
641
+ reads: file
642
+ in: [source]
643
+ match: {declaration: property_declaration, name_child: [property_element, name], filetype: php}
644
+ id:
645
+ from:
646
+ - enclosing_type
647
+ - declared_name
648
+ - docblock: '@var\s+\??(?<type>\\?[A-Za-z_][A-Za-z0-9_\\]*)(?:\|null)?(?:\s|\*)'
649
+ template: "{enclosing_type}::{declared_name}"
650
+ emits: [{edge: {kind: property_typed_as, from: this_node, to: {declared: php.property_type}}}]
651
+ confidence: declared
652
+
653
+ - rule: assigned_value
654
+ reads: file
655
+ in: [source]
656
+ match:
657
+ declaration: assignment_expression
658
+ name_child: left
659
+ filetype: php
660
+ where: [{name_matches: {child: left, pattern: '\$this->\w+'}}]
661
+ id:
662
+ from: [enclosing_type, enclosing_method, declared_name, right]
663
+ template: "{enclosing_type}::{enclosing_method}::{declared_name}={right}"
664
+ emits: [{edge: {kind: assigned_value, from: {declared: php.member_assignment}, to: this_node}}]
665
+ confidence: declared
666
+
667
+ - rule: call_site_method
668
+ reads: file
669
+ in: [source]
670
+ match:
671
+ declaration: member_call_expression
672
+ name_child: object
673
+ filetype: php
674
+ where: [{name_matches: {child: object, pattern: '\$this->\w+'}}]
675
+ id:
676
+ from: [enclosing_type, enclosing_method, declared_name, name]
677
+ template: "{enclosing_type}::{enclosing_method}::{declared_name}->{name}"
678
+ emits:
679
+ - edge: {kind: has_call_site, from: enclosing_method, to: this_node}
680
+ - edge: {kind: call_site_in, from: this_node, to: enclosing_method}
681
+ confidence: declared
682
+
683
+ # A call site $this->mailer->send() to Mailer::send, when the call's class or its nearest ancestor
684
+ # that declares the property assigns it, $this->mailer = $mailer, from a typed parameter of the
685
+ # assigning method. The edge runs from the method around the call, at the call's line. Inferred:
686
+ # another assignment may give the property another object. A call no rule types keeps its call
687
+ # site and gets no edge.
688
+ - rule: calls_through_assigned_property
689
+ reads: map
690
+ match:
691
+ node_type: php.call_site
692
+ where: [{id_matches: '^php\.call_site::(?<site>(?<class>[^:]+)::[^:]+::\$this->(?<member>\w+)->(?<method>\w+))$'}]
693
+ follow:
694
+ - node: 'php.type::{class}'
695
+ - ancestors: [inherits]
696
+ - id_matches: '^php\.type::(?<owner>.+)$'
697
+ - node: 'php.property::{owner}::${member}'
698
+ - node: 'php.member_assignment::{owner}::$this->{member}'
699
+ - edge: assigned_value
700
+ - id_matches: '^php\.member_assignment_value::[^:]+::(?<setter>[^:]+)::\$this->\w+=\$(?<parameter>\w+)$'
701
+ - node: 'php.parameter::{owner}::{setter}::${parameter}'
702
+ - edge: parameter_typed_as
703
+ - id_matches: '^php\.parameter_type::[^:]+::\$\w+::(?<type>\\?[A-Za-z_][\w\\]*)$'
704
+ - node: 'php.call_site::{site}'
705
+ - edge: call_site_in
706
+ emits: [{edge: {kind: calls, from: matched_node, to: {template: "{type}::{method}", types: [php.method], on_miss: unresolved}}}]
707
+ confidence: inferred
708
+
709
+ # The same walk when the call's own class assigns the property, whichever class declares it: a
710
+ # child assigning a property its parent declares. A class that declares and assigns its own
711
+ # property gets this rule's row and calls_through_assigned_property's on one edge. A parent's call
712
+ # through a property only a child assigns gets no edge: no follow step walks an edge backwards.
713
+ - rule: calls_through_property_assigned_here
714
+ reads: map
715
+ match:
716
+ node_type: php.call_site
717
+ where: [{id_matches: '^php\.call_site::(?<site>(?<class>[^:]+)::[^:]+::\$this->(?<member>\w+)->(?<method>\w+))$'}]
718
+ follow:
719
+ - node: 'php.member_assignment::{class}::$this->{member}'
720
+ - edge: assigned_value
721
+ - id_matches: '^php\.member_assignment_value::[^:]+::(?<setter>[^:]+)::\$this->\w+=\$(?<parameter>\w+)$'
722
+ - node: 'php.parameter::{class}::{setter}::${parameter}'
723
+ - edge: parameter_typed_as
724
+ - id_matches: '^php\.parameter_type::[^:]+::\$\w+::(?<type>\\?[A-Za-z_][\w\\]*)$'
725
+ - node: 'php.call_site::{site}'
726
+ - edge: call_site_in
727
+ emits: [{edge: {kind: calls, from: matched_node, to: {template: "{type}::{method}", types: [php.method], on_miss: unresolved}}}]
728
+ confidence: inferred
729
+
730
+ # A call site $this->mailer->send() to Mailer::send, when the call's class or its nearest ancestor
731
+ # that declares the property declares its type: on the property, on a promoted constructor
732
+ # parameter or in a @var docblock. The edge runs from the method around the call, at the call's
733
+ # line. Inferred: the declared type is a claim about what runs, not an observation of it. A call no
734
+ # rule types keeps its call site and gets no edge.
735
+ - rule: calls_through_typed_property
736
+ reads: map
737
+ match:
738
+ node_type: php.call_site
739
+ where: [{id_matches: '^php\.call_site::(?<site>(?<class>[^:]+)::[^:]+::\$this->(?<member>\w+)->(?<method>\w+))$'}]
740
+ follow:
741
+ - node: 'php.type::{class}'
742
+ - ancestors: [inherits]
743
+ - id_matches: '^php\.type::(?<owner>.+)$'
744
+ - node: 'php.property::{owner}::${member}'
745
+ - edge: property_typed_as
746
+ - id_matches: '^php\.property_type::[^:]+::\$\w+::(?<type>\\?[A-Za-z_][\w\\]*)$'
747
+ - node: 'php.call_site::{site}'
748
+ - edge: call_site_in
749
+ emits: [{edge: {kind: calls, from: matched_node, to: {template: "{type}::{method}", types: [php.method], on_miss: unresolved}}}]
750
+ confidence: inferred