diff --git a/.gitignore b/.gitignore
index 4ac74fc..e2bd0ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@ Thumbs.db
.playwright-mcp/
.claude/
dist/
+.phpcs-cache
diff --git a/.phpstan/stubs.php b/.phpstan/stubs.php
new file mode 100644
index 0000000..0815596
--- /dev/null
+++ b/.phpstan/stubs.php
@@ -0,0 +1,34 @@
+ console.log(r));'
);
echo '
';
foreach ( $enable as $module => $r ) {
- $conf = (float) $r['confidence'];
- $bar_w = (int) round( $conf * 100 );
- $color = $conf >= 0.7 ? '#46b450' : ( $conf >= 0.5 ? '#dba617' : '#c3c4c7' );
+ $conf = (float) $r['confidence'];
+ $bar_w = (int) round( $conf * 100 );
+ $color = $conf >= 0.7 ? '#46b450' : ( $conf >= 0.5 ? '#dba617' : '#c3c4c7' );
printf(
'%s | | ',
esc_html( $module ),
diff --git a/admin/class-tmdo-dashboard-widget.php b/admin/class-tmdo-dashboard-widget.php
index 1be472b..30a46e3 100644
--- a/admin/class-tmdo-dashboard-widget.php
+++ b/admin/class-tmdo-dashboard-widget.php
@@ -1,7 +1,4 @@
'WPDO_API',
- 'TMDO_Schema_Registry' => 'WPDO_Schema_Registry',
- 'TMDO_Entity_Registry' => 'WPDO_Entity_Registry',
- 'TMDO_Custom_Table_Registry' => 'WPDO_Custom_Table_Registry',
- 'TMDO_Feature_Flags' => 'WPDO_Feature_Flags',
- 'TMDO_DB' => 'WPDO_DB',
- 'TMDO_Crypto' => 'WPDO_Crypto',
- 'TMDO_Logger' => 'WPDO_Logger',
- 'TMDO_Capability' => 'WPDO_Capability',
- 'TMDO_Safe_Unserialize' => 'WPDO_Safe_Unserialize',
+ 'TMDO_API' => 'WPDO_API',
+ 'TMDO_Schema_Registry' => 'WPDO_Schema_Registry',
+ 'TMDO_Entity_Registry' => 'WPDO_Entity_Registry',
+ 'TMDO_Custom_Table_Registry' => 'WPDO_Custom_Table_Registry',
+ 'TMDO_Feature_Flags' => 'WPDO_Feature_Flags',
+ 'TMDO_DB' => 'WPDO_DB',
+ 'TMDO_Crypto' => 'WPDO_Crypto',
+ 'TMDO_Logger' => 'WPDO_Logger',
+ 'TMDO_Capability' => 'WPDO_Capability',
+ 'TMDO_Safe_Unserialize' => 'WPDO_Safe_Unserialize',
// Engine / Migration / Adapters(second-tier,部分 sister plugin 已直接呼叫)
- 'TMDO_Hook_Bus' => 'WPDO_Hook_Bus',
- 'TMDO_Mode_Manager' => 'WPDO_Mode_Manager',
- 'TMDO_Migration_Engine' => 'WPDO_Migration_Engine',
- 'TMDO_Migration_Orchestrator' => 'WPDO_Migration_Orchestrator',
- 'TMDO_Entity_Migration_Engine' => 'WPDO_Entity_Migration_Engine',
- 'TMDO_Entity_Health' => 'WPDO_Entity_Health',
- 'TMDO_Schema_Manager' => 'WPDO_Schema_Manager',
- 'TMDO_Sync_Bridge' => 'WPDO_Sync_Bridge',
- 'TMDO_Query_Router' => 'WPDO_Query_Router',
- 'TMDO_Post_Query_Router' => 'WPDO_Post_Query_Router',
- 'TMDO_Hook_Bus_Bridge' => 'WPDO_Hook_Bus_Bridge',
- 'TMDO_Conflict_Monitor' => 'WPDO_Conflict_Monitor',
- 'TMDO_Compatibility' => 'WPDO_Compatibility',
- 'TMDO_Installer' => 'WPDO_Installer',
- 'TMDO_Cache_Layer' => 'WPDO_Cache_Layer',
- 'TMDO_Zone_Classifier' => 'WPDO_Zone_Classifier',
- 'TMDO_Core' => 'WPDO_Core',
- 'TMDO_REST_API' => 'WPDO_REST_API',
- 'TMDO_Snapshot_Manager' => 'WPDO_Snapshot_Manager',
- 'TMDO_Snapshot_Writer' => 'WPDO_Snapshot_Writer',
- 'TMDO_Snapshot_Reader' => 'WPDO_Snapshot_Reader',
- 'TMDO_Snapshot_Pruner' => 'WPDO_Snapshot_Pruner',
- 'TMDO_FSM_Guard' => 'WPDO_FSM_Guard',
- 'TMDO_Site_Health' => 'WPDO_Site_Health',
- 'TMDO_Health_Cron' => 'WPDO_Health_Cron',
- 'TMDO_Email_Notifier' => 'WPDO_Email_Notifier',
- 'TMDO_Slack_Notifier' => 'WPDO_Slack_Notifier',
- 'TMDO_Discord_Notifier' => 'WPDO_Discord_Notifier',
- 'TMDO_Telegram_Notifier' => 'WPDO_Telegram_Notifier',
- 'TMDO_Monthly_Summary' => 'WPDO_Monthly_Summary',
- 'TMDO_Site_Metrics_Collector' => 'WPDO_Site_Metrics_Collector',
- 'TMDO_FSM_Advisor' => 'WPDO_FSM_Advisor',
- 'TMDO_Module_Detector' => 'WPDO_Module_Detector',
- 'TMDO_FSM_Automator' => 'WPDO_FSM_Automator',
- 'TMDO_Module_Rules' => 'WPDO_Module_Rules',
- 'TMDO_CSV_Writer' => 'WPDO_CSV_Writer',
- 'TMDO_Export' => 'WPDO_Export',
- 'TMDO_CLI' => 'WPDO_CLI',
- 'TMDO_CLI_V2' => 'WPDO_CLI_V2',
- 'TMDO_CLI_Member' => 'WPDO_CLI_Member',
- 'TMDO_CLI_Post' => 'WPDO_CLI_Post',
- 'TMDO_CLI_Term_Comment' => 'WPDO_CLI_Term_Comment',
- 'TMDO_Member_Fields' => 'WPDO_Member_Fields',
- 'TMDO_Post_Fields' => 'WPDO_Post_Fields',
- 'TMDO_Points_Manager' => 'WPDO_Points_Manager',
- 'TMDO_Demo_Entity_Counter' => 'WPDO_Demo_Entity_Counter',
- 'TMDO_Postmeta_Cleaner' => 'WPDO_Postmeta_Cleaner',
- 'TMDO_Termmeta_Cleaner' => 'WPDO_Termmeta_Cleaner',
- 'TMDO_Commentmeta_Cleaner' => 'WPDO_Commentmeta_Cleaner',
- 'TMDO_Post_Stress_Tester' => 'WPDO_Post_Stress_Tester',
- 'TMDO_User_Stress_Tester' => 'WPDO_User_Stress_Tester',
- 'TMDO_Term_Stress_Tester' => 'WPDO_Term_Stress_Tester',
- 'TMDO_Comment_Stress_Tester' => 'WPDO_Comment_Stress_Tester',
- 'TMDO_Post_Shadow_Verifier' => 'WPDO_Post_Shadow_Verifier',
+ 'TMDO_Hook_Bus' => 'WPDO_Hook_Bus',
+ 'TMDO_Mode_Manager' => 'WPDO_Mode_Manager',
+ 'TMDO_Migration_Engine' => 'WPDO_Migration_Engine',
+ 'TMDO_Migration_Orchestrator' => 'WPDO_Migration_Orchestrator',
+ 'TMDO_Entity_Migration_Engine' => 'WPDO_Entity_Migration_Engine',
+ 'TMDO_Entity_Health' => 'WPDO_Entity_Health',
+ 'TMDO_Schema_Manager' => 'WPDO_Schema_Manager',
+ 'TMDO_Sync_Bridge' => 'WPDO_Sync_Bridge',
+ 'TMDO_Query_Router' => 'WPDO_Query_Router',
+ 'TMDO_Post_Query_Router' => 'WPDO_Post_Query_Router',
+ 'TMDO_Hook_Bus_Bridge' => 'WPDO_Hook_Bus_Bridge',
+ 'TMDO_Conflict_Monitor' => 'WPDO_Conflict_Monitor',
+ 'TMDO_Compatibility' => 'WPDO_Compatibility',
+ 'TMDO_Installer' => 'WPDO_Installer',
+ 'TMDO_Cache_Layer' => 'WPDO_Cache_Layer',
+ 'TMDO_Zone_Classifier' => 'WPDO_Zone_Classifier',
+ 'TMDO_Core' => 'WPDO_Core',
+ 'TMDO_REST_API' => 'WPDO_REST_API',
+ 'TMDO_Snapshot_Manager' => 'WPDO_Snapshot_Manager',
+ 'TMDO_Snapshot_Writer' => 'WPDO_Snapshot_Writer',
+ 'TMDO_Snapshot_Reader' => 'WPDO_Snapshot_Reader',
+ 'TMDO_Snapshot_Pruner' => 'WPDO_Snapshot_Pruner',
+ 'TMDO_FSM_Guard' => 'WPDO_FSM_Guard',
+ 'TMDO_Site_Health' => 'WPDO_Site_Health',
+ 'TMDO_Health_Cron' => 'WPDO_Health_Cron',
+ 'TMDO_Email_Notifier' => 'WPDO_Email_Notifier',
+ 'TMDO_Slack_Notifier' => 'WPDO_Slack_Notifier',
+ 'TMDO_Discord_Notifier' => 'WPDO_Discord_Notifier',
+ 'TMDO_Telegram_Notifier' => 'WPDO_Telegram_Notifier',
+ 'TMDO_Monthly_Summary' => 'WPDO_Monthly_Summary',
+ 'TMDO_Site_Metrics_Collector' => 'WPDO_Site_Metrics_Collector',
+ 'TMDO_FSM_Advisor' => 'WPDO_FSM_Advisor',
+ 'TMDO_Module_Detector' => 'WPDO_Module_Detector',
+ 'TMDO_FSM_Automator' => 'WPDO_FSM_Automator',
+ 'TMDO_Module_Rules' => 'WPDO_Module_Rules',
+ 'TMDO_CSV_Writer' => 'WPDO_CSV_Writer',
+ 'TMDO_Export' => 'WPDO_Export',
+ 'TMDO_CLI' => 'WPDO_CLI',
+ 'TMDO_CLI_V2' => 'WPDO_CLI_V2',
+ 'TMDO_CLI_Member' => 'WPDO_CLI_Member',
+ 'TMDO_CLI_Post' => 'WPDO_CLI_Post',
+ 'TMDO_CLI_Term_Comment' => 'WPDO_CLI_Term_Comment',
+ 'TMDO_Member_Fields' => 'WPDO_Member_Fields',
+ 'TMDO_Post_Fields' => 'WPDO_Post_Fields',
+ 'TMDO_Points_Manager' => 'WPDO_Points_Manager',
+ 'TMDO_Demo_Entity_Counter' => 'WPDO_Demo_Entity_Counter',
+ 'TMDO_Postmeta_Cleaner' => 'WPDO_Postmeta_Cleaner',
+ 'TMDO_Termmeta_Cleaner' => 'WPDO_Termmeta_Cleaner',
+ 'TMDO_Commentmeta_Cleaner' => 'WPDO_Commentmeta_Cleaner',
+ 'TMDO_Post_Stress_Tester' => 'WPDO_Post_Stress_Tester',
+ 'TMDO_User_Stress_Tester' => 'WPDO_User_Stress_Tester',
+ 'TMDO_Term_Stress_Tester' => 'WPDO_Term_Stress_Tester',
+ 'TMDO_Comment_Stress_Tester' => 'WPDO_Comment_Stress_Tester',
+ 'TMDO_Post_Shadow_Verifier' => 'WPDO_Post_Shadow_Verifier',
'TMDO_Term_Comment_Shadow_Verifier' => 'WPDO_Term_Comment_Shadow_Verifier',
- 'TMDO_Term_Comment_Backfill' => 'WPDO_Term_Comment_Backfill',
- 'TMDO_Term_Comment_Misc_Bucket' => 'WPDO_Term_Comment_Misc_Bucket',
- 'TMDO_Term_Comment_Garbage_Filter' => 'WPDO_Term_Comment_Garbage_Filter',
- 'TMDO_Setup_Wizard' => 'WPDO_Setup_Wizard',
- 'TMDO_Dashboard_Widget' => 'WPDO_Dashboard_Widget',
- 'TMDO_Help_Tabs' => 'WPDO_Help_Tabs',
- 'TMDO_Admin' => 'WPDO_Admin',
- 'TMDO_V2_Upgrader' => 'WPDO_V2_Upgrader',
- 'TMDO_SQLite_Compat' => 'WPDO_SQLite_Compat',
- 'TMDO_Type_Caster' => 'WPDO_Type_Caster',
- 'TMDO_Audit_Logger' => 'WPDO_Audit_Logger',
- 'TMDO_Shadow_Diff_Logger' => 'WPDO_Shadow_Diff_Logger',
- 'TMDO_Conflict_Detector' => 'WPDO_Conflict_Detector',
- 'TMDO_Cache_Orchestrator' => 'WPDO_Cache_Orchestrator',
- 'TMDO_Query_Compiler' => 'WPDO_Query_Compiler',
- 'TMDO_Auto_Promoter' => 'WPDO_Auto_Promoter',
- 'TMDO_Adapter_Post' => 'WPDO_Adapter_Post',
- 'TMDO_Adapter_User' => 'WPDO_Adapter_User',
- 'TMDO_Adapter_Term' => 'WPDO_Adapter_Term',
- 'TMDO_Adapter_Comment' => 'WPDO_Adapter_Comment',
- 'TMDO_Options_Manager' => 'WPDO_Options_Manager',
- 'TMDO_Hot_Migration' => 'WPDO_Hot_Migration',
- 'TMDO_Warm_Migration' => 'WPDO_Warm_Migration',
- 'TMDO_Cold_Migration' => 'WPDO_Cold_Migration',
- 'TMDO_Archive_Migration' => 'WPDO_Archive_Migration',
- 'TMDO_Migration_Base' => 'WPDO_Migration_Base',
- 'TMDO_Post_Migration' => 'WPDO_Post_Migration',
- 'TMDO_Zone_Hot' => 'WPDO_Zone_Hot',
- 'TMDO_Zone_Warm' => 'WPDO_Zone_Warm',
- 'TMDO_Zone_Cold' => 'WPDO_Zone_Cold',
- 'TMDO_Zone_Router' => 'WPDO_Zone_Router',
- 'TMDO_Routing_Predicate' => 'WPDO_Routing_Predicate',
- 'TMDO_Migration_Phase_Base' => 'WPDO_Migration_Phase_Base',
- 'TMDO_Phase_Diagnose' => 'WPDO_Phase_Diagnose',
- 'TMDO_Phase_Backup' => 'WPDO_Phase_Backup',
- 'TMDO_Phase_Demote' => 'WPDO_Phase_Demote',
- 'TMDO_Phase_Install_Schema' => 'WPDO_Phase_Install_Schema',
- 'TMDO_Phase_Backfill_Bulk' => 'WPDO_Phase_Backfill_Bulk',
- 'TMDO_Phase_Backfill_Unserialize' => 'WPDO_Phase_Backfill_Unserialize',
- 'TMDO_Phase_Promote_Shadow' => 'WPDO_Phase_Promote_Shadow',
- 'TMDO_Phase_Verify_Sample' => 'WPDO_Phase_Verify_Sample',
- 'TMDO_Phase_Promote_Aeav' => 'WPDO_Phase_Promote_Aeav',
- 'TMDO_Phase_Cleanup' => 'WPDO_Phase_Cleanup',
- 'TMDO_Phase_Completed' => 'WPDO_Phase_Completed',
- 'TMDO_Zone_Archive' => 'WPDO_Zone_Archive',
- 'TMDO_Interceptor_Base' => 'WPDO_Interceptor_Base',
- 'TMDO_Standard_Post_Interceptor' => 'WPDO_Standard_Post_Interceptor',
- 'TMDO_Query_Interceptor_Base' => 'WPDO_Query_Interceptor_Base',
- 'TMDO_Abstract_Notifier' => 'WPDO_Abstract_Notifier',
+ 'TMDO_Term_Comment_Backfill' => 'WPDO_Term_Comment_Backfill',
+ 'TMDO_Term_Comment_Misc_Bucket' => 'WPDO_Term_Comment_Misc_Bucket',
+ 'TMDO_Term_Comment_Garbage_Filter' => 'WPDO_Term_Comment_Garbage_Filter',
+ 'TMDO_Setup_Wizard' => 'WPDO_Setup_Wizard',
+ 'TMDO_Dashboard_Widget' => 'WPDO_Dashboard_Widget',
+ 'TMDO_Help_Tabs' => 'WPDO_Help_Tabs',
+ 'TMDO_Admin' => 'WPDO_Admin',
+ 'TMDO_V2_Upgrader' => 'WPDO_V2_Upgrader',
+ 'TMDO_SQLite_Compat' => 'WPDO_SQLite_Compat',
+ 'TMDO_Type_Caster' => 'WPDO_Type_Caster',
+ 'TMDO_Audit_Logger' => 'WPDO_Audit_Logger',
+ 'TMDO_Shadow_Diff_Logger' => 'WPDO_Shadow_Diff_Logger',
+ 'TMDO_Conflict_Detector' => 'WPDO_Conflict_Detector',
+ 'TMDO_Cache_Orchestrator' => 'WPDO_Cache_Orchestrator',
+ 'TMDO_Query_Compiler' => 'WPDO_Query_Compiler',
+ 'TMDO_Auto_Promoter' => 'WPDO_Auto_Promoter',
+ 'TMDO_Adapter_Post' => 'WPDO_Adapter_Post',
+ 'TMDO_Adapter_User' => 'WPDO_Adapter_User',
+ 'TMDO_Adapter_Term' => 'WPDO_Adapter_Term',
+ 'TMDO_Adapter_Comment' => 'WPDO_Adapter_Comment',
+ 'TMDO_Options_Manager' => 'WPDO_Options_Manager',
+ 'TMDO_Hot_Migration' => 'WPDO_Hot_Migration',
+ 'TMDO_Warm_Migration' => 'WPDO_Warm_Migration',
+ 'TMDO_Cold_Migration' => 'WPDO_Cold_Migration',
+ 'TMDO_Archive_Migration' => 'WPDO_Archive_Migration',
+ 'TMDO_Migration_Base' => 'WPDO_Migration_Base',
+ 'TMDO_Post_Migration' => 'WPDO_Post_Migration',
+ 'TMDO_Zone_Hot' => 'WPDO_Zone_Hot',
+ 'TMDO_Zone_Warm' => 'WPDO_Zone_Warm',
+ 'TMDO_Zone_Cold' => 'WPDO_Zone_Cold',
+ 'TMDO_Zone_Router' => 'WPDO_Zone_Router',
+ 'TMDO_Routing_Predicate' => 'WPDO_Routing_Predicate',
+ 'TMDO_Migration_Phase_Base' => 'WPDO_Migration_Phase_Base',
+ 'TMDO_Phase_Diagnose' => 'WPDO_Phase_Diagnose',
+ 'TMDO_Phase_Backup' => 'WPDO_Phase_Backup',
+ 'TMDO_Phase_Demote' => 'WPDO_Phase_Demote',
+ 'TMDO_Phase_Install_Schema' => 'WPDO_Phase_Install_Schema',
+ 'TMDO_Phase_Backfill_Bulk' => 'WPDO_Phase_Backfill_Bulk',
+ 'TMDO_Phase_Backfill_Unserialize' => 'WPDO_Phase_Backfill_Unserialize',
+ 'TMDO_Phase_Promote_Shadow' => 'WPDO_Phase_Promote_Shadow',
+ 'TMDO_Phase_Verify_Sample' => 'WPDO_Phase_Verify_Sample',
+ 'TMDO_Phase_Promote_Aeav' => 'WPDO_Phase_Promote_Aeav',
+ 'TMDO_Phase_Cleanup' => 'WPDO_Phase_Cleanup',
+ 'TMDO_Phase_Completed' => 'WPDO_Phase_Completed',
+ 'TMDO_Zone_Archive' => 'WPDO_Zone_Archive',
+ 'TMDO_Interceptor_Base' => 'WPDO_Interceptor_Base',
+ 'TMDO_Standard_Post_Interceptor' => 'WPDO_Standard_Post_Interceptor',
+ 'TMDO_Query_Interceptor_Base' => 'WPDO_Query_Interceptor_Base',
+ 'TMDO_Abstract_Notifier' => 'WPDO_Abstract_Notifier',
);
foreach ( $tmdo_class_aliases as $tmdo_class => $wpdo_alias ) {
diff --git a/includes/class-tmdo-comment-stress-tester.php b/includes/class-tmdo-comment-stress-tester.php
index 4ee7abf..5f9f49a 100644
--- a/includes/class-tmdo-comment-stress-tester.php
+++ b/includes/class-tmdo-comment-stress-tester.php
@@ -1,7 +1,4 @@
v2 legacy post meta migration
/**
* TMDO_Post_Migration — Post entity migration core (v2.9.3).
*
@@ -35,6 +32,10 @@ declare(strict_types=1);
* @since 2.9.3
*/
+// phpcs:ignore WPDO.AntiEAV -- platform migration tool: WPDO v1->v2 legacy post meta migration
+
+declare(strict_types=1);
+
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
diff --git a/includes/trait-tmdo-anti-eav-aware.php b/includes/trait-tmdo-anti-eav-aware.php
index 5c41300..fce975f 100644
--- a/includes/trait-tmdo-anti-eav-aware.php
+++ b/includes/trait-tmdo-anti-eav-aware.php
@@ -31,183 +31,183 @@ if ( ! defined( 'ABSPATH' ) ) {
// the same trait body in memory.
if ( ! trait_exists( 'TMDO_Anti_EAV_Aware' ) ) {
-trait TMDO_Anti_EAV_Aware {
+ trait TMDO_Anti_EAV_Aware {
- /**
- * Plugin slug used as provider identifier when registering fields/tables.
- *
- * Partner plugins SHOULD override this with their canonical slug
- * (e.g. 'tmos-core', 'tmos-events'). Default returns lowercased class name
- * for backward compatibility with older partner plugins that didn't define
- * a slug.
- */
- protected function plugin_slug(): string {
- return strtolower( static::class );
- }
-
- /**
- * Attach the three `wpdo_register_*` hooks to the corresponding
- * `on_register_*` methods. Call once during plugin boot.
- *
- * Idempotent — safe to call multiple times because WP de-dupes
- * identical (action, callback) pairs.
- */
- protected function bind_anti_eav_hooks(): void {
- add_action( 'wpdo_register_fields', array( $this, 'on_register_fields' ), 10, 1 );
- add_action( 'wpdo_register_custom_tables', array( $this, 'on_register_custom_tables' ), 10, 1 );
- add_action( 'wpdo_register_entity_fields', array( $this, 'on_register_entity_fields' ), 10, 0 );
- }
-
- // ── Hook handlers (override in subclass) ─────────────────────────────────
-
- /**
- * Register hot/warm/cold/archive zone field mappings.
- *
- * Override in subclass and call `$this->register_field( $registry, [...] )`
- * for each post-meta key the plugin manages.
- *
- * @param TMDO_Schema_Registry $registry The shared field registry.
- */
- public function on_register_fields( TMDO_Schema_Registry $registry ): void {
- // Default no-op. Override in subclass.
- }
-
- /**
- * Register custom tables owned by this plugin.
- *
- * Override in subclass and call `$this->register_custom_table( $r, [...] )`
- * for each table.
- *
- * @param TMDO_Custom_Table_Registry $r The shared custom-table registry.
- */
- public function on_register_custom_tables( TMDO_Custom_Table_Registry $r ): void {
- // Default no-op. Override in subclass.
- }
-
- /**
- * Register entity field groups (user / term / comment / post metadata).
- *
- * Override in subclass and call `$this->register_entity_fields( $type, $group, [...] )`
- * for each logical field group the plugin contributes.
- */
- public function on_register_entity_fields(): void {
- // Default no-op. Override in subclass.
- }
-
- // ── Sugar wrappers around WPDO public API ────────────────────────────────
-
- /**
- * Register a single zone field via TMDO_Schema_Registry.
- *
- * @param TMDO_Schema_Registry $registry Provided by the `wpdo_register_fields` hook.
- * @param array $field_def Field definition (post_type, meta_key, zone, ...).
- */
- protected function register_field( TMDO_Schema_Registry $registry, array $field_def ): void {
- $registry->register( $this->plugin_slug(), $field_def );
- }
-
- /**
- * Register a custom table via TMDO_Custom_Table_Registry.
- *
- * @param TMDO_Custom_Table_Registry $r Provided by the `wpdo_register_custom_tables` hook.
- * @param array $table_def Table definition (table_name, primary_key, expected_columns, indexes, ...).
- */
- protected function register_custom_table( TMDO_Custom_Table_Registry $r, array $table_def ): void {
- $r->register( $this->plugin_slug(), $table_def );
- }
-
- /**
- * Register an entity field group via TMDO_Entity_Registry.
- *
- * @param string $entity_type 'post' | 'user' | 'term' | 'comment'.
- * @param string $group_name Logical group name (e.g. 'tmos_vendor', 'tmos_audience').
- * @param array> $fields Field definitions.
- */
- protected function register_entity_fields( string $entity_type, string $group_name, array $fields ): bool {
- if ( ! class_exists( 'TMDO_Entity_Registry' ) ) {
- return false;
+ /**
+ * Plugin slug used as provider identifier when registering fields/tables.
+ *
+ * Partner plugins SHOULD override this with their canonical slug
+ * (e.g. 'tmos-core', 'tmos-events'). Default returns lowercased class name
+ * for backward compatibility with older partner plugins that didn't define
+ * a slug.
+ */
+ protected function plugin_slug(): string {
+ return strtolower( static::class );
+ }
+
+ /**
+ * Attach the three `wpdo_register_*` hooks to the corresponding
+ * `on_register_*` methods. Call once during plugin boot.
+ *
+ * Idempotent — safe to call multiple times because WP de-dupes
+ * identical (action, callback) pairs.
+ */
+ protected function bind_anti_eav_hooks(): void {
+ add_action( 'wpdo_register_fields', array( $this, 'on_register_fields' ), 10, 1 );
+ add_action( 'wpdo_register_custom_tables', array( $this, 'on_register_custom_tables' ), 10, 1 );
+ add_action( 'wpdo_register_entity_fields', array( $this, 'on_register_entity_fields' ), 10, 0 );
+ }
+
+ // ── Hook handlers (override in subclass) ─────────────────────────────────
+
+ /**
+ * Register hot/warm/cold/archive zone field mappings.
+ *
+ * Override in subclass and call `$this->register_field( $registry, [...] )`
+ * for each post-meta key the plugin manages.
+ *
+ * @param TMDO_Schema_Registry $registry The shared field registry.
+ */
+ public function on_register_fields( TMDO_Schema_Registry $registry ): void {
+ // Default no-op. Override in subclass.
+ }
+
+ /**
+ * Register custom tables owned by this plugin.
+ *
+ * Override in subclass and call `$this->register_custom_table( $r, [...] )`
+ * for each table.
+ *
+ * @param TMDO_Custom_Table_Registry $r The shared custom-table registry.
+ */
+ public function on_register_custom_tables( TMDO_Custom_Table_Registry $r ): void {
+ // Default no-op. Override in subclass.
+ }
+
+ /**
+ * Register entity field groups (user / term / comment / post metadata).
+ *
+ * Override in subclass and call `$this->register_entity_fields( $type, $group, [...] )`
+ * for each logical field group the plugin contributes.
+ */
+ public function on_register_entity_fields(): void {
+ // Default no-op. Override in subclass.
+ }
+
+ // ── Sugar wrappers around WPDO public API ────────────────────────────────
+
+ /**
+ * Register a single zone field via TMDO_Schema_Registry.
+ *
+ * @param TMDO_Schema_Registry $registry Provided by the `wpdo_register_fields` hook.
+ * @param array $field_def Field definition (post_type, meta_key, zone, ...).
+ */
+ protected function register_field( TMDO_Schema_Registry $registry, array $field_def ): void {
+ $registry->register( $this->plugin_slug(), $field_def );
+ }
+
+ /**
+ * Register a custom table via TMDO_Custom_Table_Registry.
+ *
+ * @param TMDO_Custom_Table_Registry $r Provided by the `wpdo_register_custom_tables` hook.
+ * @param array $table_def Table definition (table_name, primary_key, expected_columns, indexes, ...).
+ */
+ protected function register_custom_table( TMDO_Custom_Table_Registry $r, array $table_def ): void {
+ $r->register( $this->plugin_slug(), $table_def );
+ }
+
+ /**
+ * Register an entity field group via TMDO_Entity_Registry.
+ *
+ * @param string $entity_type 'post' | 'user' | 'term' | 'comment'.
+ * @param string $group_name Logical group name (e.g. 'tmos_vendor', 'tmos_audience').
+ * @param array> $fields Field definitions.
+ */
+ protected function register_entity_fields( string $entity_type, string $group_name, array $fields ): bool {
+ if ( ! class_exists( 'TMDO_Entity_Registry' ) ) {
+ return false;
+ }
+ return TMDO_Entity_Registry::register_group( $entity_type, $group_name, $fields );
+ }
+
+ // ── Read/write convenience wrappers ──────────────────────────────────────
+
+ /**
+ * Read an entity field via the TMDO_API facade.
+ *
+ * @param string $entity_type 'post' | 'user' | 'term' | 'comment'.
+ * @param int $entity_id Entity primary id.
+ * @param string $key Meta key.
+ * @param bool $single Return single value (default true).
+ */
+ protected function get_field( string $entity_type, int $entity_id, string $key, bool $single = true ): mixed {
+ return TMDO_API::get_entity( $entity_type, $entity_id, $key, $single );
+ }
+
+ /**
+ * Write an entity field via the TMDO_API facade.
+ *
+ * @param string $entity_type 'post' | 'user' | 'term' | 'comment'.
+ * @param int $entity_id Entity primary id.
+ * @param string $key Meta key.
+ * @param mixed $value Meta value.
+ *
+ * @return bool|int False on failure, otherwise the meta id (add) or true (update).
+ */
+ protected function set_field( string $entity_type, int $entity_id, string $key, mixed $value ): bool|int {
+ return TMDO_API::set_entity( $entity_type, $entity_id, $key, $value );
+ }
+
+ /**
+ * Subscribe to write events on a specific meta key.
+ *
+ * Convenience wrapper around `add_action('wpdo_after_write', ...)` that
+ * filters callbacks to the plugin's own keys via prefix match.
+ *
+ * @param string $key_prefix Meta-key prefix to react on (e.g. 'tmos_vendor_').
+ * @param callable $callback `function(string $entity_type, int $entity_id, string $key, mixed $value, bool $ok, string $op, mixed $before)`.
+ * @param int $priority WordPress action priority (default 10).
+ */
+ protected function on_after_write( string $key_prefix, callable $callback, int $priority = 10 ): void {
+ add_action(
+ 'wpdo_after_write',
+ static function ( $entity_type, $entity_id, $meta_key, $meta_value, $ok, $op, $before ) use ( $key_prefix, $callback ): void {
+ if ( is_string( $meta_key ) && str_starts_with( $meta_key, $key_prefix ) ) {
+ $callback( $entity_type, $entity_id, $meta_key, $meta_value, $ok, $op, $before );
+ }
+ },
+ $priority,
+ 7
+ );
+ }
+
+ // ── Backward-compat (legacy 2meet-* mu-plugin trait surface) ─────────────
+ // The pre-v2.17.0 mu-plugin trait stub exposed two abstract static methods
+ // (`register_wpdo_fields`, `register_custom_tables`). Older partner plugins
+ // (e.g. 2meet-inquiries) implemented those static methods. The promoted
+ // trait keeps the names with non-abstract no-op defaults so existing
+ // classes continue to work without modification.
+
+ /**
+ * Legacy entry point for plugins that registered fields via a static method
+ * before v2.17.0. New partner plugins should override `on_register_fields()`
+ * (instance method) instead.
+ *
+ * @deprecated 2.17.0 Use instance method `on_register_fields()` + `bind_anti_eav_hooks()` instead.
+ */
+ public static function register_wpdo_fields(): void {
+ // No-op default. Legacy classes overrode this and called the registry directly.
+ }
+
+ /**
+ * Legacy entry point for plugins that registered custom tables via a static
+ * method before v2.17.0.
+ *
+ * @deprecated 2.17.0 Use instance method `on_register_custom_tables()` + `bind_anti_eav_hooks()` instead.
+ */
+ public static function register_custom_tables(): void {
+ // No-op default.
}
- return TMDO_Entity_Registry::register_group( $entity_type, $group_name, $fields );
}
- // ── Read/write convenience wrappers ──────────────────────────────────────
-
- /**
- * Read an entity field via the TMDO_API facade.
- *
- * @param string $entity_type 'post' | 'user' | 'term' | 'comment'.
- * @param int $entity_id Entity primary id.
- * @param string $key Meta key.
- * @param bool $single Return single value (default true).
- */
- protected function get_field( string $entity_type, int $entity_id, string $key, bool $single = true ): mixed {
- return TMDO_API::get_entity( $entity_type, $entity_id, $key, $single );
- }
-
- /**
- * Write an entity field via the TMDO_API facade.
- *
- * @param string $entity_type 'post' | 'user' | 'term' | 'comment'.
- * @param int $entity_id Entity primary id.
- * @param string $key Meta key.
- * @param mixed $value Meta value.
- *
- * @return bool|int False on failure, otherwise the meta id (add) or true (update).
- */
- protected function set_field( string $entity_type, int $entity_id, string $key, mixed $value ): bool|int {
- return TMDO_API::set_entity( $entity_type, $entity_id, $key, $value );
- }
-
- /**
- * Subscribe to write events on a specific meta key.
- *
- * Convenience wrapper around `add_action('wpdo_after_write', ...)` that
- * filters callbacks to the plugin's own keys via prefix match.
- *
- * @param string $key_prefix Meta-key prefix to react on (e.g. 'tmos_vendor_').
- * @param callable $callback `function(string $entity_type, int $entity_id, string $key, mixed $value, bool $ok, string $op, mixed $before)`.
- * @param int $priority WordPress action priority (default 10).
- */
- protected function on_after_write( string $key_prefix, callable $callback, int $priority = 10 ): void {
- add_action(
- 'wpdo_after_write',
- static function ( $entity_type, $entity_id, $meta_key, $meta_value, $ok, $op, $before ) use ( $key_prefix, $callback ): void {
- if ( is_string( $meta_key ) && str_starts_with( $meta_key, $key_prefix ) ) {
- $callback( $entity_type, $entity_id, $meta_key, $meta_value, $ok, $op, $before );
- }
- },
- $priority,
- 7
- );
- }
-
- // ── Backward-compat (legacy 2meet-* mu-plugin trait surface) ─────────────
- // The pre-v2.17.0 mu-plugin trait stub exposed two abstract static methods
- // (`register_wpdo_fields`, `register_custom_tables`). Older partner plugins
- // (e.g. 2meet-inquiries) implemented those static methods. The promoted
- // trait keeps the names with non-abstract no-op defaults so existing
- // classes continue to work without modification.
-
- /**
- * Legacy entry point for plugins that registered fields via a static method
- * before v2.17.0. New partner plugins should override `on_register_fields()`
- * (instance method) instead.
- *
- * @deprecated 2.17.0 Use instance method `on_register_fields()` + `bind_anti_eav_hooks()` instead.
- */
- public static function register_wpdo_fields(): void {
- // No-op default. Legacy classes overrode this and called the registry directly.
- }
-
- /**
- * Legacy entry point for plugins that registered custom tables via a static
- * method before v2.17.0.
- *
- * @deprecated 2.17.0 Use instance method `on_register_custom_tables()` + `bind_anti_eav_hooks()` instead.
- */
- public static function register_custom_tables(): void {
- // No-op default.
- }
-}
-
} // end if ( ! trait_exists )
diff --git a/phpcs.xml b/phpcs.xml
new file mode 100644
index 0000000..cff7241
--- /dev/null
+++ b/phpcs.xml
@@ -0,0 +1,245 @@
+
+
+ WPCS ruleset for WP Data Optimizer plugin.
+
+
+ .
+
+
+ */vendor/*
+ */tests/*
+ */back-compat/*
+ */node_modules/*
+
+ */admin/assets/*.js
+
+
+
+
+
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+
+
+
+
+ */includes/adapters/interface-entity-adapter.php
+ */includes/back-compat/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+
+ */includes/adapters/*
+ */includes/engine/*
+
+
+
+
+ */migration/phases/*
+
+
+
+ */migration/phases/*
+
+
+
+
+ */cli/*
+
+
+ */cli/*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
new file mode 100644
index 0000000..718a01a
--- /dev/null
+++ b/phpstan-baseline.neon
@@ -0,0 +1,3691 @@
+parameters:
+ ignoreErrors:
+ -
+ message: '#^Result of && is always false\.$#'
+ identifier: booleanAnd.alwaysFalse
+ count: 1
+ path: '2meet-data-optimizer.php'
+
+ -
+ message: '#^Strict comparison using \!\=\= between ''0\.1\.0'' and ''0\.1\.0'' will always evaluate to false\.$#'
+ identifier: notIdentical.alwaysFalse
+ count: 1
+ path: '2meet-data-optimizer.php'
+
+ -
+ message: '#^Access to constant VIEW_KEY on an unknown class TMDO_Listing_Stats\.$#'
+ identifier: class.notFound
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Call to static method can_import\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Call to static method is_imported\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Call to static method preview\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Call to static method run\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Method TMDO_Admin\:\:render_stress_benchmark\(\) has parameter \$bench with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Offset ''flush_support'' does not exist on array\{groups\: array, prefetch_support\: bool\}\.$#'
+ identifier: offsetAccess.notFound
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Parameter \#1 \$text of function esc_attr expects string, float given\.$#'
+ identifier: argument.type
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Parameter \#1 \$text of function esc_html expects string, float given\.$#'
+ identifier: argument.type
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Parameter \#1 \$text of function esc_html expects string, int given\.$#'
+ identifier: argument.type
+ count: 1
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Right side of && is always true\.$#'
+ identifier: booleanAnd.rightAlwaysTrue
+ count: 2
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Unreachable statement \- code above always terminates\.$#'
+ identifier: deadCode.unreachable
+ count: 2
+ path: admin/class-tmdo-admin.php
+
+ -
+ message: '#^Method TMDO_Dashboard_Widget\:\:compute_status\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-dashboard-widget.php
+
+ -
+ message: '#^Method TMDO_Dashboard_Widget\:\:traffic_light\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-dashboard-widget.php
+
+ -
+ message: '#^Method TMDO_Export\:\:respond\(\) has parameter \$headers with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-export.php
+
+ -
+ message: '#^Method TMDO_Export\:\:respond\(\) has parameter \$rows with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-export.php
+
+ -
+ message: '#^Method TMDO_Export\:\:respond_csv\(\) has parameter \$headers with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-export.php
+
+ -
+ message: '#^Method TMDO_Export\:\:respond_csv\(\) has parameter \$rows with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-export.php
+
+ -
+ message: '#^Method TMDO_Export\:\:respond_json\(\) has parameter \$rows with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: admin/class-tmdo-export.php
+
+ -
+ message: '#^Variable \$test_comment_count might not be defined\.$#'
+ identifier: variable.undefined
+ count: 4
+ path: admin/templates/comment-stress-test.php
+
+ -
+ message: '#^Variable \$diagnose might not be defined\.$#'
+ identifier: variable.undefined
+ count: 9
+ path: admin/templates/post-migration-wizard.php
+
+ -
+ message: '#^Variable \$garbage might not be defined\.$#'
+ identifier: variable.undefined
+ count: 5
+ path: admin/templates/post-migration-wizard.php
+
+ -
+ message: '#^Variable \$diagnose might not be defined\.$#'
+ identifier: variable.undefined
+ count: 3
+ path: admin/templates/post-stress-test.php
+
+ -
+ message: '#^Variable \$test_post_count might not be defined\.$#'
+ identifier: variable.undefined
+ count: 4
+ path: admin/templates/post-stress-test.php
+
+ -
+ message: '#^Variable \$taxonomies might not be defined\.$#'
+ identifier: variable.undefined
+ count: 1
+ path: admin/templates/term-stress-test.php
+
+ -
+ message: '#^Variable \$test_term_count might not be defined\.$#'
+ identifier: variable.undefined
+ count: 4
+ path: admin/templates/term-stress-test.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_audit\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_audit\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_backfill\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_backfill\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_cutover\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_cutover\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_force_logout\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_force_logout\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_points_check\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_points_check\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_shadow_report\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_shadow_report\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_sso_sync\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Method TMDO_CLI_Member\:\:member_sso_sync\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_audit''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_backfill''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_cutover''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_force_logout''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_points_check''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_shadow_report''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Member'', ''member_sso_sync''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-member.php
+
+ -
+ message: '#^Call to static method count_legacy_postmeta_rows\(\) on an unknown class TMDO_Hivepress_Transient_Filter\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Call to static method purge_legacy_postmeta_rows\(\) on an unknown class TMDO_Hivepress_Transient_Filter\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:cleanup_hp_transients\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:cleanup_hp_transients\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_benchmark\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_benchmark\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_cleanup\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_cleanup\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_cutover_legacy\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_cutover_legacy\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_diagnose\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_diagnose\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_migrate_group\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_migrate_group\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_shadow_report\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:post_shadow_report\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:postmeta_cleanup\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:postmeta_cleanup\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Post\:\:render_table\(\) has parameter \$counts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''cleanup_hp…''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''post_benchmark''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''post_cleanup''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''post_cutover_legacy''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''post_diagnose''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''post_migrate_group''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''post_shadow_report''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Post'', ''postmeta_cleanup''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Variable \$result might not be defined\.$#'
+ identifier: variable.undefined
+ count: 18
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Variable \$verify might not be defined\.$#'
+ identifier: variable.undefined
+ count: 5
+ path: cli/class-tmdo-cli-post.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:comment_promote_mode\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:comment_promote_mode\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:comment_stress_test\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:comment_stress_test\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:commentmeta_cleanup\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:commentmeta_cleanup\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:cst_cleanup\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:cst_start\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:promote_mode\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:promote_mode\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:render_comment_table\(\) has parameter \$counts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:render_term_table\(\) has parameter \$counts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_comment_backfill\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_comment_backfill\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_comment_diagnose\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_comment_diagnose\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_comment_shadow_report\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_comment_shadow_report\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_promote_mode\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:term_promote_mode\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:termmeta_cleanup\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_Term_Comment\:\:termmeta_cleanup\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''comment_promote_mode''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''comment_stress_test''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''commentmeta_cleanup''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''term_comment_shadow…''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''term_comment…''\} given\.$#'
+ identifier: argument.type
+ count: 4
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''term_promote_mode''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_Term…'', ''termmeta_cleanup''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-term-comment.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:bridge_set\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:bridge_set\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:bridge_status\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:bridge_status\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:conflict_scan\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:conflict_scan\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:crypto_migrate\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:crypto_migrate\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:crypto_status\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:crypto_status\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:lint\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:lint\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:mode_audit\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:mode_audit\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:mode_set\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:mode_set\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:shadow_disable\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:shadow_disable\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:shadow_enable\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:shadow_enable\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_create\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_create\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_list\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_list\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_prune\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_prune\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_restore\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_restore\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_verify\(\) has parameter \$args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Method TMDO_CLI_V2\:\:snapshot_verify\(\) has parameter \$assoc_args with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''bridge_set''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''bridge_status''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''conflict_scan''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''crypto_migrate''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''crypto_status''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''lint''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''mode_audit''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''mode_set''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''shadow_disable''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''shadow_enable''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''snapshot_create''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''snapshot_list''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''snapshot_prune''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''snapshot_restore''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callable of static method WP_CLI\:\:add_command\(\) expects \(callable\(\)\: mixed\)\|object\|string, array\{''TMDO_CLI_V2'', ''snapshot_verify''\} given\.$#'
+ identifier: argument.type
+ count: 2
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Parameter \#2 \$callback of function array_filter expects \(callable\(string\)\: bool\)\|null, ''strlen'' given\.$#'
+ identifier: argument.type
+ count: 1
+ path: cli/class-tmdo-cli-v2.php
+
+ -
+ message: '#^Access to constant VIEW_KEY on an unknown class TMDO_Listing_Stats\.$#'
+ identifier: class.notFound
+ count: 2
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to method finish\(\) on an unknown class cli\\progress\\Bar\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to method tick\(\) on an unknown class cli\\progress\\Bar\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to static method archive_expired_listings\(\) on an unknown class TMDO_Listing_Stats\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to static method can_import\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to static method is_imported\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to static method preview\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Call to static method run\(\) on an unknown class TMDO_HPCT_Import\.$#'
+ identifier: class.notFound
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Constant DB_NAME not found\.$#'
+ identifier: constant.notFound
+ count: 2
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:add_indexes\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:add_indexes\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:analyze\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:analyze\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:benchmark\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:benchmark\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:cleanup\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:cleanup\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:cutover\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:cutover\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:disable\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:disable\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:doctor\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:doctor\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:enable\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:enable\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:format_hpct_status\(\) has parameter \$compat with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:health_snapshot\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:health_snapshot\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:import_hpct\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:import_hpct\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:install\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:install\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:migrate\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:migrate\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:register_stub\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:register_stub\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:rest_test\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:rest_test\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:rollback\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:rollback\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:site_metrics\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:site_metrics\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:status\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:status\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:verify\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_CLI\:\:verify\(\) has parameter \$assoc_args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: cli/class-tmdo-cli.php
+
+ -
+ message: '#^Method TMDO_Adapter_Term\:\:extend_term_clauses\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/adapters/class-tmdo-adapter-term.php
+
+ -
+ message: '#^Method TMDO_Adapter_Term\:\:extend_term_clauses\(\) has parameter \$clauses with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/adapters/class-tmdo-adapter-term.php
+
+ -
+ message: '#^Method TMDO_Adapter_Term\:\:extend_term_clauses\(\) has parameter \$taxonomies with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/adapters/class-tmdo-adapter-term.php
+
+ -
+ message: '#^Method TMDO_Adapter_Term\:\:extend_term_clauses\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/adapters/class-tmdo-adapter-term.php
+
+ -
+ message: '#^Method TMDO_FSM_Advisor\:\:advise\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-advisor.php
+
+ -
+ message: '#^Method TMDO_FSM_Advisor\:\:advise_all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-advisor.php
+
+ -
+ message: '#^Method TMDO_FSM_Advisor\:\:shadow_diff_ratio\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-advisor.php
+
+ -
+ message: '#^Method TMDO_FSM_Advisor\:\:stub\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-advisor.php
+
+ -
+ message: '#^Method TMDO_FSM_Automator\:\:blacklist\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-automator.php
+
+ -
+ message: '#^Method TMDO_FSM_Automator\:\:interval_clear\(\) has parameter \$last_actions with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-automator.php
+
+ -
+ message: '#^Method TMDO_FSM_Automator\:\:last_actions\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-automator.php
+
+ -
+ message: '#^Method TMDO_FSM_Automator\:\:run\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-fsm-automator.php
+
+ -
+ message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:build\(\) has parameter \$blockers with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:build\(\) has parameter \$reasons with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:build\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:check_compat\(\) has parameter \$required with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:detect_all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:detect_one\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:get_actionable\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:get_cached\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Detector\:\:stub\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-detector.php
+
+ -
+ message: '#^Method TMDO_Module_Rules\:\:all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-rules.php
+
+ -
+ message: '#^Method TMDO_Module_Rules\:\:for_module\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/advisor/class-tmdo-module-rules.php
+
+ -
+ message: '#^Method TMDO_API\:\:query\(\) has parameter \$args with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-api.php
+
+ -
+ message: '#^Call to function class_exists\(\) with ''WPDO_Abstract…''\|''WPDO_Adapter_Comment''\|''WPDO_Adapter_Post''\|''WPDO_Adapter_Term''\|''WPDO_Adapter_User''\|''WPDO_Admin''\|''WPDO_API''\|''WPDO_Archive…''\|''WPDO_Audit_Logger''\|''WPDO_Auto_Promoter''\|''WPDO_Cache_Layer''\|''WPDO_Cache…''\|''WPDO_Capability''\|''WPDO_CLI''\|''WPDO_CLI_Member''\|''WPDO_CLI_Post''\|''WPDO_CLI_Term…''\|''WPDO_CLI_V2''\|''WPDO_Cold_Migration''\|''WPDO_Comment_Stress…''\|''WPDO_Commentmeta…''\|''WPDO_Compatibility''\|''WPDO_Conflict…''\|''WPDO_Core''\|''WPDO_Crypto''\|''WPDO_CSV_Writer''\|''WPDO_Custom_Table…''\|''WPDO_Dashboard…''\|''WPDO_DB''\|''WPDO_Demo_Entity…''\|''WPDO_Discord…''\|''WPDO_Email_Notifier''\|''WPDO_Entity_Health''\|''WPDO_Entity…''\|''WPDO_Entity_Registry''\|''WPDO_Export''\|''WPDO_Feature_Flags''\|''WPDO_FSM_Advisor''\|''WPDO_FSM_Automator''\|''WPDO_FSM_Guard''\|''WPDO_Health_Cron''\|''WPDO_Help_Tabs''\|''WPDO_Hook_Bus''\|''WPDO_Hook_Bus_Bridge''\|''WPDO_Hot_Migration''\|''WPDO_Installer''\|''WPDO_Interceptor…''\|''WPDO_Logger''\|''WPDO_Member_Fields''\|''WPDO_Migration_Base''\|''WPDO_Migration…''\|''WPDO_Mode_Manager''\|''WPDO_Module_Detector''\|''WPDO_Module_Rules''\|''WPDO_Monthly_Summary''\|''WPDO_Options_Manager''\|''WPDO_Phase_Backfill…''\|''WPDO_Phase_Backup''\|''WPDO_Phase_Cleanup''\|''WPDO_Phase_Completed''\|''WPDO_Phase_Demote''\|''WPDO_Phase_Diagnose''\|''WPDO_Phase_Install…''\|''WPDO_Phase_Promote…''\|''WPDO_Phase_Verify…''\|''WPDO_Points_Manager''\|''WPDO_Post_Fields''\|''WPDO_Post_Migration''\|''WPDO_Post_Query…''\|''WPDO_Post_Shadow…''\|''WPDO_Post_Stress…''\|''WPDO_Postmeta…''\|''WPDO_Query_Compiler''\|''WPDO_Query…''\|''WPDO_Query_Router''\|''WPDO_REST_API''\|''WPDO_Routing…''\|''WPDO_Safe…''\|''WPDO_Schema_Manager''\|''WPDO_Schema_Registry''\|''WPDO_Setup_Wizard''\|''WPDO_Shadow_Diff…''\|''WPDO_Site_Health''\|''WPDO_Site_Metrics…''\|''WPDO_Slack_Notifier''\|''WPDO_Snapshot…''\|''WPDO_Snapshot_Pruner''\|''WPDO_Snapshot_Reader''\|''WPDO_Snapshot_Writer''\|''WPDO_SQLite_Compat''\|''WPDO_Standard_Post…''\|''WPDO_Sync_Bridge''\|''WPDO_Telegram…''\|''WPDO_Term_Comment…''\|''WPDO_Term_Stress…''\|''WPDO_Termmeta…''\|''WPDO_Type_Caster''\|''WPDO_User_Stress…''\|''WPDO_V2_Upgrader''\|''WPDO_Warm_Migration''\|''WPDO_Zone_Archive''\|''WPDO_Zone_Classifier''\|''WPDO_Zone_Cold''\|''WPDO_Zone_Hot''\|''WPDO_Zone_Router''\|''WPDO_Zone_Warm'' and false will always evaluate to false\.$#'
+ identifier: function.impossibleType
+ count: 1
+ path: includes/class-tmdo-back-compat.php
+
+ -
+ message: '#^Method TMDO_Cache_Layer\:\:get_stats\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-cache-layer.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:cancel\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:compute_write_metrics\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:compute_write_metrics\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:finalize\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:get_progress\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:get_state\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:measure_db_sizes\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:measure_query_performance\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:run_benchmark\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:run_benchmark\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Comment_Stress_Tester\:\:start\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-comment-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Compatibility\:\:check\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-compatibility.php
+
+ -
+ message: '#^Property TMDO_Compatibility\:\:\$detected type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-compatibility.php
+
+ -
+ message: '#^Action callback returns array\ but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/class-tmdo-conflict-monitor.php
+
+ -
+ message: '#^Method TMDO_Conflict_Monitor\:\:get_all_conflicts\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-conflict-monitor.php
+
+ -
+ message: '#^Method TMDO_Conflict_Monitor\:\:persist_audit_summary\(\) has parameter \$conflicts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-conflict-monitor.php
+
+ -
+ message: '#^Method TMDO_Conflict_Monitor\:\:scan\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-conflict-monitor.php
+
+ -
+ message: '#^Action callback returns array but should not return anything\.$#'
+ identifier: return.void
+ count: 2
+ path: includes/class-tmdo-core.php
+
+ -
+ message: '#^Method TMDO_Core\:\:register_hivepress_defaults\(\) is unused\.$#'
+ identifier: method.unused
+ count: 1
+ path: includes/class-tmdo-core.php
+
+ -
+ message: '#^Constant AUTH_KEY not found\.$#'
+ identifier: constant.notFound
+ count: 1
+ path: includes/class-tmdo-crypto.php
+
+ -
+ message: '#^Constant SECURE_AUTH_SALT not found\.$#'
+ identifier: constant.notFound
+ count: 1
+ path: includes/class-tmdo-crypto.php
+
+ -
+ message: '#^Method TMDO_Custom_Table_Registry\:\:all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-custom-table-registry.php
+
+ -
+ message: '#^Method TMDO_Custom_Table_Registry\:\:for_post_type\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-custom-table-registry.php
+
+ -
+ message: '#^Method TMDO_Custom_Table_Registry\:\:for_provider\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-custom-table-registry.php
+
+ -
+ message: '#^Method TMDO_Custom_Table_Registry\:\:register\(\) has parameter \$config with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-custom-table-registry.php
+
+ -
+ message: '#^Property TMDO_Custom_Table_Registry\:\:\$registration_done is never read, only written\.$#'
+ identifier: property.onlyWritten
+ count: 1
+ path: includes/class-tmdo-custom-table-registry.php
+
+ -
+ message: '#^Property TMDO_Custom_Table_Registry\:\:\$tables type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 2
+ path: includes/class-tmdo-custom-table-registry.php
+
+ -
+ message: '#^Method TMDO_DB\:\:insert_ignore\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-db.php
+
+ -
+ message: '#^Method TMDO_DB\:\:insert_ignore\(\) has parameter \$format with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-db.php
+
+ -
+ message: '#^Method TMDO_DB\:\:upsert\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-db.php
+
+ -
+ message: '#^Method TMDO_DB\:\:upsert\(\) has parameter \$format with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-db.php
+
+ -
+ message: '#^Method TMDO_DB\:\:upsert\(\) has parameter \$update_columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-db.php
+
+ -
+ message: '#^Property TMDO_Feature_Flags\:\:\$cache type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-feature-flags.php
+
+ -
+ message: '#^Empty array passed to foreach\.$#'
+ identifier: foreach.emptyArray
+ count: 1
+ path: includes/class-tmdo-installer.php
+
+ -
+ message: '#^Method TMDO_Installer\:\:add_covering_indexes\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-installer.php
+
+ -
+ message: '#^Method TMDO_Installer\:\:create_hot_table\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-installer.php
+
+ -
+ message: '#^Method TMDO_Installer\:\:ensure_hot_columns\(\) has parameter \$expected_columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-installer.php
+
+ -
+ message: '#^Parameter \#4 \$autoload of function add_option expects bool\|null, string given\.$#'
+ identifier: argument.type
+ count: 1
+ path: includes/class-tmdo-installer.php
+
+ -
+ message: '#^Method TMDO_Logger\:\:debug\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-logger.php
+
+ -
+ message: '#^Method TMDO_Logger\:\:error\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-logger.php
+
+ -
+ message: '#^Method TMDO_Logger\:\:get_recent\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-logger.php
+
+ -
+ message: '#^Method TMDO_Logger\:\:info\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-logger.php
+
+ -
+ message: '#^Method TMDO_Logger\:\:notice\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-logger.php
+
+ -
+ message: '#^Method TMDO_Logger\:\:warning\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-logger.php
+
+ -
+ message: '#^Left side of && is always true\.$#'
+ identifier: booleanAnd.leftAlwaysTrue
+ count: 1
+ path: includes/class-tmdo-post-shadow-verifier.php
+
+ -
+ message: '#^Method TMDO_Post_Shadow_Verifier\:\:recent_diffs\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-shadow-verifier.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:cancel\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:compute_write_metrics\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:compute_write_metrics\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:finalize\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:get_progress\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:get_state\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:measure_db_sizes\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:measure_query_performance\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:run_benchmark\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:run_benchmark\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:start\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:time_calls\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Post_Stress_Tester\:\:time_query\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Static method TMDO_Post_Stress_Tester\:\:time_calls\(\) is unused\.$#'
+ identifier: method.unused
+ count: 1
+ path: includes/class-tmdo-post-stress-tester.php
+
+ -
+ message: '#^Call to static method get_view_count\(\) on an unknown class TMDO_Listing_Stats\.$#'
+ identifier: class.notFound
+ count: 2
+ path: includes/class-tmdo-rest-api.php
+
+ -
+ message: '#^Call to static method increment_view\(\) on an unknown class TMDO_Listing_Stats\.$#'
+ identifier: class.notFound
+ count: 1
+ path: includes/class-tmdo-rest-api.php
+
+ -
+ message: '#^Method TMDO_REST_API\:\:get_filter_params\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-rest-api.php
+
+ -
+ message: '#^Method TMDO_REST_API\:\:get_filter_params\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-rest-api.php
+
+ -
+ message: '#^Method TMDO_REST_API\:\:listings_args\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-rest-api.php
+
+ -
+ message: '#^Ternary operator condition is always true\.$#'
+ identifier: ternary.alwaysTrue
+ count: 1
+ path: includes/class-tmdo-rest-api.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:get_field\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:get_hot_columns\(\) should return array\ but returns array\\.$#'
+ identifier: return.type
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:get_warm_field\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:get_zone_fields\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:get_zone_fields_for_type\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:register\(\) has parameter \$config with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_Schema_Registry\:\:register_many\(\) has parameter \$configs with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Property TMDO_Schema_Registry\:\:\$fields type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Property TMDO_Schema_Registry\:\:\$hot_columns type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Property TMDO_Schema_Registry\:\:\$warm_fields type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-schema-registry.php
+
+ -
+ message: '#^Method TMDO_SQLite_Compat\:\:get_system_column_definitions\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-sqlite-compat.php
+
+ -
+ message: '#^Method TMDO_SQLite_Compat\:\:patch_table\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-sqlite-compat.php
+
+ -
+ message: '#^Left side of && is always true\.$#'
+ identifier: booleanAnd.leftAlwaysTrue
+ count: 1
+ path: includes/class-tmdo-term-comment-shadow-verifier.php
+
+ -
+ message: '#^Method TMDO_Term_Comment_Shadow_Verifier\:\:recent_diffs\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-comment-shadow-verifier.php
+
+ -
+ message: '#^Method TMDO_Term_Comment_Shadow_Verifier\:\:run_all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-comment-shadow-verifier.php
+
+ -
+ message: '#^PHPDoc tag @var for constant TMDO_Term_Comment_Shadow_Verifier\:\:GROUP_MAP with type array\ is incompatible with value array\{hp_taxonomy\: array\{entity_type\: ''term'', table_suffix\: ''wpdo_term_hp…''\}, hp_review\: array\{entity_type\: ''comment'', table_suffix\: ''wpdo_comment_hp…''\}\}\.$#'
+ identifier: classConstant.phpDocType
+ count: 1
+ path: includes/class-tmdo-term-comment-shadow-verifier.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:cancel\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:compute_write_metrics\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:compute_write_metrics\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:finalize\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:get_progress\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:get_state\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:measure_db_sizes\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:measure_query_performance\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:run_benchmark\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:run_benchmark\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_Term_Stress_Tester\:\:start\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-term-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:cancel\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:cleanup\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:compute_write_metrics\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:compute_write_metrics\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:finalize\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:generate_realistic_meta\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:get_progress\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:get_state\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:get_user_flat_tables\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_activity\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_cold\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_commerce\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_commerce\(\) has parameter \$user_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_core_profile\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_core_profile\(\) has parameter \$user_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_hot\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_hp_user\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_membership\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_profile\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_profile\(\) has parameter \$user_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_social\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_flat_sso\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_points_ledger\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_usermeta_bulk\(\) has parameter \$seq_to_id with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:insert_usermeta_bulk\(\) has parameter \$user_data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:measure_db_sizes\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:measure_query_performance\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:run_benchmark\(\) has parameter \$state with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:run_benchmark\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:start\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:time_calls\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_User_Stress_Tester\:\:time_query\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Variable \$sample_ids in empty\(\) always exists and is not falsy\.$#'
+ identifier: empty.variable
+ count: 1
+ path: includes/class-tmdo-user-stress-tester.php
+
+ -
+ message: '#^Method TMDO_V2_Upgrader\:\:pre_flight_check\(\) has parameter \$opts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-v2-upgrader.php
+
+ -
+ message: '#^Method TMDO_Zone_Classifier\:\:analyze\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-zone-classifier.php
+
+ -
+ message: '#^Method TMDO_Zone_Classifier\:\:build_reasons\(\) has parameter \$signals with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-zone-classifier.php
+
+ -
+ message: '#^Method TMDO_Zone_Classifier\:\:build_reasons\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-zone-classifier.php
+
+ -
+ message: '#^Method TMDO_Zone_Classifier\:\:collect_signals\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-zone-classifier.php
+
+ -
+ message: '#^Method TMDO_Zone_Classifier\:\:score_zones\(\) has parameter \$signals with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/class-tmdo-zone-classifier.php
+
+ -
+ message: '#^Method TMDO_Health_Cron\:\:first_critical_test\(\) has parameter \$results with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-health-cron.php
+
+ -
+ message: '#^Method TMDO_Health_Cron\:\:get_last_run\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-health-cron.php
+
+ -
+ message: '#^Method TMDO_Health_Cron\:\:run\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-health-cron.php
+
+ -
+ message: '#^Method TMDO_Health_Cron\:\:run_site_health_tests\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-health-cron.php
+
+ -
+ message: '#^Method TMDO_Health_Cron\:\:summarize_conflicts\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-health-cron.php
+
+ -
+ message: '#^Method TMDO_Health_Cron\:\:summarize_shadow_diffs\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-health-cron.php
+
+ -
+ message: '#^Action callback returns array but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Method TMDO_Monthly_Summary\:\:aggregate_fsm\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Method TMDO_Monthly_Summary\:\:aggregate_health\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Method TMDO_Monthly_Summary\:\:aggregate_snapshots\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Method TMDO_Monthly_Summary\:\:aggregate_zone_growth\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Method TMDO_Monthly_Summary\:\:generate\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Method TMDO_Monthly_Summary\:\:get_latest\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Offset ''autoload_size'' on array\{period_start\: string, period_end\: string, health\: array, fsm_trajectory\: array, snapshots\: array, zone_growth\: array, autoload_size\: int, duration_ms\: int, \.\.\.\} on left side of \?\? always exists and is not nullable\.$#'
+ identifier: nullCoalesce.offset
+ count: 1
+ path: includes/diagnostic/class-tmdo-monthly-summary.php
+
+ -
+ message: '#^Call to function method_exists\(\) with ''TMDO_Installer'' and ''v2_tables_status'' will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:cached\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_autoload_bloat\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_error_budget\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_hook_conflicts\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_missing_snapshot\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_orphan_zone_rows\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_postmeta_explosion\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:check_schema_drift\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:fail\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:pass\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:register_tests\(\) has parameter \$tests with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:register_tests\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:wrap\(\) has parameter \$result with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Method TMDO_Site_Health\:\:wrap\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-health.php
+
+ -
+ message: '#^Action callback returns array\ but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-metrics-collector.php
+
+ -
+ message: '#^Offset ''custom_tables\.total…'' on array\{''eav\.postmeta_rows''\: int, ''eav\.usermeta_rows''\: int, ''eav\.termmeta_rows''\: int, ''eav\.commentmeta_rows''\: int, ''flat\.hot_rows''\: int, ''flat\.cold_rows''\: int, ''flat\.warm_rows''\: int, ''custom_tables\.total_rows''\: int, \.\.\.\} on left side of \?\? always exists and is not nullable\.$#'
+ identifier: nullCoalesce.offset
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-metrics-collector.php
+
+ -
+ message: '#^Offset ''eav\.postmeta_rows'' on array\{''eav\.postmeta_rows''\: int, ''eav\.usermeta_rows''\: int, ''eav\.termmeta_rows''\: int, ''eav\.commentmeta_rows''\: int, ''flat\.hot_rows''\: int, ''flat\.cold_rows''\: int, ''flat\.warm_rows''\: int, ''custom_tables\.total_rows''\: int, \.\.\.\} on left side of \?\? always exists and is not nullable\.$#'
+ identifier: nullCoalesce.offset
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-metrics-collector.php
+
+ -
+ message: '#^Offset ''flat\.hot_rows'' on array\{''eav\.postmeta_rows''\: int, ''eav\.usermeta_rows''\: int, ''eav\.termmeta_rows''\: int, ''eav\.commentmeta_rows''\: int, ''flat\.hot_rows''\: int, ''flat\.cold_rows''\: int, ''flat\.warm_rows''\: int, ''custom_tables\.total_rows''\: int, \.\.\.\} on left side of \?\? always exists and is not nullable\.$#'
+ identifier: nullCoalesce.offset
+ count: 1
+ path: includes/diagnostic/class-tmdo-site-metrics-collector.php
+
+ -
+ message: '#^Call to an undefined static method TMDO_Logger\:\:trace_id\(\)\.$#'
+ identifier: staticMethod.notFound
+ count: 1
+ path: includes/engine/class-tmdo-audit-logger.php
+
+ -
+ message: '#^Method TMDO_Audit_Logger\:\:stringify\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-audit-logger.php
+
+ -
+ message: '#^Method TMDO_Audit_Logger\:\:write_row\(\) has parameter \$row with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-audit-logger.php
+
+ -
+ message: '#^Action callback returns array\ but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/engine/class-tmdo-auto-promoter.php
+
+ -
+ message: '#^Method TMDO_Auto_Promoter\:\:check_entity\(\) has parameter \$entered_all with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-auto-promoter.php
+
+ -
+ message: '#^Comparison operation "\>" between 1000 and 0 is always true\.$#'
+ identifier: greater.alwaysTrue
+ count: 1
+ path: includes/engine/class-tmdo-cache-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Cache_Orchestrator\:\:get_l1_stats\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-cache-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Cache_Orchestrator\:\:get_row\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-cache-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Cache_Orchestrator\:\:set_l1\(\) has parameter \$data with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-cache-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Cache_Orchestrator\:\:set_row\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-cache-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Cache_Orchestrator\:\:warm_batch\(\) has parameter \$ids with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-cache-orchestrator.php
+
+ -
+ message: '#^Action callback returns array\ but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/engine/class-tmdo-conflict-detector.php
+
+ -
+ message: '#^Method TMDO_Conflict_Detector\:\:get_conflicts\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-conflict-detector.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_all\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_auto_promote_status\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_groups_health\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_migration_status\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_native_counts\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_one\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Health\:\:get_recommendation\(\) has parameter \$groups with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-health.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:error_result\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:get_all_statuses\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:migrate_group\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:migrate_group\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:migrate_single_entity\(\) has parameter \$field_map with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:migrate_single_entity\(\) has parameter \$managed_keys with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:rollback_group\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:rollback_group\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Migration_Engine\:\:verify\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Entity_Registry\:\:get_all_adapters\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Method TMDO_Entity_Registry\:\:get_all_fields\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Method TMDO_Entity_Registry\:\:get_field\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Method TMDO_Entity_Registry\:\:get_group_fields\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Method TMDO_Entity_Registry\:\:get_pending_schemas\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Method TMDO_Entity_Registry\:\:register_group\(\) has parameter \$fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Property TMDO_Entity_Registry\:\:\$field_index type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Property TMDO_Entity_Registry\:\:\$groups type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Property TMDO_Entity_Registry\:\:\$pending_schemas type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-entity-registry.php
+
+ -
+ message: '#^Anonymous function has an unused use \$adapter\.$#'
+ identifier: closure.unusedUse
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:decide_route\(\) has parameter \$meta_value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:get_or_load_row\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_add\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_add\(\) has parameter \$check with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_add\(\) has parameter \$meta_key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_add\(\) has parameter \$meta_value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_add\(\) has parameter \$object_id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_add\(\) has parameter \$unique with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_delete\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_delete\(\) has parameter \$check with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_delete\(\) has parameter \$delete_all with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_delete\(\) has parameter \$meta_key with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_delete\(\) has parameter \$meta_value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_delete\(\) has parameter \$object_id with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_get\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:intercept_update\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:maybe_read_before_value\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:maybe_read_before_value\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:perform_upsert\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:perform_upsert\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:perform_upsert\(\) has parameter \$meta_value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:read_flat_value\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Hook_Bus\:\:read_flat_value\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Property TMDO_Hook_Bus\:\:\$internal_ops type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-hook-bus.php
+
+ -
+ message: '#^Method TMDO_Mode_Manager\:\:defaults\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-mode-manager.php
+
+ -
+ message: '#^Method TMDO_Mode_Manager\:\:is_valid_mode\(\) has parameter \$mode with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-mode-manager.php
+
+ -
+ message: '#^Property TMDO_Mode_Manager\:\:\$cache type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-mode-manager.php
+
+ -
+ message: '#^Constant TMDO_Query_Compiler\:\:VALID_OPERATORS type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:build_comparison\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:build_comparison\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:compile\(\) has parameter \$meta_query with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:escape_value\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:escape_value\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:inject_into_terms_clauses\(\) has parameter \$clauses with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:inject_into_terms_clauses\(\) has parameter \$wpdo_meta_query with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:inject_into_terms_clauses\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:inject_into_user_query\(\) has parameter \$wpdo_meta_query with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Method TMDO_Query_Compiler\:\:inject_into_wp_query\(\) has parameter \$wpdo_meta_query with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-query-compiler.php
+
+ -
+ message: '#^Constant DB_NAME not found\.$#'
+ identifier: constant.notFound
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Schema_Manager\:\:build_default_clause\(\) has parameter \$field with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Schema_Manager\:\:calculate_schema_hash\(\) has parameter \$fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Schema_Manager\:\:create_or_upgrade_table\(\) has parameter \$field_definitions with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Schema_Manager\:\:get_table_stats\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Schema_Manager\:\:list_all_uae_tables\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Schema_Manager\:\:store_schema_metadata\(\) has parameter \$field_definitions with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Property TMDO_Schema_Manager\:\:\$table_exists_cache type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Property TMDO_Schema_Manager\:\:\$type_map type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Strict comparison using \=\=\= between mixed and null will always evaluate to false\.$#'
+ identifier: identical.alwaysFalse
+ count: 1
+ path: includes/engine/class-tmdo-schema-manager.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:cast_eav\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:compare_and_log\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:count_by_entity\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:recent\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:stats_by_key\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:stringify_for_log\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:values_equal\(\) has parameter \$a with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Shadow_Diff_Logger\:\:values_equal\(\) has parameter \$b with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-shadow-diff-logger.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:format_date\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:from_db\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:from_db\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:from_db\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:to_bool\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:to_db\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:to_db\(\) has parameter \$field_def with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_Type_Caster\:\:to_db\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/engine/class-tmdo-type-caster.php
+
+ -
+ message: '#^Method TMDO_CSV_Writer\:\:build\(\) has parameter \$headers with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/export/class-tmdo-csv-writer.php
+
+ -
+ message: '#^Method TMDO_CSV_Writer\:\:build\(\) has parameter \$rows with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/export/class-tmdo-csv-writer.php
+
+ -
+ message: '#^Method TMDO_CSV_Writer\:\:row_to_csv\(\) has parameter \$fields with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/export/class-tmdo-csv-writer.php
+
+ -
+ message: '#^Method TMDO_Points_Manager\:\:credit\(\) should return array\{ok\: bool, balance\: int, ledger_id\: int, error\?\: string\} but returns array\{ok\: false, error\: ''credit delta must…''\}\.$#'
+ identifier: return.type
+ count: 1
+ path: includes/integrations/class-tmdo-points-manager.php
+
+ -
+ message: '#^Method TMDO_Points_Manager\:\:debit\(\) should return array\{ok\: bool, balance\: int, ledger_id\: int, error\?\: string\} but returns array\{ok\: false, error\: ''debit delta must be…''\}\.$#'
+ identifier: return.type
+ count: 1
+ path: includes/integrations/class-tmdo-points-manager.php
+
+ -
+ message: '#^Method TMDO_Points_Manager\:\:transact\(\) should return array\{ok\: bool, balance\: int, ledger_id\: int, error\?\: string\} but returns array\{ok\: false, error\: ''db_error''\}\.$#'
+ identifier: return.type
+ count: 2
+ path: includes/integrations/class-tmdo-points-manager.php
+
+ -
+ message: '#^Method TMDO_Points_Manager\:\:transact\(\) should return array\{ok\: bool, balance\: int, ledger_id\: int, error\?\: string\} but returns array\{ok\: false, error\: ''exception''\}\.$#'
+ identifier: return.type
+ count: 1
+ path: includes/integrations/class-tmdo-points-manager.php
+
+ -
+ message: '#^Method TMDO_Points_Manager\:\:transact\(\) should return array\{ok\: bool, balance\: int, ledger_id\: int, error\?\: string\} but returns array\{ok\: false, error\: ''insufficient_balance''\}\.$#'
+ identifier: return.type
+ count: 1
+ path: includes/integrations/class-tmdo-points-manager.php
+
+ -
+ message: '#^Method TMDO_Interceptor_Base\:\:handle_error\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/interceptors/class-tmdo-interceptor-base.php
+
+ -
+ message: '#^Property TMDO_Interceptor_Base\:\:\$error_counts type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/interceptors/class-tmdo-interceptor-base.php
+
+ -
+ message: '#^Access to undefined constant static\(TMDO_Standard_Post_Interceptor\)\:\:FIELD_MAP\.$#'
+ identifier: classConstant.notFound
+ count: 1
+ path: includes/interceptors/class-tmdo-standard-post-interceptor.php
+
+ -
+ message: '#^Method TMDO_Standard_Post_Interceptor\:\:build_insert_data\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 2
+ path: includes/interceptors/class-tmdo-standard-post-interceptor.php
+
+ -
+ message: '#^Method TMDO_Sync_Bridge\:\:get_field_cached\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/interceptors/class-tmdo-sync-bridge.php
+
+ -
+ message: '#^Property TMDO_Sync_Bridge\:\:\$field_cache type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/interceptors/class-tmdo-sync-bridge.php
+
+ -
+ message: '#^Method TMDO_Hot_Migration\:\:build_key_to_column_map\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-hot-migration.php
+
+ -
+ message: '#^Method TMDO_Hot_Migration\:\:get_meta_keys\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-hot-migration.php
+
+ -
+ message: '#^Method TMDO_Migration_Base\:\:get_record\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-base.php
+
+ -
+ message: '#^Method TMDO_Migration_Engine\:\:status\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-engine.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:count_eav_residue\(\) has parameter \$keys with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:get_managed_keys\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:get_status\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:handle_failure\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:log\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:persist_job\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:preflight\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 2
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:project_status\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:project_status\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:resume\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Orchestrator\:\:run_sync_loop\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-orchestrator.php
+
+ -
+ message: '#^Method TMDO_Migration_Phase_Base\:\:count_eav_residue\(\) has parameter \$keys with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-phase-base.php
+
+ -
+ message: '#^Method TMDO_Migration_Phase_Base\:\:get_managed_keys\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-phase-base.php
+
+ -
+ message: '#^Method TMDO_Migration_Phase_Base\:\:log\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-migration-phase-base.php
+
+ -
+ message: '#^Method TMDO_Migration_Phase_Base\:\:values_loose_equal\(\) has parameter \$a with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/migration/class-tmdo-migration-phase-base.php
+
+ -
+ message: '#^Method TMDO_Migration_Phase_Base\:\:values_loose_equal\(\) has parameter \$b with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: includes/migration/class-tmdo-migration-phase-base.php
+
+ -
+ message: '#^Method TMDO_Post_Migration\:\:backfill_group_json\(\) has parameter \$options with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-post-migration.php
+
+ -
+ message: '#^Method TMDO_Post_Migration\:\:backfill_group_json\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-post-migration.php
+
+ -
+ message: '#^Method TMDO_Warm_Migration\:\:get_meta_keys\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/class-tmdo-warm-migration.php
+
+ -
+ message: '#^Method TMDO_Migration_Phase_Interface\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/interface-migration-phase.php
+
+ -
+ message: '#^Method TMDO_Phase_Backfill_Bulk\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-backfill-bulk.php
+
+ -
+ message: '#^Method TMDO_Phase_Backfill_Unserialize\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-backfill-unserialize.php
+
+ -
+ message: '#^Method TMDO_Phase_Backup\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-backup.php
+
+ -
+ message: '#^Method TMDO_Phase_Cleanup\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-cleanup.php
+
+ -
+ message: '#^Method TMDO_Phase_Completed\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-completed.php
+
+ -
+ message: '#^Method TMDO_Phase_Demote\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-demote.php
+
+ -
+ message: '#^Method TMDO_Phase_Diagnose\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-diagnose.php
+
+ -
+ message: '#^Method TMDO_Phase_Install_Schema\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-install-schema.php
+
+ -
+ message: '#^Method TMDO_Phase_Promote_Aeav\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-promote-aeav.php
+
+ -
+ message: '#^Method TMDO_Phase_Promote_Shadow\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-promote-shadow.php
+
+ -
+ message: '#^Method TMDO_Phase_Verify_Sample\:\:execute\(\) has parameter \$job with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/migration/phases/class-tmdo-phase-verify-sample.php
+
+ -
+ message: '#^Action callback returns bool but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Abstract_Notifier\:\:actually_send\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Abstract_Notifier\:\:build_body\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Abstract_Notifier\:\:build_context\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Abstract_Notifier\:\:build_subject\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Abstract_Notifier\:\:fingerprint\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Abstract_Notifier\:\:maybe_send\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/abstract-class-tmdo-notifier.php
+
+ -
+ message: '#^Method TMDO_Discord_Notifier\:\:actually_send\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-discord-notifier.php
+
+ -
+ message: '#^Method TMDO_Discord_Notifier\:\:build_context\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-discord-notifier.php
+
+ -
+ message: '#^Action callback returns bool but should not return anything\.$#'
+ identifier: return.void
+ count: 1
+ path: includes/notifications/class-tmdo-email-notifier.php
+
+ -
+ message: '#^Method TMDO_Email_Notifier\:\:build_body\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-email-notifier.php
+
+ -
+ message: '#^Method TMDO_Email_Notifier\:\:build_subject\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-email-notifier.php
+
+ -
+ message: '#^Method TMDO_Email_Notifier\:\:fingerprint\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-email-notifier.php
+
+ -
+ message: '#^Method TMDO_Email_Notifier\:\:maybe_send\(\) has parameter \$summary with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-email-notifier.php
+
+ -
+ message: '#^Method TMDO_Slack_Notifier\:\:actually_send\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-slack-notifier.php
+
+ -
+ message: '#^Method TMDO_Slack_Notifier\:\:build_context\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-slack-notifier.php
+
+ -
+ message: '#^Method TMDO_Telegram_Notifier\:\:actually_send\(\) has parameter \$context with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-telegram-notifier.php
+
+ -
+ message: '#^Method TMDO_Telegram_Notifier\:\:build_context\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/notifications/class-tmdo-telegram-notifier.php
+
+ -
+ message: '#^Method TMDO_Query_Interceptor_Base\:\:get_clauses\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/query/class-tmdo-query-interceptor-base.php
+
+ -
+ message: '#^Method TMDO_Query_Router\:\:extract_hot_clauses\(\) has parameter \$raw_meta_query with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/query/class-tmdo-query-router.php
+
+ -
+ message: '#^Method TMDO_Query_Router\:\:extract_hot_clauses\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/query/class-tmdo-query-router.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:create\(\) has parameter \$opts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:create\(\) has parameter \$scope with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:create\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:prune\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:resolve_scope\(\) has parameter \$scope with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:resolve_scope\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:restore\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Manager\:\:verify\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-manager.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Pruner\:\:evict_rows\(\) has parameter \$rows with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-pruner.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Pruner\:\:evict_rows\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-pruner.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Pruner\:\:evict_to_recover\(\) has parameter \$candidates with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-pruner.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Pruner\:\:evict_to_recover\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-pruner.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Pruner\:\:prune\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-pruner.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Reader\:\:__construct\(\) has parameter \$row with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-reader.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Reader\:\:apply\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-reader.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Reader\:\:parse_summary\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-reader.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Reader\:\:preview\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-reader.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Reader\:\:verify\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-reader.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Writer\:\:__construct\(\) has parameter \$opts with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-writer.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Writer\:\:__construct\(\) has parameter \$scope with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-writer.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Writer\:\:dump_header\(\) has parameter \$tables with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-writer.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Writer\:\:get_scope\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-writer.php
+
+ -
+ message: '#^Method TMDO_Snapshot_Writer\:\:write\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/snapshots/class-tmdo-snapshot-writer.php
+
+ -
+ message: '#^Property TMDO_Snapshot_Writer\:\:\$scope type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 3
+ path: includes/snapshots/class-tmdo-snapshot-writer.php
+
+ -
+ message: '#^Trait TMDO_Anti_EAV_Aware is used zero times and is not analysed\.$#'
+ identifier: trait.unused
+ count: 1
+ path: includes/trait-tmdo-anti-eav-aware.php
+
+ -
+ message: '#^Method TMDO_Zone_Archive\:\:archive_batch\(\) has parameter \$entries with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-archive.php
+
+ -
+ message: '#^Method TMDO_Zone_Archive\:\:get\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-archive.php
+
+ -
+ message: '#^Method TMDO_Zone_Archive\:\:stats\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-archive.php
+
+ -
+ message: '#^Method TMDO_Zone_Cold\:\:get_blob\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-cold.php
+
+ -
+ message: '#^Method TMDO_Zone_Cold\:\:get_blob_raw\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-cold.php
+
+ -
+ message: '#^Method TMDO_Zone_Cold\:\:save_blob\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-cold.php
+
+ -
+ message: '#^Method TMDO_Zone_Cold\:\:save_patch\(\) has parameter \$patch with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-cold.php
+
+ -
+ message: '#^Method TMDO_Zone_Cold\:\:set_many\(\) has parameter \$values with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-cold.php
+
+ -
+ message: '#^Method TMDO_Zone_Hot\:\:compute_fingerprint\(\) has parameter \$columns with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-hot.php
+
+ -
+ message: '#^Method TMDO_Zone_Hot\:\:get_row\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-hot.php
+
+ -
+ message: '#^Method TMDO_Zone_Hot\:\:set_many\(\) has parameter \$data with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-hot.php
+
+ -
+ message: '#^Method TMDO_Zone_Router\:\:delete_field\(\) has parameter \$field with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-router.php
+
+ -
+ message: '#^Method TMDO_Zone_Router\:\:read\(\) has parameter \$field with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-router.php
+
+ -
+ message: '#^Method TMDO_Zone_Router\:\:write\(\) has parameter \$field with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: includes/zones/class-tmdo-zone-router.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:analyze_autoload\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:get_redirected_options\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:optimize_autoload\(\) has parameter \$options_to_defer with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:optimize_autoload\(\) return type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:read_setting\(\) has no return type specified\.$#'
+ identifier: missingType.return
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:read_setting\(\) has parameter \$default with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:register_settings_group\(\) has parameter \$option_keys with no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Method TMDO_Options_Manager\:\:write_setting\(\) has parameter \$value with no type specified\.$#'
+ identifier: missingType.parameter
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Property TMDO_Options_Manager\:\:\$redirected_options type has no value type specified in iterable type array\.$#'
+ identifier: missingType.iterableValue
+ count: 1
+ path: modules/options/class-tmdo-options-manager.php
+
+ -
+ message: '#^Call to function method_exists\(\) with ''TMDO_Installer'' and ''drop_all_tables_for…'' will always evaluate to true\.$#'
+ identifier: function.alreadyNarrowedType
+ count: 1
+ path: uninstall.php
diff --git a/phpstan.neon b/phpstan.neon
new file mode 100644
index 0000000..7310483
--- /dev/null
+++ b/phpstan.neon
@@ -0,0 +1,29 @@
+includes:
+ - vendor/szepeviktor/phpstan-wordpress/extension.neon
+ # Baseline: existing type-completeness debt (mostly missing iterable value
+ # types + WP template-scope variables). New code is checked clean at L6.
+ # Burn down incrementally; regenerate with `composer stan:baseline`.
+ - phpstan-baseline.neon
+parameters:
+ level: 6
+ paths:
+ - includes
+ - admin
+ - cli
+ - modules
+ - 2meet-data-optimizer.php
+ - uninstall.php
+ bootstrapFiles:
+ # Plugin constants (define()'d at runtime; PHPStan can't see them).
+ - .phpstan/stubs.php
+ scanFiles:
+ # WP-CLI classes/functions (runtime-injected by wp-cli; use official stubs).
+ - vendor/php-stubs/wp-cli-stubs/wp-cli-stubs.php
+ excludePaths:
+ - vendor
+ - tests
+ - .phpstan
+ # interface wrappers: PHPStan sees WPDO_X extends TMDO_X as circular
+ - includes/back-compat
+ reportUnmatchedIgnoredErrors: false
+ treatPhpDocTypesAsCertain: false