Uname:Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64

403WebShell
403Webshell
Server IP : 188.114.96.2  /  Your IP : 104.23.197.231
Web Server : Apache/2.4.59 (Debian)
System : Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
User : edlftp ( 1002)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/nicolasj/www/ecoledelangues.be/wp-content/plugins/wp-google-maps/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/nicolasj/www/ecoledelangues.be/wp-content/plugins/wp-google-maps/includes/class.factory.php
<?php

namespace WPGMZA;

if(!defined('ABSPATH'))
	return;

/**
 * The Factory class is a base class which can be used to make any classes
 * externally extensible. A filter is added for wpgmza_create_{class} which
 * is called by createInstance. If this filter returns a subclass of Factory,
 * that filter will override the default class and will be used.
 *
 * IMPORTANT: Any objects which subclass Factory MUST be created by calling
 * createInstance on the subclass. Calling new on the constructor directly will
 * not cause this filter to fire, and the extended class will not be used.
 */
#[\AllowDynamicProperties]
class Factory
{
	/**
	 * Creates an instance of the desired subclass, this will return the default instance if no filter is used to override the process, or will return the extended class if a filter has been bound
	 * @throws \Exception
	 */
	public static function createInstance()
	{
		$class = get_called_class();
		$args = func_get_args();
		$count = count($args);
		$filter = "wpgmza_create_$class";


		if($class == 'WPGMZA\\Factory')
			throw new \Exception('Factory createInstance would return abstract Factory');
		
		// TODO: If the created object is a descendant of CRUD 
		if(empty($args)){
			if(is_subclass_of($class, '\\WPGMZA\\Crud'))
				$filter_args = array($filter, -1);
			else
				$filter_args = array($filter, null);
		}
		else
			$filter_args = array_merge(array($filter), $args);
		
		/* Developer Hook (Filter) - Apply CRUD class filters */
		$override = call_user_func_array('apply_filters', $filter_args);
		

		// NB: This stops override being the same as the first argument, which is needed for example when passing a Map as the first argument of StoreLocator
		if(count($args) && $args[0] === $override)
			$override = null;
		
		if($override instanceof \WPGMZA\Factory)
			return $override;
		
		$reflect = new \ReflectionClass($class);
		$instance = $reflect->newInstanceArgs($args);
		
		return $instance;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit