Skip to content
Snippets Groups Projects
Commit e15f41fa authored by Sebastian Pisula's avatar Sebastian Pisula
Browse files

feature(core): restore changes and adding only __DIR__

parent ae623830
No related branches found
No related tags found
2 merge requests!34feature(core): restore changes and adding only __DIR__,!32feature(core): Added classmap autoload
Pipeline #11093 failed with stages
in 3 minutes and 37 seconds
## [3.3.0] - 2022-04-21
## [3.2.8] - 2022-04-22
### Added
- classmap autoload
- __DIR__ for requires
## [3.2.7] - 2021-03-01
### Fixed
......
......@@ -19,10 +19,10 @@
"wimg/php-compatibility": "^8"
},
"autoload": {
"classmap": ["src"]
},
"autoload-dev": {
"classmap": ["tests"]
"classmap": ["src", "tests"]
},
"extra": {
"text-domain": "wp-basic-requirements",
......
This diff is collapsed.
<?php
/**
* Falicitates createion of requirement checker
*/
class WPDesk_Basic_Requirement_Checker_Factory {
const LIBRARY_TEXT_DOMAIN = 'wp-basic-requirements';
if ( ! class_exists( 'Basic_Requirement_Checker' ) ) {
require_once __DIR__ . '/Basic_Requirement_Checker.php';
}
/**
* 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 );
if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker_With_Update_Disable' ) ) {
require_once __DIR__ . '/Basic_Requirement_Checker_With_Update_Disable.php';
}
/**
* 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
* Falicitates createion of 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']
);
class WPDesk_Basic_Requirement_Checker_Factory {
const LIBRARY_TEXT_DOMAIN = 'wp-basic-requirements';
if ( isset( $requirements['plugins'] ) ) {
foreach ( $requirements['plugins'] as $requirement ) {
$version = isset( $requirement['version'] ) ? $requirement['version'] : null;
$requirements_checker->add_plugin_require( $requirement['name'], $requirement['nice_name'], $version );
}
$requirements_checker->transient_delete_on_plugin_version_changed();
/**
* 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 );
}
if ( isset( $requirements['repo_plugins'] ) ) {
foreach ( $requirements['repo_plugins'] as $requirement ) {
$requirements_checker->add_plugin_repository_require( $requirement['name'], $requirement['version'],
$requirement['nice_name'] );
/**
* 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 ) {
$version = isset( $requirement['version'] ) ? $requirement['version'] : null;
$requirements_checker->add_plugin_require( $requirement['name'], $requirement['nice_name'], $version );
}
$requirements_checker->transient_delete_on_plugin_version_changed();
}
}
if ( isset( $requirements['modules'] ) ) {
foreach ( $requirements['modules'] as $requirement ) {
$requirements_checker->add_php_module_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'] );
}
}
}
return $requirements_checker;
}
}
\ No newline at end of file
if ( isset( $requirements['modules'] ) ) {
foreach ( $requirements['modules'] as $requirement ) {
$requirements_checker->add_php_module_require( $requirement['name'], $requirement['nice_name'] );
}
}
return $requirements_checker;
}
}
\ No newline at end of file
<?php
class WPDesk_Basic_Requirement_Checker_With_Update_Disable extends WPDesk_Basic_Requirement_Checker {
if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker' ) ) {
require_once __DIR__ . '/Basic_Requirement_Checker.php';
}
if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker_With_Update_Disable' ) ) {
/**
* Returns true if are requirements are met.
*
* @return bool
* Checks requirements for plugin. When required plugin is updated right now, then say that requirements are not met temporary.
* have to be compatible with PHP 5.2.x
*/
public function are_requirements_met() {
$has_been_met = parent::are_requirements_met();
if ( ! $has_been_met ) {
return $has_been_met;
}
foreach ( $this->plugin_require as $name => $plugin_info ) {
if ( $this->is_currently_updated( $name ) ) {
$nice_name = $plugin_info[ self::PLUGIN_INFO_KEY_NICE_NAME ];
$this->notices[] = $this->prepare_notice_message( sprintf( __( 'The &#8220;%s&#8221; plugin disables temporarily as required %s plugin is being upgraded.',
$this->get_text_domain() ),
$this->plugin_name, $nice_name, $nice_name ) );
class WPDesk_Basic_Requirement_Checker_With_Update_Disable extends WPDesk_Basic_Requirement_Checker {
/**
* Returns true if are requirements are met.
*
* @return bool
*/
public function are_requirements_met() {
$has_been_met = parent::are_requirements_met();
if ( ! $has_been_met ) {
return $has_been_met;
}
foreach ( $this->plugin_require as $name => $plugin_info ) {
if ( $this->is_currently_updated( $name ) ) {
$nice_name = $plugin_info[ self::PLUGIN_INFO_KEY_NICE_NAME ];
$this->notices[] = $this->prepare_notice_message( sprintf( __( 'The &#8220;%s&#8221; plugin disables temporarily as required %s plugin is being upgraded.',
$this->get_text_domain() ),
$this->plugin_name, $nice_name, $nice_name ) );
}
}
}
return count( $this->notices ) === 0;
}
return count( $this->notices ) === 0;
}
/**
* Is plugin upgrading right now?
*
* @param string $name
*
* @return bool
*/
private function is_currently_updated( $name ) {
return isset( $_GET['action'] ) && $_GET['action'] === 'upgrade-plugin' && $_GET['plugin'] === $name;
/**
* Is plugin upgrading right now?
*
* @param string $name
*
* @return bool
*/
private function is_currently_updated( $name ) {
return isset( $_GET['action'] ) && $_GET['action'] === 'upgrade-plugin' && $_GET['plugin'] === $name;
}
}
}
}
\ No newline at end of file
<?php
/**
* Checks requirements for plugin
* have to be compatible with PHP 5.2.x
*/
interface WPDesk_Requirement_Checker {
/**
* @param string $version
*
* @return $this
* Checks requirements for plugin
* have to be compatible with PHP 5.2.x
*/
public function set_min_php_require( $version );
/**
* @param string $version
*
* @return $this
*/
public function set_min_wp_require( $version );
/**
* @param string $version
*
* @return $this
*/
public function set_min_wc_require( $version );
/**
* @param $version
*
* @return $this
*/
public function set_min_openssl_require( $version );
/**
* @param string $plugin_name
* @param string $nice_plugin_name Nice plugin name for better looks in notice
*
* @return $this
*/
public function add_plugin_require( $plugin_name, $nice_plugin_name = null );
/**
* @param string $module_name
* @param string $nice_name Nice module name for better looks in notice
*
* @return $this
*/
public function add_php_module_require( $module_name, $nice_name = null );
/**
* @param string $setting
* @param mixed $value
*
* @return $this
*/
public function add_php_setting_require( $setting, $value );
/**
* @return bool
*/
public function are_requirements_met();
/**
* @return void
*/
public function disable_plugin_render_notice();
/**
* @return void
*/
public function render_notices();
/**
* Renders requirement notices in admin panel
*
* @return void
*/
public function disable_plugin();
}
\ No newline at end of file
interface WPDesk_Requirement_Checker
{
/**
* @param string $version
*
* @return $this
*/
public function set_min_php_require($version);
/**
* @param string $version
*
* @return $this
*/
public function set_min_wp_require($version);
/**
* @param string $version
*
* @return $this
*/
public function set_min_wc_require($version);
/**
* @param $version
*
* @return $this
*/
public function set_min_openssl_require($version);
/**
* @param string $plugin_name
* @param string $nice_plugin_name Nice plugin name for better looks in notice
*
* @return $this
*/
public function add_plugin_require($plugin_name, $nice_plugin_name = null);
/**
* @param string $module_name
* @param string $nice_name Nice module name for better looks in notice
*
* @return $this
*/
public function add_php_module_require($module_name, $nice_name = null);
/**
* @param string $setting
* @param mixed $value
*
* @return $this
*/
public function add_php_setting_require($setting, $value);
/**
* @return bool
*/
public function are_requirements_met();
/**
* @return void
*/
public function disable_plugin_render_notice();
/**
* @return void
*/
public function render_notices();
/**
* Renders requirement notices in admin panel
*
* @return void
*/
public function disable_plugin();
}
\ No newline at end of file
<?php
interface WPDesk_Requirement_Checker_Factory {
/**
* @param $plugin_file
* @param $plugin_name
* @param $text_domain
* @param $php_version
* @param $wp_version
*
* @return WPDesk_Requirement_Checker
*/
public function create_requirement_checker( $plugin_file, $plugin_name, $text_domain );
interface WPDesk_Requirement_Checker_Factory
{
/**
* @param $plugin_file
* @param $plugin_name
* @param $text_domain
* @param $php_version
* @param $wp_version
*
* @return WPDesk_Requirement_Checker
*/
public function create_requirement_checker($plugin_file, $plugin_name, $text_domain);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment