Skip to content
Snippets Groups Projects
Select Git revision
  • e518a82fd62b2e9b94fa56f8ba74e8c11dfdf1e6
  • master default protected
  • fix/woo-stubs-dir
  • default-packages
  • use-internal-packages
  • update-setup
  • feature/wpdesk-cs
  • 2.5.3
  • 2.5.2
  • 2.5.1
  • 2.5.0
  • 2.4.2
  • 2.4.1
  • 2.4.0
  • 2.3
  • 2.2.1
  • 2.2
  • 2.1
  • 2.0
  • 1.10.15
  • 1.10.12
  • 1.10.8
  • 1.10.7
  • 1.10.6
  • 1.10.5
  • 1.10.3
  • 1.10.2
27 results

wpdesk.yml

Blame
  • Basic_Requirement_Checker_Factory.php 2.24 KiB
    <?php
    
    if ( ! class_exists( 'Basic_Requirement_Checker' ) ) {
    	require_once 'Basic_Requirement_Checker.php';
    }
    
    if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker_With_Update_Disable' ) ) {
    	require_once 'Basic_Requirement_Checker_With_Update_Disable.php';
    }
    
    /**
     * Falicitates createion of requirement checker
     */
    class WPDesk_Basic_Requirement_Checker_Factory {
    	const LIBRARY_TEXT_DOMAIN = 'wp-basic-requirements';
    
    	/**
    	 * Creates a simplest possible version of requirement checker.
    	 *
    	 * @param string $plugin_file
    	 * @param string $plugin_name
    	 * @param string|null $text_domain Text domain to use. If null try to use library text domain.
    	 *
    	 * @return WPDesk_Requirement_Checker
    	 */
    	public function create_requirement_checker( $plugin_file, $plugin_name, $text_domain = null ) {
    		return new WPDesk_Basic_Requirement_Checker( $plugin_file, $plugin_name, $text_domain, null, null );
    	}
    
    	/**
    	 * Creates a requirement checker according to given requirements array info.
    	 *
    	 * @param string $plugin_file
    	 * @param string $plugin_name
    	 * @param string $text_domain Text domain to use. If null try to use library text domain.
    	 * @param array $requirements Requirements array as given by plugin.
    	 *
    	 * @return WPDesk_Requirement_Checker
    	 */
    	public function create_from_requirement_array( $plugin_file, $plugin_name, $requirements, $text_domain = null ) {
    		$requirements_checker = new WPDesk_Basic_Requirement_Checker_With_Update_Disable(
    			$plugin_file,
    			$plugin_name,
    			$text_domain,
    			$requirements['php'],
    			$requirements['wp']
    		);
    
    		if ( isset( $requirements['plugins'] ) ) {
    			foreach ( $requirements['plugins'] as $requirement ) {
    				$requirements_checker->add_plugin_require( $requirement['name'], $requirement['nice_name'] );
    			}
    		}
    
    		if ( isset( $requirements['repo_plugins'] ) ) {
    			foreach ( $requirements['repo_plugins'] as $requirement ) {
    				$requirements_checker->add_plugin_repository_require( $requirement['name'], $requirement['version'],
    					$requirement['nice_name'] );
    			}
    		}
    
    		if ( isset( $requirements['modules'] ) ) {
    			foreach ( $requirements['modules'] as $requirement ) {
    				$requirements_checker->add_php_module_require( $requirement['name'], $requirement['nice_name'] );
    			}
    		}
    
    		return $requirements_checker;
    	}
    }