This commit introduces a more reliable and consistent approach to setting up the development environment using backups: - Add setup-from-backup.sh script for environment setup from existing backups - Standardize script naming and organization - Move obsolete scripts to bin/obsolete directory - Update documentation with new workflow instructions - Create migration guide for transitioning to new workflow - Update Memory Bank with workflow improvements The new workflow provides: - More reliable environment setup - Faster setup process - Offline development capability - Consistent development environments across team members Breaking changes: - setup-dev.sh is replaced by setup-from-backup.sh - sync-and-setup.sh is replaced by separate scripts - verify-with-wpcli.sh is no longer used Migration path is documented in MIGRATION_GUIDE.md
		
			
				
	
	
		
			99 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * UserRegistration Autoloader.
 | |
|  *
 | |
|  * @class    UR_Autoloader
 | |
|  * @version  1.0.0
 | |
|  * @package  UserRegistration/Classes
 | |
|  */
 | |
| 
 | |
| if ( ! defined( 'ABSPATH' ) ) {
 | |
| 	exit;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * UR_Autoloader Class
 | |
|  */
 | |
| class UR_Autoloader {
 | |
| 
 | |
| 	/**
 | |
| 	 * Path to the includes directory.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	private $include_path = '';
 | |
| 
 | |
| 	/**
 | |
| 	 * Class Constructor Method.
 | |
| 	 */
 | |
| 	public function __construct() {
 | |
| 		if ( function_exists( '__autoload' ) ) {
 | |
| 			spl_autoload_register( '__autoload' );
 | |
| 		}
 | |
| 
 | |
| 		spl_autoload_register( array( $this, 'autoload' ) );
 | |
| 
 | |
| 		$this->include_path = untrailingslashit( plugin_dir_path( UR_PLUGIN_FILE ) ) . '/includes/';
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Take a class name and turn it into a file name.
 | |
| 	 *
 | |
| 	 * @param  string $class Class.
 | |
| 	 *
 | |
| 	 * @return string
 | |
| 	 */
 | |
| 	private function get_file_name_from_class( $class ) {
 | |
| 		return 'class-' . str_replace( '_', '-', $class ) . '.php';
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Include a class file.
 | |
| 	 *
 | |
| 	 * @param  string $path Path.
 | |
| 	 *
 | |
| 	 * @return bool successful or not
 | |
| 	 */
 | |
| 	private function load_file( $path ) {
 | |
| 		if ( $path && is_readable( $path ) ) {
 | |
| 			include_once $path;
 | |
| 
 | |
| 			return true;
 | |
| 		}
 | |
| 
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Auto-load UR classes on demand to reduce memory consumption.
 | |
| 	 *
 | |
| 	 * @param string $class Class.
 | |
| 	 */
 | |
| 	public function autoload( $class ) {
 | |
| 		$class = strtolower( $class );
 | |
| 		$file  = $this->get_file_name_from_class( $class );
 | |
| 		$path  = '';
 | |
| 
 | |
| 		if ( strpos( $class, 'ur_shortcode_' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'shortcodes/';
 | |
| 		} elseif ( strpos( $class, 'ur_meta_box' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'admin/meta-boxes/';
 | |
| 		} elseif ( strpos( $class, 'ur_admin' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'admin/';
 | |
| 		} elseif ( strpos( $class, 'ur_settings' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'admin/settings/emails/';
 | |
| 		} elseif ( strpos( $class, 'ur_form' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'form/';
 | |
| 		} elseif ( strpos( $class, 'ur_log_handler_' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'log-handlers/';
 | |
| 		} elseif ( strpos( $class, 'ur_form_field_' ) === 0 ) {
 | |
| 			$path = $this->include_path . 'form/';
 | |
| 		}
 | |
| 
 | |
| 		if ( empty( $path ) || ( ! $this->load_file( $path . $file ) && strpos( $class, 'ur_' ) === 0 ) ) {
 | |
| 			$this->load_file( $this->include_path . $file );
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| new UR_Autoloader();
 |