Version 1
[yaffs-website] / vendor / symfony-cmf / routing / LazyRouteCollection.php
diff --git a/vendor/symfony-cmf/routing/LazyRouteCollection.php b/vendor/symfony-cmf/routing/LazyRouteCollection.php
new file mode 100644 (file)
index 0000000..f4af373
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+
+/*
+ * This file is part of the Symfony CMF package.
+ *
+ * (c) 2011-2015 Symfony CMF
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Cmf\Component\Routing;
+
+use Symfony\Component\Routing\Exception\RouteNotFoundException;
+use Symfony\Component\Routing\RouteCollection;
+use Symfony\Component\Routing\Route;
+
+class LazyRouteCollection extends RouteCollection
+{
+    /**
+     * The route provider for this generator.
+     *
+     * @var RouteProviderInterface
+     */
+    protected $provider;
+
+    public function __construct(RouteProviderInterface $provider)
+    {
+        $this->provider = $provider;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getIterator()
+    {
+        return new \ArrayIterator($this->all());
+    }
+
+    /**
+     * Gets the number of Routes in this collection.
+     *
+     * @return int The number of routes
+     */
+    public function count()
+    {
+        return count($this->all());
+    }
+
+    /**
+     * Returns all routes in this collection.
+     *
+     * @return Route[] An array of routes
+     */
+    public function all()
+    {
+        return $this->provider->getRoutesByNames(null);
+    }
+
+    /**
+     * Gets a route by name.
+     *
+     * @param string $name The route name
+     *
+     * @return Route|null A Route instance or null when not found
+     */
+    public function get($name)
+    {
+        try {
+            return $this->provider->getRouteByName($name);
+        } catch (RouteNotFoundException $e) {
+            return;
+        }
+    }
+}