Skip to content
Snippets Groups Projects

Draft: Basic implementation of plugin initializer

Closed Bartek Jaskulski requested to merge 1.x into review
2 unresolved threads
1 file
+ 0
48
Compare changes
  • Side-by-side
  • Inline
<?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 );
}
}
}
\ No newline at end of file
Loading