kernel/lib/Vendor.php
public static function getVendor(string $sVendorName, $mParam = null, $mParam2 = null)
	{
	    if ($sVendorName === 'Apollina\Template') { 

	        $oApollina = new $sVendorName($mParam, str_replace('kernel'.DIRECTORY_SEPARATOR.'lib', 'bundles', __DIR__),
	            str_replace('kernel'.DIRECTORY_SEPARATOR.'lib', CACHE_DIR, __DIR__), $mParam2);

	        return $oApollina->addFunctionPath(__DIR__ . DIRECTORY_SEPARATOR, '\Venus\lib\Functions\\');
	    }
	    else if ($sVendorName === 'Attila\Orm') {

	        $oDbConfig = Config::get('database')->configuration;

	        return new $sVendorName($oDbConfig->db, $oDbConfig->type, $oDbConfig->host, $oDbConfig->user, $oDbConfig->password, 
	            $oDbConfig->db);
	    }
	    else if (isset($mParam) && isset($mParam2)) { 
	        
	        return new $sVendorName($mParam, $mParam2);
	    }
	    else if (isset($mParam)) { 
	        
	        return new $sVendorName($mParam);
	    }
	    else { 
	        
	        return new $sVendorName;
	    }
	}
public static function getVendor(string $sVendorName, $mParam = null, $mParam2 = null)
	{
	    if ($sVendorName === 'Apollina\Template') { 

	        $oApollina = new $sVendorName($mParam, str_replace('kernel'.DIRECTORY_SEPARATOR.'lib', 'bundles', __DIR__),
	            str_replace('kernel'.DIRECTORY_SEPARATOR.'lib', CACHE_DIR, __DIR__), $mParam2);

	        return $oApollina->addFunctionPath(__DIR__ . DIRECTORY_SEPARATOR, '\Venus\lib\Functions\\');
	    }
	    else if ($sVendorName === 'Attila\Orm') {

	        $oDbConfig = Config::get('database')->configuration;

	        return new $sVendorName($oDbConfig->db, $oDbConfig->type, $oDbConfig->host, $oDbConfig->user, $oDbConfig->password, 
	            $oDbConfig->db);
	    }
	    else if (isset($mParam) && isset($mParam2)) { 
	        
	        return new $sVendorName($mParam, $mParam2);
	    }
	    else if (isset($mParam)) { 
	        
	        return new $sVendorName($mParam);
	    }
	    else { 
	        
	        return new $sVendorName;
	    }
	}
constructor - factory
To call a specific vendor, you have to call this class like this :
new \Venus\lib\Vendor('Apollina\Template');
new \Venus\lib\Vendor('Attila\Orm');
new \Venus\lib\Vendor('Mobile_Detect');

@access public
@param  string $sVendorName
@param  mixed $mParam
@param  mixed $mParam2
@return bool|object