/** * @param array $config * * @return ITC\Weixin\Payment\Client */ public static function instance(array $config = []) { $client = new static($config); $client->register(new Command\CreateUnifiedOrder()); $client->register(new Command\OrderQuery()); return $client; }
/** * @return TypeRegistry */ public static function withDefaultTypes() : TypeRegistry { $registry = new static(); $registry->register(new AssociationMapping()); $registry->register(new TextMapping()); $registry->register(new BoolMapping()); $registry->register(new DateTimeMapping()); $registry->register(new DecimalMapping()); $registry->register(new FloatMapping()); $registry->register(new IntegerMapping()); $registry->register(new MapMapping()); return $registry; }
protected static function load(array $values) { $container = new static($values); $container['grav'] = $container; $container['debugger'] = new Debugger(); $container['debugger']->startTimer('_init', 'Initialize'); $container->register(new LoggerServiceProvider()); $container->register(new ErrorServiceProvider()); $container['uri'] = function ($c) { return new Uri($c); }; $container['task'] = function ($c) { return !empty($_POST['task']) ? $_POST['task'] : $c['uri']->param('task'); }; $container['events'] = function ($c) { return new EventDispatcher(); }; $container['cache'] = function ($c) { return new Cache($c); }; $container['session'] = function ($c) { return new Session($c); }; $container['plugins'] = function ($c) { return new Plugins(); }; $container['themes'] = function ($c) { return new Themes($c); }; $container['twig'] = function ($c) { return new Twig($c); }; $container['taxonomy'] = function ($c) { return new Taxonomy($c); }; $container['language'] = function ($c) { return new Language($c); }; $container['pages'] = function ($c) { return new Page\Pages($c); }; $container['assets'] = new Assets(); $container['page'] = function ($c) { /** @var Pages $pages */ $pages = $c['pages']; /** @var Language $language */ $language = $c['language']; /** @var Uri $uri */ $uri = $c['uri']; $path = $uri->path(); // Don't trim to support trailing slash default routes $path = $path ?: '/'; $page = $pages->dispatch($path); // Redirection tests if ($page) { // Language-specific redirection scenarios if ($language->enabled()) { if ($language->isLanguageInUrl() && !$language->isIncludeDefaultLanguage()) { $c->redirect($page->route()); } if (!$language->isLanguageInUrl() && $language->isIncludeDefaultLanguage()) { $c->redirectLangSafe($page->route()); } } // Default route test and redirect if ($c['config']->get('system.pages.redirect_default_route') && $page->route() != $path) { $c->redirectLangSafe($page->route()); } } // if page is not found, try some fallback stuff if (!$page || !$page->routable()) { // Try fallback URL stuff... $c->fallbackUrl($page, $path); // If no page found, fire event $event = $c->fireEvent('onPageNotFound'); if (isset($event->page)) { $page = $event->page; } else { throw new \RuntimeException('Page Not Found', 404); } } return $page; }; $container['output'] = function ($c) { return $c['twig']->processSite($c['uri']->extension()); }; $container['browser'] = function ($c) { return new Browser(); }; $container['base_url_absolute'] = function ($c) { return $c['config']->get('system.base_url_absolute') ?: $c['uri']->rootUrl(true); }; $container['base_url_relative'] = function ($c) { return $c['config']->get('system.base_url_relative') ?: $c['uri']->rootUrl(false); }; $container['base_url'] = function ($c) { return $c['config']->get('system.absolute_urls') ? $c['base_url_absolute'] : $c['base_url_relative']; }; $container->register(new StreamsServiceProvider()); $container->register(new ConfigServiceProvider()); $container['inflector'] = new Inflector(); $container['debugger']->stopTimer('_init'); return $container; }
protected static function load() { /** @var Gantry $instance */ $instance = new static(); $instance->register(new ConfigServiceProvider()); $instance->register(new StreamsServiceProvider()); $instance['request'] = function ($c) { return new Request(); }; $instance['events'] = function ($c) { return new EventDispatcher(); }; $instance['platform'] = function ($c) { return new Platform($c); }; $instance['translator'] = function ($c) { return new Translator(); }; $instance['site'] = function ($c) { return new Site(); }; $instance['menu'] = function ($c) { return new Menu(); }; $instance['messages'] = function ($c) { return new Messages(); }; $instance['page'] = function ($c) { return new Page($c); }; // Make sure that nobody modifies the original collection by making it a factory. $instance['configurations'] = $instance->factory(function ($c) { static $collection; if (!$collection) { $collection = (new Outlines($c))->load(); } return $collection->copy(); }); $instance['positions'] = $instance->factory(function ($c) { static $collection; if (!$collection) { $collection = (new Positions($c))->load(); } return $collection->copy(); }); $instance['global'] = function ($c) { $data = $c->loadGlobal() + ['debug' => false, 'production' => false, 'asset_timestamps' => true, 'asset_timestamps_period' => 7]; return new Config($data); }; return $instance; }
static function on($url) { $route = new static($url); if ($route->registered()) { Log::warn_Route("Overwriting registration of [{$url}]."); } return $route->register(); }
/** * Creates and registers new LabelCallback. * * @param string $table * @param callable $callback * * @return static */ public static function createAndRegister($table, callable $callback) { $instance = new static(); $instance->register($table, $callback); return $instance; }
protected static function load() { /** @var Gantry $instance */ $instance = new static(); $instance->register(new ConfigServiceProvider()); $instance->register(new StreamsServiceProvider()); $instance['request'] = function ($c) { return new Request(); }; $instance['events'] = function ($c) { return new EventDispatcher(); }; $instance['platform'] = function ($c) { return new Platform($c); }; $instance['translator'] = function ($c) { return new Translator(); }; // Make sure that nobody modifies the original collection by making it a factory. $instance['configurations'] = $instance->factory(function ($c) { static $collection; if (!$collection) { $collection = (new Configurations($c))->load(); } return $collection->copy(); }); return $instance; }
protected static function load(array $values) { $container = new static($values); $container['grav'] = $container; $container['debugger'] = new Debugger(); $container['debugger']->startTimer('_init', 'Initialize'); $container->register(new LoggerServiceProvider()); $container->register(new ErrorServiceProvider()); $container['uri'] = function ($c) { return new Uri($c); }; $container['task'] = function ($c) { return !empty($_POST['task']) ? $_POST['task'] : $c['uri']->param('task'); }; $container['events'] = function ($c) { return new EventDispatcher(); }; $container['cache'] = function ($c) { return new Cache($c); }; $container['plugins'] = function ($c) { return new Plugins($c); }; $container['themes'] = function ($c) { return new Themes($c); }; $container['twig'] = function ($c) { return new Twig($c); }; $container['taxonomy'] = function ($c) { return new Taxonomy($c); }; $container['pages'] = function ($c) { return new Page\Pages($c); }; $container['assets'] = function ($c) { return new Assets(); }; $container['page'] = function ($c) { /** @var Pages $pages */ $pages = $c['pages']; $page = $pages->dispatch($c['uri']->route()); if (!$page || !$page->routable()) { // special case where a media file is requested if (!$page) { $path_parts = pathinfo($c['uri']->route()); $page = $c['pages']->dispatch($path_parts['dirname']); if ($page) { $media = $page->media()->all(); $media_file = urldecode($path_parts['basename']); if (isset($media[$media_file])) { $medium = $media[$media_file]; // loop through actions for the image and call them foreach ($c['uri']->query(null, true) as $action => $params) { if (in_array($action, Medium::$valid_actions)) { call_user_func_array(array(&$medium, $action), explode(',', $params)); } } header('Content-type: ' . ($mime = $medium->get('mime'))); echo file_get_contents($medium->path()); die; } } } // If no page found, fire event $event = $c->fireEvent('onPageNotFound'); if (isset($event->page)) { $page = $event->page; } else { throw new \RuntimeException('Page Not Found', 404); } } return $page; }; $container['output'] = function ($c) { return $c['twig']->processSite($c['uri']->extension()); }; $container['browser'] = function ($c) { return new Browser(); }; $container['base_url_absolute'] = function ($c) { return $c['config']->get('system.base_url_absolute') ?: $c['uri']->rootUrl(true); }; $container['base_url_relative'] = function ($c) { return $c['config']->get('system.base_url_relative') ?: $c['uri']->rootUrl(false); }; $container['base_url'] = function ($c) { return $c['config']->get('system.absolute_urls') ? $c['base_url_absolute'] : $c['base_url_relative']; }; $container->register(new StreamsServiceProvider()); $container->register(new ConfigServiceProvider()); $container['debugger']->stopTimer('_init'); return $container; }
protected static function load(array $values) { $container = new static($values); $container['grav'] = $container; $container['debugger'] = new Debugger(); $container['debugger']->startTimer('_init', 'Initialize'); $container->register(new LoggerServiceProvider()); $container->register(new ErrorServiceProvider()); $container['uri'] = function ($c) { return new Uri($c); }; $container['task'] = function ($c) { return !empty($_POST['task']) ? $_POST['task'] : $c['uri']->param('task'); }; $container['events'] = function ($c) { return new EventDispatcher(); }; $container['cache'] = function ($c) { return new Cache($c); }; $container['plugins'] = function ($c) { return new Plugins(); }; $container['themes'] = function ($c) { return new Themes($c); }; $container['twig'] = function ($c) { return new Twig($c); }; $container['taxonomy'] = function ($c) { return new Taxonomy($c); }; $container['pages'] = function ($c) { return new Page\Pages($c); }; $container['assets'] = function ($c) { return new Assets(); }; $container['page'] = function ($c) { /** @var Pages $pages */ $pages = $c['pages']; /** @var Uri $uri */ $uri = $c['uri']; $path = rtrim($uri->path(), '/'); $path = $path ?: '/'; $page = $pages->dispatch($path); if (!$page || !$page->routable()) { $path_parts = pathinfo($path); $page = $c['pages']->dispatch($path_parts['dirname'], true); if ($page) { $media = $page->media()->all(); $parsed_url = parse_url(urldecode($uri->basename())); $media_file = $parsed_url['path']; // if this is a media object, try actions first if (isset($media[$media_file])) { $medium = $media[$media_file]; foreach ($uri->query(null, true) as $action => $params) { if (in_array($action, ImageMedium::$magic_actions)) { call_user_func_array(array(&$medium, $action), explode(',', $params)); } } Utils::download($medium->path(), false); } else { Utils::download($page->path() . DIRECTORY_SEPARATOR . $uri->basename(), true); } } // If no page found, fire event $event = $c->fireEvent('onPageNotFound'); if (isset($event->page)) { $page = $event->page; } else { throw new \RuntimeException('Page Not Found', 404); } } return $page; }; $container['output'] = function ($c) { return $c['twig']->processSite($c['uri']->extension()); }; $container['browser'] = function ($c) { return new Browser(); }; $container['base_url_absolute'] = function ($c) { return $c['config']->get('system.base_url_absolute') ?: $c['uri']->rootUrl(true); }; $container['base_url_relative'] = function ($c) { return $c['config']->get('system.base_url_relative') ?: $c['uri']->rootUrl(false); }; $container['base_url'] = function ($c) { return $c['config']->get('system.absolute_urls') ? $c['base_url_absolute'] : $c['base_url_relative']; }; $container->register(new StreamsServiceProvider()); $container->register(new ConfigServiceProvider()); $container['debugger']->stopTimer('_init'); return $container; }
/** * @param array|Traversable $config * @return static */ public static function instant($config) { $loader = new static($config); $loader->register(); return $loader; }
protected static function load(array $values) { $container = new static($values); $container['config_path'] = CACHE_DIR . 'config.php'; $container['grav'] = $container; $container['events'] = function ($c) { return new EventDispatcher(); }; $container['uri'] = function ($c) { return new Uri($c); }; $container['config'] = function ($c) { return Config::instance($c); }; $container['cache'] = function ($c) { return new Cache($c); }; $container['plugins'] = function ($c) { return new Plugins($c); }; $container['themes'] = function ($c) { return new Themes($c); }; $container['twig'] = function ($c) { return new Twig($c); }; $container['taxonomy'] = function ($c) { return new Taxonomy($c); }; $container['pages'] = function ($c) { return new Page\Pages($c); }; $container['assets'] = function ($c) { return new Assets(); }; $container['page'] = function ($c) { $page = $c['pages']->dispatch($c['uri']->route()); if (!$page || !$page->routable()) { $event = $c->fireEvent('onPageNotFound'); if (isset($event->page)) { $page = $event->page; } else { throw new \RuntimeException('Page Not Found', 404); } } return $page; }; $container['output'] = function ($c) { return $c['twig']->processSite($c['uri']->extension()); }; $container['browser'] = function ($c) { return new Browser(); }; $container->register(new StreamsServiceProvider()); return $container; }