Select Git revision
CompositeBindingLoaderTest.php
-
Bartek Jaskulski authored
Signed-off-by:
Bart Jaskulski <bjaskulski@protonmail.com>
Bartek Jaskulski authoredSigned-off-by:
Bart Jaskulski <bjaskulski@protonmail.com>
Plugin.php 2.08 KiB
<?php
declare( strict_types=1 );
namespace WPDesk\Init;
final class Plugin {
/**
* Plugin basename.
*
* Ex: plugin-name/plugin-name.php
*
* @var string
*/
private $basename;
/**
* Absolute path to the main plugin directory.
*
* @var string
*/
private $directory;
/**
* Plugin name to display.
*
* @var string
*/
private $name;
/**
* Absolute path to the main plugin file.
*
* @var string
*/
private $file;
/**
* Plugin identifier.
*
* @var string
*/
private $slug;
/**
* URL to the main plugin directory.
*
* @var string
*/
private $url;
/**
* Plugin version string.
*
* @var string
*/
private $version;
public function __construct(
string $file,
string $name,
string $version,
?string $slug = null,
) {
$this->file = $file;
$this->name = $name;
$this->version = $version;
$this->basename = plugin_basename( $file );
$this->directory = rtrim( plugin_dir_path( $file ), '/' ) . '/';
$this->url = rtrim( plugin_dir_url( $file ), '/' ) . '/';
$this->slug = $slug ?? basename( $this->directory );
}
/**
* Retrieve the absolute path for the main plugin file.
*/
public function get_basename(): string {
return $this->basename;
}
/**
* Retrieve the path to a file in the plugin.
*
* @param string $path Optional. Path relative to the plugin root.
*/
public function get_path( string $path = '' ): string {
return $this->directory . ltrim( $path, '/' );
}
/**
* Retrieve the absolute path for the main plugin file.
*/
public function get_file(): string {
return $this->file;
}
public function get_name(): string {
return $this->name;
}
/**
* Retrieve the plugin identifier.
*/
public function get_slug(): string {
return $this->slug;
}
/**
* Retrieve the URL for a file in the plugin.
*
* @param string $path Optional. Path relative to the plugin root.
*/
public function get_url( string $path = '' ): string {
return $this->url . ltrim( $path, '/' );
}
public function get_version(): string {
return $this->version;
}
}