Tags functionality

This commit is contained in:
2023-04-25 17:49:49 +00:00
parent 5ac437d7c1
commit 05a330d65e
3 changed files with 73 additions and 4 deletions
+20 -2
View File
@@ -20,6 +20,7 @@ class RouteCollection
public $_groupIn = false;
public $_groupBase = '';
public $_groupList = [];
public $_groups = [];
//SINGLETON==============================================
@@ -197,7 +198,7 @@ class RouteCollection
*
* @ctag RouteCollection::group('base',function(){})
*/
static function group($base = '', $callback)
static function group($base = '', $callback, $name = '')
{
$collection = self::getInstance();
$collection->_groupList = [];
@@ -206,7 +207,9 @@ class RouteCollection
call_user_func($callback);
$collection->_groupBase = '';
$collection->_groupIn = false;
return new RouteGroup($collection->_groupList);
$group = new RouteGroup($collection->_groupList);
$collection->_groups[$name] = $group;
return $group;
}
//DEFINITORS=============================================
@@ -355,4 +358,19 @@ class RouteCollection
}
}
public static function getGroupRoutesWithTags($group, $tag = '*')
{
$instance = self::getInstance();
if (!isset($instance->_groups[$group])) {
return [];
}
if (!isset($tag)) {
return $instance->_groups[$group];
}
return $instance->_groups[$group]->getRoutesWithTag($group, $tag);
}
}