overwrite... $ConfigurationContainer =new \Webfan\Container\ConfigContainer( 'config', 'config.', '', $this['Container']->get('Config') ); $ConfigurationContainerId = 'config'; $this['Container']->addContainer($ConfigurationContainer, $ConfigurationContainerId); return $this['Container']; } public function getAsContainer(?string $factoryId=null, ?array $definitions = [], ?array $options = []) : \Psr\Container\ContainerInterface { $this->autoloading(); switch($factoryId){ case 'stub' : case 'StubContainer' : case 'StubContainerFactory' : return new \Acclimate\Container\Adapter\ArrayAccessContainerAdapter($this); break; case 'root' : case 'collection' : case 'ContainerCollection' : case \IO4\Container\ContainerCollectionInterface::class : case \Webfan\Webfat\App\ContainerCollection::class : // $class = \Webfan\Webfat\App\ContainerCollection::class; $class = \IO4\Container\Collection::class; return new $class(array_merge([], $definitions), array_merge(['onFalseGet'=>\IO4\Container\ContainerCollectionInterface::NULL_ONERROR,], $options)['onFalseGet'], array_merge(['callId'=>\IO4\Container\ContainerCollectionInterface::CALL_ID,], $options)['callId']); break; case null : default : if(!isset($this['Container'])){ $this['Container'] = $this->_bootMainRootContainer(); } return $this['Container']; break; } } } //\class_alias('\\'.__NAMESPACE__.'\\MimeStub5', '\\'.__NAMESPACE__.'\\MimeStubIndex'); \class_alias('\\'.__NAMESPACE__.'\\MimeStubIndex', '\\'.__NAMESPACE__.'\\MimeStub'); \class_alias('\\'.__NAMESPACE__.'\\MimeStubIndex', '\frdlweb\MimeStub'); \class_alias('\\'.__NAMESPACE__.'\\StubRunner', '\frdlweb\StubRunner'); \class_alias('\\'.__NAMESPACE__.'\\MimeVM', '\frdlweb\MimeVM'); $ns = __NAMESPACE__; }//ns namespace{ use frdlweb\StubRunner; use frdlweb\MimeVM; use frdl\patch\RelativePath; if(!isset($_SERVER['HTTP_HOST'])){ $_SERVER['HTTP_HOST'] = null; } if(!isset($_SERVER['REQUEST_URI'])){ $_SERVER['REQUEST_URI']=null; } /** * * $run Function * */ $run = function($file = null, $doRun = false){ $args = func_get_args(); $MimeVM = new MimeVM($args[0]); if($doRun){ $MimeVM('run'); } return $MimeVM; }; $MimeVM = $run(__FILE__, false); $StubRunner = new StubRunner($MimeVM); $MimeVM->hugRunner($StubRunner); if(!isset($module)){ $module = new \ArrayObject(); } $module['exports'] = &$StubRunner;// new \ArrayObject(); $module['exports']['util']['path']['relative']=function ($from, $to, $separator = \DIRECTORY_SEPARATOR) { return RelativePath::rel($from, $to, $separator); } ; $module['exports']['run'] = $run; }//ns namespace{ $module['exports']->runAsIndex(true); $StubRunner = &$module['exports']; return $module['exports']; } __halt_compiler();Mime-Version: 1.0 Content-Type: multipart/mixed;boundary=hoHoBundary12344dh To: example@example.com From: script@example.com --hoHoBundary12344dh Content-Type: multipart/alternate;boundary=EVGuDPPT --EVGuDPPT Content-Type: text/html;charset=utf-8

InstallShield

Your Installer you downloaded at frdl@Webfan is attatched in this message.

You may have to run it in your APC-Environment.

--EVGuDPPT Content-Type: text/plain;charset=utf-8 -InstallShield- Your Installer you downloaded at https://webfan.de/install/ is attatched in this message. You may have to run it in your APC-Environment. --EVGuDPPT Content-Type: multipart/related;boundary=4444EVGuDPPT Content-Disposition: php ;filename="$__FILE__/stub.zip";name="archive stub.zip" --4444EVGuDPPT Content-Type: application/x-httpd-php;charset=utf-8 Content-Disposition: php ;filename="$STUB/bootstrap.php";name="stub bootstrap.php" getRunner()->autoUpdateStub( null ); */ --4444EVGuDPPT Content-Type: application/x-httpd-php;charset=utf-8 Content-Disposition: php ;filename="$HOME/apc_config.php";name="stub apc_config.php" 'script@index.php', // CHOOSE onInstall/firstRun : 'autoupdate' => true, 'IO4_FACADES_ENABLE' =>true, 'AUTOUPDATE_INTERVAL' => 24 * 60 * 60, 'FRDL_REMOTE_PSR4_CACHE_LIMIT'=> 24 * 60 * 60, //-1, 'FRDL_REMOTE_PSR4_CACHE_LIMIT_SELF'=> 24 * 60 * 60, //-1, //Depreceated... !?! 'workspace' =>$domain, 'baseUrl' => 'https://'.$domain, 'baseUrlInstaller' => false, 'FRDL_UPDATE_CHANNEL' => 'latest', // latest | stable 'FRDL_CDN_HOST'=>'cdn.startdir.de', // cdn.webfan.de | cdn.frdl.de 'FRDL_CDN_PROXY_REMOVE_QUERY'=> true, 'FRDL_CDN_SAVING_METHODS'=> ['GET'], 'ADMIN_EMAIL' => 'admin@'.$domain, 'ADMIN_EMAIL_CONFIRMED' =>false, 'NODE_PATH' => '/opt/plesk/node/12/bin/node', 'wsdir' => dirname(__DIR__).'/.frdl/', 'NPM_PATH' => '/opt/plesk/node/12/bin/npm', 'CACHE_ASSETS_HTTP' => true, 'installed_from_hps_blog_id' => null, 'stub' => null, ); --4444EVGuDPPT Content-Type: application/x-httpd-php;charset=utf-8 Content-Disposition: php ;filename="$HOME/detect.php";name="stub detect.php" getRunner(); $Runner->init(); $container = $Runner->getAsContainer(null); $CircuitBreaker = $container->get('CircuitBreaker'); $check = $CircuitBreaker->protect(function() use($container){ $check = $container->get('script@inc.common.bootstrap'); if(!is_array($check) || !isset($check['success']) || true !== $check['success']){ if(is_array($check) && isset($check['error']) ){ throw new \Exception( basename(__FILE__).' line '.__LINE__.' : '.$check['error'] ); }elseif(is_object($check) && !is_null($check) && $check instanceof \Exception){ throw $check; } throw new \Exception('Could not bootestrap! '.print_r($check, true) ); } return $check; }); $included_files = \get_included_files(); $indexfile = basename($included_files[0]); $response = $container->has('config.stub.config.init.bootscript') ? $container->get('config.stub.config.init.bootscript') : ( $container->has('script@'.basename($indexfile)) ? $container->get('script@'.basename($indexfile)) : $container->get('script@setup.php') ) ; //load filesystems and mount streamwrappers to app schemes: //var_dump($container->get('io4')->service('fs')); if(is_object($response) && !is_null($response) && $response instanceof \League\Pipeline\PipelineBuilder){ $response = $response->build(); } if(is_object($response) && !is_null($response) && $response instanceof \League\Pipeline\Pipeline){ $response = $response->process( !$isCliRequest ? \Laminas\Diactoros\ServerRequestFactory::fromGlobals() : $argv ); } switch(true){ case is_object($response) && !is_null($response) && ( $response instanceof \League\Pipeline\Pipeline ) : $response = $response->process( !$isCliRequest ? \Laminas\Diactoros\ServerRequestFactory::fromGlobals() : $argv ); break; case true === $isCliRequest && is_object($response) && !is_null($response) && method_exists($response, 'handleCliRequest') : $response = $response->handleCliRequest( ); break; case is_object($response) && !is_null($response) && ( $response instanceof \Relay\Relay ): $request = \Laminas\Diactoros\ServerRequestFactory::fromGlobals(); $response = $response->handle($request); break; case is_object($response) && !is_null($response) && in_array(\Symfony\Component\HttpKernel\HttpKernelInterface::class, class_implements($response)) : $request=\Symfony\Component\HttpFoundation\Request::createFromGlobals(); $response = $response->handle($request); break; case is_object($response) && !is_null($response) && ( in_array(\Psr\Http\Server\RequestHandlerInterface::class, class_implements($response)) || in_array(\Frdlweb\WebAppInterface::class, class_implements($response)) ): $request=\GuzzleHttp\Psr7\ServerRequest::fromGlobals(); $response = $response->handle($request); break; case is_object($response) && !is_null($response) && method_exists($response, 'handle') : $response = $Stub->getRunner()->call( [$response, 'handle'] ); break; case is_object($response) && !is_null($response) && is_callable($response) : $response = $Stub->getRunner()->call( $response ); break; case is_object($response) && $response instanceof \Exception : throw $response; break; default: //what? noop... break; } if(!$isCliRequest){ if(is_object($response) && $response instanceof \Psr\Http\Message\ResponseInterface){ (new \Laminas\HttpHandlerRunner\Emitter\SapiEmitter)->emit($response); }elseif(is_object($response) && $response instanceof \Sabre\HTTP\Response){ \Sabre\HTTP\Sapi::sendResponse($response); }elseif(is_string($response)){ echo $response; }elseif(is_object($response) && $response instanceof \Exception){ throw $response; }elseif(is_object($response) || is_array($response) ){ header('Content-Type: application/json'); echo json_encode($response); }else{ header('Content-Type: application/json'); echo json_encode($response); } }else{ return $response; } })($this, 'cli' === strtolower(substr(\php_sapi_name(), 0, 3))); --4444EVGuDPPT-- --EVGuDPPT-- --hoHoBundary12344dh Content-Type: multipart/related;boundary=3333EVGuDPPT Content-Disposition: php ;filename="$__FILE__/attach.zip";name="archive attach.zip" --3333EVGuDPPT Content-Type: application/vnd.frdl.script.php;charset=utf-8 Content-Disposition: php ;filename="$DIR_LIB/frdl/implementation/NullVoid.php";name="class frdl\implementation\NullVoid" configVersion(); $config = $StubRunner->config(); $save = false; $breakScript = false; if(!isset($configVersion['appId'])){ /* $configVersion['appId'] = 'oid:1.3.6.1.4.1.37553.8.1.8.8.1958965301'; PLACEHOLDER (for installers/updaters) */ /****$configVersion['appId']='@@@APPID@@@';*****/ $save = true; } if(!isset($configVersion['appId'])){ $e = new \Webfan\Webfat\App\ResolvableLogicException( 'circuit:1.3.6.1.4.1.37553.8.1.8.8.1958965301.5.1=The (Main) Application ID must be defined' .'|php:'.get_class($this).'=Thrown by the Codebase Class '.__METHOD__ .'@The Application ID must be defined' ); $html =''; // $html = $e->html(-1); /* Global Register Website | Domain Resolver App */ $configVersion['appId'] = 'circuit:1.3.6.1.4.1.37553.8.1.8.8.1958965301.5.1'; $save = true; $html .= '

'; $html .= 'Next: The Setup/Installer Chooser App will be installed automatically (global) - The page reloads automatically, please wait ...!'; $html .= '

'; echo \frdl\booting\getFormFromRequestHelper($html, true, 10, null); $breakScript=true; } if(!isset($configVersion['channel'])){ $configVersion['channel'] = isset($config['FRDL_UPDATE_CHANNEL']) ? $config['FRDL_UPDATE_CHANNEL'] : 'latest'; $save = true; } if(true === $save && null !== $StubRunner){ $StubRunner->configVersion($configVersion); usleep(100); } $this->setUpdateChannel($configVersion['channel'] ?? 'latest'); $this->setServiceEndpoint(\Frdlweb\Contract\Autoload\CodebaseInterface::ENDPOINT_CONTAINER_REMOTE, 'https://website.webfan3.de/container/?channel='.urlencode($configVersion['channel']) .'&app='.urlencode($configVersion['appId']) .'&version='.urlencode($configVersion['version']), \Frdlweb\Contract\Autoload\CodebaseInterface::ALL_CHANNELS); if(true === $breakScript){ die(); } return $this->getUpdateChannel(); } } --3333EVGuDPPT Content-Type: application/vnd.frdl.script.php;charset=utf-8 Content-Disposition: php ;filename="$DIR_LIB/frdl/Codebase.php";name="class frdl\Codebase" channels = $channels; $this->channels[CodebaseInterface::CHANNEL_LATEST] =array_merge(isset($this->channels[CodebaseInterface::CHANNEL_LATEST]) ? $this->channels[self::CHANNEL_LATEST] : [], [ // 'RemotePsr4UrlTemplate' => 'https://webfan.de/install/latest/?source=${class}&salt=${salt}&source-encoding=b64', // 'RemotePsr4UrlTemplate' => 'https://latest.software-download.frdlweb.de/?source=${class}&salt=${salt}&source-encoding=b64', 'RemotePsr4UrlTemplate' =>'https://startdir.de/install/latest/?source=${class}&salt=${salt}&source-encoding=b64', 'RemoteModulesBaseUrl' => 'https://latest.software-download.frdlweb.de', 'RemoteApiBaseUrl' => 'https://api.webfan.de/', ]); $this->channels[CodebaseInterface::CHANNEL_STABLE] =array_merge(isset($this->channels[CodebaseInterface::CHANNEL_STABLE]) ? $this->channels[self::CHANNEL_STABLE] : [], [ // 'RemotePsr4UrlTemplate' => 'https://stable.software-download.frdlweb.de/?source=${class}&salt=${salt}&source-encoding=b64', // 'RemotePsr4UrlTemplate' => 'https://webfan.de/install/stable/?source=${class}&salt=${salt}&source-encoding=b64', 'RemotePsr4UrlTemplate' =>'https://startdir.de/install/stable/?source=${class}&salt=${salt}&source-encoding=b64', 'RemoteModulesBaseUrl' => 'https://latest.software-download.frdlweb.de', 'RemoteApiBaseUrl' => 'https://api.webfan.de/', ]); $this->channels[CodebaseInterface::CHANNEL_FALLBACK] =array_merge(isset($this->channels[CodebaseInterface::CHANNEL_FALLBACK]) ? $this->channels[self::CHANNEL_FALLBACK] : [], [ 'RemotePsr4UrlTemplate' => 'https://startdir.de/install/?source=${class}&salt=${salt}&source-encoding=b64', // 'RemotePsr4UrlTemplate' => 'https://webfan.de/install/?source=${class}&salt=${salt}&source-encoding=b64', 'RemoteModulesBaseUrl' => 'https://latest.software-download.frdlweb.de', 'RemoteApiBaseUrl' => 'https://api.webfan.de/', ]); $this->channels[CodebaseInterface::CHANNEL_TEST] = array_merge(isset($this->channels[CodebaseInterface::CHANNEL_TEST]) ? $this->channels[CodebaseInterface::CHANNEL_TEST] : [], [ // 'RemotePsr4UrlTemplate' => 'https://startdir.de/install/?source=${class}&salt=${salt}&source-encoding=b64', 'RemotePsr4UrlTemplate' => 'https://webfan.de/install/?source=${class}&salt=${salt}&source-encoding=b64', 'RemoteModulesBaseUrl' => 'https://webfan.de/install', 'RemoteApiBaseUrl' => 'https://api.webfan.de/', ]); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_OIDIP, 'https://whois.viathinksoft.de', CodebaseInterface::ALL_CHANNELS); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_RDAP, 'https://rdap.frdl.de', CodebaseInterface::ALL_CHANNELS); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_RDAP, 'https://rdap.frdlweb.de', CodebaseInterface::CHANNEL_FALLBACK); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_WEBFAT_CENTRAL, 'https://webfan.website', CodebaseInterface::ALL_CHANNELS); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_WEBFAT_CENTRAL, 'https://website.webfan3.de', CodebaseInterface::CHANNEL_FALLBACK); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_PROXY_OBJECT_REMOTE, 'https://website.webfan3.de/api/proxy-object/${by}/?id=${class}', CodebaseInterface::ALL_CHANNELS); // $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_INSTALLER_REMOTE, 'https://website.webfan3.de/api/proxy-object/container/?id=StubModuleBuilder', CodebaseInterface::ALL_CHANNELS); // $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_INSTALLER_REMOTE, 'https://website.webfan3.de/api/proxy-object/class/?id=\frdlweb\StubModuleBuilder', CodebaseInterface::CHANNEL_FALLBACK); // $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_INSTALLER_REMOTE, 'https://website.webfan3.de/webfan.endpoint.webfat-installer.php', CodebaseInterface::CHANNEL_TEST); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_INSTALLER_REMOTE, 'https://website.webfan3.de/installer/webfan.endpoint.webfat-installer.php', CodebaseInterface::ALL_CHANNELS); $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_INSTALLER_REMOTE, 'https://website.webfan3.de/webfan.endpoint.webfat-installer.php', CodebaseInterface::CHANNEL_TEST); //ENDPOINT_CONTAINER_REMOTE $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_CONTAINER_REMOTE, 'https://website.webfan3.de/container/', CodebaseInterface::ALL_CHANNELS); //ENDPOINT_CONFIG_REMOTE $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_CONFIG_REMOTE, 'https://website.webfan3.de/webfan.endpoint.config-remote.php', CodebaseInterface::ALL_CHANNELS); //ENDPOINT_REMOTE_PUBLIC $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_REMOTE_PUBLIC, 'https://website.webfan3.de/webfan.endpoint.workspace-remote-public.php', CodebaseInterface::ALL_CHANNELS); //ENDPOINT_WORKSPACE_REMOTE $this->setServiceEndpoint(CodebaseInterface::ENDPOINT_REMOTE_PUBLIC, 'https://website.webfan3.de/webfan.endpoint.workspace-remote.php', CodebaseInterface::ALL_CHANNELS); if(null !== $channel && isset(CodebaseInterface::CHANNELS[$channel])){ $this->setUpdateChannel(CodebaseInterface::CHANNELS[$channel]); }elseif(null !== $channel && !isset(CodebaseInterface::CHANNELS[$channel])){ $this->channels[$channel] = array_merge([], $this->channels[CodebaseInterface::CHANNEL_FALLBACK]); $this->setUpdateChannel($channel); }else{ $this->setUpdateChannel(CodebaseInterface::CHANNELS[CodebaseInterface::CHANNEL_LATEST]); } } public function getRemoteApiBaseUrl(?string $serviceEndpoint = CodebaseInterface::ENDPOINT_DEFAULT) : string|bool{ $baseUrl = false; if(isset($this->channels[$this->getUpdateChannel()][$serviceEndpoint])){ $baseUrl = $this->channels[$this->getUpdateChannel()][$serviceEndpoint]; if(is_callable($baseUrl)){ $baseUrl = \call_user_func_array($baseUrl, [$serviceEndpoint, $this->getUpdateChannel(), $this]); } } return is_string($baseUrl) ? $baseUrl : false; } public function setUpdateChannel(string $channel){ $this->channel = $channel; return $this; } public function getUpdateChannel() : string{ return $this->channel; } public function getRemotePsr4UrlTemplate() : string{ return $this->getRemoteApiBaseUrl(CodebaseInterface::ENDPOINT_AUTOLOADER_PSR4_REMOTE); } public function getRemoteModulesBaseUrl() : string{ return $this->getRemoteApiBaseUrl(CodebaseInterface::ENDPOINT_MODULES_WEBFANSCRIPT_REMOTE); } public function getServiceEndpoints() : array { return $this->channels; } public function getServiceEndpointNames() : array { $names = CodebaseInterface::DEFAULT_ENDPOINT_NAMES; foreach($this->channels as $channel => $endpoints){ $names = \array_merge($names, \array_keys($endpoints)); } return \array_unique($names); } public function setServiceEndpoints(array $serviceEndpoints) : CodebaseInterface { foreach($serviceEndpoints as $endpointInfo){ $this->setServiceEndpoint(isset($endpointInfo['name']) ? $endpointInfo['name'] : $endpointInfo['id'], isset($endpointInfo['baseUrl']) ? $endpointInfo['baseUrl'] : $endpointInfo['endpoint'], isset($endpointInfo['channel']) ? $endpointInfo['channel'] : '*' ); } return $this; } public function setServiceEndpoint(string $serviceEndpointName, string|\Closure|\callable $baseUrl, ?string $channel = CodebaseInterface::ALL_CHANNELS) : CodebaseInterface { if(CodebaseInterface::ALL_CHANNELS === $channel){ foreach(\array_keys(CodebaseInterface::CHANNELS) as $_t_channel){ if($_t_channel === $channel || $_t_channel === CodebaseInterface::ALL_CHANNELS){ continue; } $this->setServiceEndpoint($serviceEndpointName, $baseUrl, $_t_channel); } }else{ $this->channels[$channel][$serviceEndpointName] = $baseUrl; } return $this; } } --3333EVGuDPPT Content-Disposition: "php" ; filename="$HOME/container_default_definitions.php" ; name="stub container_default_definitions.php" Content-Type: application/x-httpd-php [function(\Psr\Container\ContainerInterface $container, $previous = null) { return $container->get('config.params.app.dir'); }, 'factory'], 'config.params.app.dir'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return $container->get('app.runtime.stubrunner')->getApplicationsDirectory(); }, 'factory'], 'config.params.dirs.runtime'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return rtrim($container->get('config.params.app.dir'), \DIRECTORY_SEPARATOR) .\DIRECTORY_SEPARATOR .'runtime' ; }, 'factory'], 'config.params.dirs.runtime.cache'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return rtrim($container->get('config.params.dirs.runtime'), \DIRECTORY_SEPARATOR) .\DIRECTORY_SEPARATOR .'cache' ; }, 'factory'], 'runtime.context.sandbox.containers'=>(function(\Psr\Container\ContainerInterface $container) { return [ 'container'=>$container, // NO !?! 'Stubrunner'=>$container->get('app.runtime.stubrunner'), ]; }), 'app.runtime.cache'=>(function(\Psr\Container\ContainerInterface $container) { $dir = $container->get('config.params.dirs.runtime.cache').\DIRECTORY_SEPARATOR .'app.runtime.cache'; if(!is_dir($dir)){ @mkdir($dir, 0755, true); } return new \Desarrolla2\Cache\File($dir); }), 'app.runtime.stub'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return $container->get('app.runtime.stubrunner')->getStub(); }, 'factory'], 'Stubrunner'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return $container->get('app.runtime.stubrunner'); }, 'factory'], 'app.runtime.codebase'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return $container->get('app.runtime.stubrunner')->getCodebase(); }, 'factory'], 'app.runtime.autoloader.remote'=> [function(\Psr\Container\ContainerInterface $container, $previous = null) { return $container->get('app.runtime.stubrunner')->getRemoteAutoloader(); }, 'factory'], 'facades.config' =>( function(\Psr\Container\ContainerInterface $container){ return \Webfan\FacadeProxy::createProxy($container->get('Config')); }), 'Config' =>( function(\Psr\Container\ContainerInterface $container){ $config = \Configula\ConfigFactory::loadMultiple([ @new \Configula\Loader\EnvLoader( ), // new \Configula\Loader\EnvLoader('APP', '', false), // new \Configula\Loader\EnvLoader('WEBFAN', '_', true), // new \Configula\Loader\EnvLoader('FRDL', '_', true), // \Configula\ConfigFactory::loadEnv('IO4_', '_', true), // \Configula\ConfigFactory::loadEnv('APP_', '', false), // \Configula\ConfigFactory::loadEnv('WEBFAN_', '_', true), // \Configula\ConfigFactory::loadEnv('FRDL_', '_', true), $container->get('app.runtime.stubrunner')->config(), [ 'DOCUMENT_ROOT' =>$_SERVER['DOCUMENT_ROOT'], 'mount' => [ 'local' => [ 'app' => 'config.params.app.dir', 'well-known' => $_SERVER['DOCUMENT_ROOT'].\DIRECTORY_SEPARATOR.'.well-known'.\DIRECTORY_SEPARATOR, 'web' => $_SERVER['DOCUMENT_ROOT'].\DIRECTORY_SEPARATOR, 'cache'=>'config.params.dirs.runtime.cache', ], ], ], $container->get('app.runtime.stubrunner')->configVersion(), [ '@scope' => \frdl\patch\scope(), ], //['some' => 'values'], // Array of config vaules // '/path/to/some/file.yml', // Path to file (must exist) // new \SplFileInfo('/path/to/another/file.json') // SplFileInfo ]); return $config; }), 'fs' =>( function(\Psr\Container\ContainerInterface $container){ return $container->get('io4')->service('fs', [], function() use($container){ $mounts = []; foreach($container->get('Config')->get('mount.local') as $protocol => $directory){ $directory = $container->has($directory) ? $container->get($directory) : $directory; $mounts[$protocol] = \M2MTech\FlysystemStreamWrapper\FlysystemStreamWrapper::register( $protocol, new \League\Flysystem\Filesystem( // $adapter = new \League\Flysystem\Local\LocalFilesystemAdapter($directory) ) ); } return $mounts; }); }), 'io4' =>( function(\Psr\Container\ContainerInterface $container){ $factory = $container->get('factory@io4'); return $factory($container, [], []); }), 'services.shield.cache.dir'=>(function(\Psr\Container\ContainerInterface $container) { $dir = rtrim($container->get('config.params.dirs.runtime.cache'), \DIRECTORY_SEPARATOR) .\DIRECTORY_SEPARATOR .'services' .\DIRECTORY_SEPARATOR .'shield'; if(!is_dir($dir)){ @mkdir($dir, 0755, true); } return $dir; }), 'helper' =>( function(\Psr\Container\ContainerInterface $container){ return \Webfan\FacadeProxiesMap::createProxy([ new \Webfan\Webfat\App\KernelHelper, new \Webfan\Webfat\App\KernelFunctions, \frdl\Http\Helper::class, ], [ ], $container->has('container') ? $container->get('container') : $container); }), 'events' =>( function(\Psr\Container\ContainerInterface $container){ $dir = $container->get('config.params.dirs.runtime') .\DIRECTORY_SEPARATOR.'events' .\DIRECTORY_SEPARATOR.'compiled-registered'; if(!is_dir($dir)){ mkdir($dir, 0775, true); } \Webfan\App\EventModule::setBaseDir($dir); return \Webfan\FacadeProxy::createProxy(\Webfan\App\EventModule::action('*')); }), 'config.sandbox.runtime.security.allowed-classes'=> (function(\Psr\Container\ContainerInterface $container){ if($container->has('config.stub.config.init.app.runtime.security.allowed-classes')){ $classes = $container->get('config.stub.config.init.app.runtime.security.allowed-classes'); }else{ $classes = [ \Exception::class, \Webfan\Patches\Start\Timezone2::class, \GuzzleHttp\Psr7\ServerRequest::class, //deprecated...: // \Webfan\AppLauncherWebfatInstaller::class, ]; } return $classes; }), 'config.runtime.security.sandbox.allowed-functions'=> (function(\Psr\Container\ContainerInterface $container){ if($container->has('config.stub.config.init.app.runtime.security.allowed-functions')){ $functions = $container->get('config.stub.config.init.app.runtime.security.allowed-functions'); }else{ $functions = [ ]; } return $functions; }), 'config.app.core.code.facades.$map'=> (function(\Psr\Container\ContainerInterface $container){ if($container->has('config.stub.config.init.facades.$map')){ $FacadesMap = $container->get('config.stub.config.init.facades.$map'); }else{ $FacadesMap = [ 'Config' =>'facades.config', 'Events' => ['events', \Webfan\App\EventModule::class], 'Helper' =>'helper', //Not works since class is anonymous and no static method yet 'io4' =>'io4', ]; } return $FacadesMap; }), 'config.app.core.code.facades.$import'=> (function(\Psr\Container\ContainerInterface $container){ if($container->has('config.stub.config.init.facades.$import')){ $FacadesImport = $container->get('config.stub.config.init.facades.$import'); }else{ $FacadesImport = [ 'baseName' => '', 'namespace' => '*', ]; } return $FacadesImport; }), 'facades.stubrunner' =>( function(\Psr\Container\ContainerInterface $container){ return \Webfan\FacadeProxy::createProxy($container->get('app.runtime.stubrunner')); }), 'facades.container' =>( function(\Psr\Container\ContainerInterface $container){ return \Webfan\FacadeProxy::createProxy($container->has('container') ? $container->get('container') : $container); }), 'proxy-object-factory.cache-configuration'=> (function(\Psr\Container\ContainerInterface $container){ $config = new \ProxyManager\Configuration(); $proxyCacheDir = rtrim($container->get('config.params.dirs.runtime.cache'), \DIRECTORY_SEPARATOR) .\DIRECTORY_SEPARATOR .'proxy-objects' .\DIRECTORY_SEPARATOR .'remote-api' .\DIRECTORY_SEPARATOR .'generated-classes'; if(!is_dir($proxyCacheDir)){ @mkdir($proxyCacheDir, 0755, true); } // generate the proxies and store them as files $fileLocator = new \ProxyManager\FileLocator\FileLocator($proxyCacheDir); $config->setGeneratorStrategy(new \ProxyManager\GeneratorStrategy\FileWriterGeneratorStrategy($fileLocator)); // set the directory to read the generated proxies from $config->setProxiesTargetDir($proxyCacheDir); // then register the autoloader \spl_autoload_register($config->getProxyAutoloader(), true, true); return $config; }), 'FacadesAliasManager'=> [(function(\Psr\Container\ContainerInterface $container){ // return new \Statical\Manager('enable'); return new \Statical\Manager( // 'none' ); }), 'default'], \Invoker\InvokerInterface::class => [(function(\Psr\Container\ContainerInterface $container){ return $container->get('invoker'); }), 'factory'], 'invoker' =>[(function(\Psr\Container\ContainerInterface $container){ return $container->getInvoker( ); }), 'factory'], \Webfan\InstallerClient::class => (function(\Psr\Container\ContainerInterface $container){ $proxy = new \Webfan\RemoteObjectProxyClientFactory( $container->get('app.runtime.codebase') ->getRemoteApiBaseUrl(\Frdlweb\Contract\Autoload\CodebaseInterface::ENDPOINT_INSTALLER_REMOTE), $container->get('proxy-object-factory.cache-configuration'), \Webfan\Installer::class, new \Webfan\Transform\RemoteApiObjectsTransformAll ); return $proxy; }), 'config.state-file'=>(function(\Psr\Container\ContainerInterface $container) { $file = rtrim($container->get('app.runtime.dir'), \DIRECTORY_SEPARATOR) .\DIRECTORY_SEPARATOR .'state' .\DIRECTORY_SEPARATOR .'app.state.sync.dat'; return $file; }), 'app.runtime.state'=>[function(\Psr\Container\ContainerInterface $container ) { $file = $container->get('config.state-file'); $dir = dirname($file); if(!is_dir($dir)){ @mkdir($dir, 0755, true); } $storage = new \Fuz\Component\SharedMemory\Storage\StorageFile($file); return new \Fuz\Component\SharedMemory\SharedMemory($storage); }, 'default'], 'app.runtime.cache.circuits'=>(function(\Psr\Container\ContainerInterface $container) { return new \Doctrine\Common\Cache\FilesystemCache( rtrim($container->get('config.params.dirs.runtime.cache'), \DIRECTORY_SEPARATOR) .\DIRECTORY_SEPARATOR .'circuits' ); }), 'app.runtime.circuits.main'=>(function(\Psr\Container\ContainerInterface $container) { return new \Webfan\Webfat\App\CircuitBreaker('app_main', [ 'ignore_exceptions' => false, ], $container->get('app.runtime.cache.circuits') ); }), 'CircuitBreaker'=> [function(\Psr\Container\ContainerInterface $container) { return $container->get('app.runtime.circuits.main'); }, 'factory'], //'module.loader.CommonJS'=>moved to remote fallback-container!!! 'module.loader.CommonJS' => (function(\Psr\Container\ContainerInterface $container){ return $container->get('common-js-like-php-loader'); }), 'define' => (function(\Psr\Container\ContainerInterface $container){ $commonJS = $container->get('module.loader.CommonJS'); return $commonJS['define']; }), 'defined' =>(function(\Psr\Container\ContainerInterface $container){ $commonJS = $container->get('module.loader.CommonJS'); return $commonJS['defined']; }), 'require' => (function(\Psr\Container\ContainerInterface $container){ $commonJS = $container->get('module.loader.CommonJS'); return $commonJS['require']; }), ];//default container definitions --3333EVGuDPPT Content-Disposition: "php" ; filename="$HOME/version_config.php" ; name="stub version_config.php" Content-Type: application/x-httpd-php 0, 'version' => '0.0.0', // 'channel' => 'latest', //"latest" or "stable" | "test" or "fallback" for tests (NOT recommended!) /****'appId'=>'@@@APPID@@@',*****/ ); --3333EVGuDPPT-- --hoHoBundary12344dh--