Skip to content
Snippets Groups Projects
Select Git revision
  • a33f6f47d05cedfc757ab3af9d96af6d909c4924
  • main default protected
  • revert-ffead0bd
  • feature/init
  • 1.1.8
  • 1.1.7
  • 1.1.6
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.2
  • 1.1.1
  • 1.1.0
  • 1.0.2
  • 1.0.2-beta3
  • 1.0.2-beta2
  • 1.0.2-beta1
  • 1.0.1
  • 1.0.1-beta4
  • 1.0.1-beta3
  • 1.0.1-beta2
  • 1.0.1-beta1
  • 1.0.0
  • 1.0.0-beta6
24 results

bootstrap.php

Blame
  • PluginHeaderData.php 1.02 KiB
    <?php
    declare( strict_types=1 );
    
    namespace WPDesk\Init;
    
    use WPDesk\Init\Configuration\ReadableConfig;
    use WPDesk\Init\Dumper\PhpFileDumper;
    use WPDesk\Init\Loader\PhpFileLoader;
    
    class PluginHeaderData {
    
    	/** @var PluginHeaderParser */
    	private $parser;
    
    	/** @var PhpFileLoader */
    	private $loader;
    
    	/** @var PhpFileDumper */
    	private $dumper;
    
    	/** @var ReadableConfig */
    	private $config;
    
    	public function __construct(
    		PluginHeaderParser $parser,
    		PhpFileLoader $loader,
    		PhpFileDumper $dumper,
    		ReadableConfig $config
    	) {
    		$this->parser = $parser;
    		$this->loader = $loader;
    		$this->dumper = $dumper;
    		$this->config = $config;
    	}
    
    	public function get_plugin_data( string $plugin_file ): array {
    		$cache_path = $this->config->get( 'cache_path', 'generated' ) . '/plugin.php';
    		try {
    			return $this->loader->load( $cache_path );
    		} catch ( \Exception $e ) {
    			$plugin_data = $this->parser->parse( $plugin_file );
    			$this->dumper->dump( $plugin_data, $cache_path );
    
    			return $this->loader->load( $cache_path );
    		}
    	}
    
    }