WPINC_plugin.php Notes - WordPress-Thinstall/wordpress-develop GitHub Wiki

<?php

interface PluginInterface {
    public static function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 )
    public static function has_filter($tag, $function_to_check = false)
    public static function apply_filters( $tag, $value )
    public static function apply_filters_ref_array($tag, $args)
    public static function remove_filter( $tag, $function_to_remove, $priority = 10 )
    public static function remove_all_filters( $tag, $priority = false )
    public static function current_filter()
    public static function current_action()
    public static function doing_filter( $filter = null )
    public static function doing_action( $action = null )
    public static function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1)
    public static function do_action($tag, $arg = '')
    public static function did_action($tag)
    public static function do_action_ref_array($tag, $args)
    public static function has_action($tag, $function_to_check = false)
    public static function remove_action( $tag, $function_to_remove, $priority = 10 )
    public static function remove_all_actions($tag, $priority = false)
    public static function apply_filters_deprecated( $tag, $args, $version, $replacement = false, $message = null )
    public static function do_action_deprecated( $tag, $args, $version, $replacement = false, $message = null )
    public static function plugin_basename( $file )
    public static function wp_register_plugin_realpath( $file )
    public static function plugin_dir_path( $file )
    public static function plugin_dir_url( $file )
    public static function register_activation_hook($file, $function)
    public static function register_deactivation_hook($file, $function)
    public static function register_uninstall_hook( $file, $callback )
    public static function _wp_call_all_hook($args)
    public static function _wp_filter_build_unique_id($tag, $function, $priority)
}

Note The WordPress implementation of this would for-sure be a singleton, or static final class. Pretty sure that is why a lot of the potentially effect-causing code is procedural as that guards against cloning, instantiating twice etc. It could actually just be accessed via facade and that would probably limit the damage a malicious, naive or callous user could cause.