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 ### Added
- classmap autoload - __DIR__ for requires
## [3.2.7] - 2021-03-01 ## [3.2.7] - 2021-03-01
### Fixed ### Fixed
......
...@@ -19,10 +19,10 @@ ...@@ -19,10 +19,10 @@
"wimg/php-compatibility": "^8" "wimg/php-compatibility": "^8"
}, },
"autoload": { "autoload": {
"classmap": ["src"]
}, },
"autoload-dev": { "autoload-dev": {
"classmap": ["tests"] "classmap": ["src", "tests"]
}, },
"extra": { "extra": {
"text-domain": "wp-basic-requirements", "text-domain": "wp-basic-requirements",
......
This diff is collapsed.
<?php <?php
/** if ( ! class_exists( 'Basic_Requirement_Checker' ) ) {
* Falicitates createion of requirement checker require_once __DIR__ . '/Basic_Requirement_Checker.php';
*/ }
class WPDesk_Basic_Requirement_Checker_Factory {
const LIBRARY_TEXT_DOMAIN = 'wp-basic-requirements';
/** if ( ! class_exists( 'WPDesk_Basic_Requirement_Checker_With_Update_Disable' ) ) {
* Creates a simplest possible version of requirement checker. require_once __DIR__ . '/Basic_Requirement_Checker_With_Update_Disable.php';
*
* @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. * Falicitates createion of requirement checker
*
* @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 ) { class WPDesk_Basic_Requirement_Checker_Factory {
$requirements_checker = new WPDesk_Basic_Requirement_Checker_With_Update_Disable( const LIBRARY_TEXT_DOMAIN = 'wp-basic-requirements';
$plugin_file,
$plugin_name,
$text_domain,
$requirements['php'],
$requirements['wp']
);
if ( isset( $requirements['plugins'] ) ) { /**
foreach ( $requirements['plugins'] as $requirement ) { * Creates a simplest possible version of requirement checker.
$version = isset( $requirement['version'] ) ? $requirement['version'] : null; *
$requirements_checker->add_plugin_require( $requirement['name'], $requirement['nice_name'], $version ); * @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.
$requirements_checker->transient_delete_on_plugin_version_changed(); *
* @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 ) { * Creates a requirement checker according to given requirements array info.
$requirements_checker->add_plugin_repository_require( $requirement['name'], $requirement['version'], *
$requirement['nice_name'] ); * @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'] ) ) { if ( isset( $requirements['repo_plugins'] ) ) {
foreach ( $requirements['modules'] as $requirement ) { foreach ( $requirements['repo_plugins'] as $requirement ) {
$requirements_checker->add_php_module_require( $requirement['name'], $requirement['nice_name'] ); $requirements_checker->add_plugin_repository_require( $requirement['name'], $requirement['version'],
$requirement['nice_name'] );
}
} }
}
return $requirements_checker; if ( isset( $requirements['modules'] ) ) {
} foreach ( $requirements['modules'] as $requirement ) {
} $requirements_checker->add_php_module_require( $requirement['name'], $requirement['nice_name'] );
\ No newline at end of file }
}
return $requirements_checker;
}
}
\ No newline at end of file
<?php <?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. * 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
* @return bool
*/ */
public function are_requirements_met() { class WPDesk_Basic_Requirement_Checker_With_Update_Disable extends WPDesk_Basic_Requirement_Checker {
$has_been_met = parent::are_requirements_met();
if ( ! $has_been_met ) { /**
return $has_been_met; * Returns true if are requirements are met.
} *
foreach ( $this->plugin_require as $name => $plugin_info ) { * @return bool
if ( $this->is_currently_updated( $name ) ) { */
$nice_name = $plugin_info[ self::PLUGIN_INFO_KEY_NICE_NAME ]; public function are_requirements_met() {
$this->notices[] = $this->prepare_notice_message( sprintf( __( 'The &#8220;%s&#8221; plugin disables temporarily as required %s plugin is being upgraded.', $has_been_met = parent::are_requirements_met();
$this->get_text_domain() ), if ( ! $has_been_met ) {
$this->plugin_name, $nice_name, $nice_name ) ); 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? * Is plugin upgrading right now?
* *
* @param string $name * @param string $name
* *
* @return bool * @return bool
*/ */
private function is_currently_updated( $name ) { private function is_currently_updated( $name ) {
return isset( $_GET['action'] ) && $_GET['action'] === 'upgrade-plugin' && $_GET['plugin'] === $name; return isset( $_GET['action'] ) && $_GET['action'] === 'upgrade-plugin' && $_GET['plugin'] === $name;
}
} }
} }
\ No newline at end of file
<?php <?php
/**
* Checks requirements for plugin
* have to be compatible with PHP 5.2.x
*/
interface WPDesk_Requirement_Checker {
/** /**
* @param string $version * Checks requirements for plugin
* * have to be compatible with PHP 5.2.x
* @return $this
*/ */
public function set_min_php_require( $version ); interface WPDesk_Requirement_Checker
{
/** /**
* @param string $version * @param string $version
* *
* @return $this * @return $this
*/ */
public function set_min_wp_require( $version ); public function set_min_php_require($version);
/** /**
* @param string $version * @param string $version
* *
* @return $this * @return $this
*/ */
public function set_min_wc_require( $version ); public function set_min_wp_require($version);
/** /**
* @param $version * @param string $version
* *
* @return $this * @return $this
*/ */
public function set_min_openssl_require( $version ); public function set_min_wc_require($version);
/** /**
* @param string $plugin_name * @param $version
* @param string $nice_plugin_name Nice plugin name for better looks in notice *
* * @return $this
* @return $this */
*/ public function set_min_openssl_require($version);
public function add_plugin_require( $plugin_name, $nice_plugin_name = null );
/**
/** * @param string $plugin_name
* @param string $module_name * @param string $nice_plugin_name Nice plugin name for better looks in notice
* @param string $nice_name Nice module name for better looks in notice *
* * @return $this
* @return $this */
*/ public function add_plugin_require($plugin_name, $nice_plugin_name = null);
public function add_php_module_require( $module_name, $nice_name = null );
/**
/** * @param string $module_name
* @param string $setting * @param string $nice_name Nice module name for better looks in notice
* @param mixed $value *
* * @return $this
* @return $this */
*/ public function add_php_module_require($module_name, $nice_name = null);
public function add_php_setting_require( $setting, $value );
/**
/** * @param string $setting
* @return bool * @param mixed $value
*/ *
public function are_requirements_met(); * @return $this
*/
/** public function add_php_setting_require($setting, $value);
* @return void
*/ /**
public function disable_plugin_render_notice(); * @return bool
*/
/** public function are_requirements_met();
* @return void
*/ /**
public function render_notices(); * @return void
*/
/** public function disable_plugin_render_notice();
* Renders requirement notices in admin panel
* /**
* @return void * @return void
*/ */
public function disable_plugin(); public function render_notices();
}
\ No newline at end of file /**
* Renders requirement notices in admin panel
*
* @return void
*/
public function disable_plugin();
}
\ No newline at end of file
<?php <?php
interface WPDesk_Requirement_Checker_Factory { interface WPDesk_Requirement_Checker_Factory
/** {
* @param $plugin_file /**
* @param $plugin_name * @param $plugin_file
* @param $text_domain * @param $plugin_name
* @param $php_version * @param $text_domain
* @param $wp_version * @param $php_version
* * @param $wp_version
* @return WPDesk_Requirement_Checker *
*/ * @return WPDesk_Requirement_Checker
public function create_requirement_checker( $plugin_file, $plugin_name, $text_domain ); */
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