Exemple #1
0
 /**
  * @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;
 }
Exemple #2
0
 /**
  * @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;
 }
Exemple #4
0
 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;
 }
Exemple #5
0
 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;
 }
Exemple #7
0
 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;
 }
Exemple #8
0
 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;
 }
Exemple #9
0
 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;
 }
Exemple #10
0
 /**
  * @param array|Traversable $config
  * @return static
  */
 public static function instant($config)
 {
     $loader = new static($config);
     $loader->register();
     return $loader;
 }
Exemple #11
0
 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;
 }