src/abstract-plugin.php
public static function run( $file ) {
		// Logic required for WordPress VIP plugins to load during themes function file initialization.
		if ( did_action( 'plugins_loaded' ) ) {
			add_action( 'init', [ get_called_class(), 'load' ], 1 );
		} else {
			add_action( 'plugins_loaded', [ get_called_class(), 'load' ] );
		}
		// Installation and un-installation hooks.
		register_activation_hook( $file, [ get_called_class(), 'activate' ] );
		register_deactivation_hook( $file, [ get_called_class(), 'deactivate' ] );
		register_uninstall_hook( $file, [ get_called_class(), 'uninstall' ] );
	}
public static function run( $file ) {
		// Logic required for WordPress VIP plugins to load during themes function file initialization.
		if ( did_action( 'plugins_loaded' ) ) {
			add_action( 'init', [ get_called_class(), 'load' ], 1 );
		} else {
			add_action( 'plugins_loaded', [ get_called_class(), 'load' ] );
		}
		// Installation and un-installation hooks.
		register_activation_hook( $file, [ get_called_class(), 'activate' ] );
		register_deactivation_hook( $file, [ get_called_class(), 'deactivate' ] );
		register_uninstall_hook( $file, [ get_called_class(), 'uninstall' ] );
	}
public static function run ( $ file ) { // Logic required for WordPress VIP plugins to load during themes function file initialization. if ( did_action ( 'plugins_loaded' ) ) { add_action ( 'init' , [ get_called_class ( ) , 'load' ] , 1 ) ; } else { add_action ( 'plugins_loaded' , [ get_called_class ( ) , 'load' ] ) ; } // Installation and un-installation hooks. register_activation_hook ( $ file , [ get_called_class ( ) , 'activate' ] ) ; register_deactivation_hook ( $ file , [ get_called_class ( ) , 'deactivate' ] ) ; register_uninstall_hook ( $ file , [ get_called_class ( ) , 'uninstall' ] ) ; }
Setup special hooks that don't run after plugins_loaded action

@param string $file File location on the server, passed in and used to build other paths.
Setup special hooks that don t run after plugins_loaded action