public static function paths($for = null)
    {
        if ($for !== null) {
            try {
                $for = plugin($for)->name;
            } catch (\Exception $e) {
                return [];
            }
        }

        $cacheKey = "paths({$for})";
        $paths = static::cache($cacheKey);

        if ($paths === null) {
            $paths = [];
            $aco = new AcoManager('__dummy__');
            $aco->loadModel('User.Acos');
            $leafs = $aco->Acos
                ->find('all')
                ->select(['id'])
                ->where([
                    'Acos.id NOT IN' => $aco->Acos
                        ->find()
                        ->select(['parent_id'])
                        ->where(['parent_id IS NOT' => null])
                ]);

            foreach ($leafs as $leaf) {
                $path = $aco->Acos
                    ->find('path', ['for' => $leaf->id])
                    ->extract('alias')
                    ->toArray();
                $path = implode('/', $path);

                if ($for === null ||
                    ($for !== null && str_starts_with($path, "{$for}/"))
                ) {
                    $paths[] = $path;
                }
            }
            static::cache($cacheKey, $paths);
        }

        return $paths;
    }
public static function paths($for = null)
    {
        if ($for !== null) {
            try {
                $for = plugin($for)->name;
            } catch (\Exception $e) {
                return [];
            }
        }

        $cacheKey = "paths({$for})";
        $paths = static::cache($cacheKey);

        if ($paths === null) {
            $paths = [];
            $aco = new AcoManager('__dummy__');
            $aco->loadModel('User.Acos');
            $leafs = $aco->Acos
                ->find('all')
                ->select(['id'])
                ->where([
                    'Acos.id NOT IN' => $aco->Acos
                        ->find()
                        ->select(['parent_id'])
                        ->where(['parent_id IS NOT' => null])
                ]);

            foreach ($leafs as $leaf) {
                $path = $aco->Acos
                    ->find('path', ['for' => $leaf->id])
                    ->extract('alias')
                    ->toArray();
                $path = implode('/', $path);

                if ($for === null ||
                    ($for !== null && str_starts_with($path, "{$for}/"))
                ) {
                    $paths[] = $path;
                }
            }
            static::cache($cacheKey, $paths);
        }

        return $paths;
    }
public static function paths ( $ for = null ) { if ( $ for !== null ) { try { $ for = plugin ( $ for ) -> name ; } catch ( \ Exception $ e ) { return [ ] ; } } $ cacheKey = "paths({$for})" ; $ paths = static :: cache ( $ cacheKey ) ; if ( $ paths === null ) { $ paths = [ ] ; $ aco = new AcoManager ( '__dummy__' ) ; $ aco -> loadModel ( 'User.Acos' ) ; $ leafs = $ aco -> Acos -> find ( 'all' ) -> select ( [ 'id' ] ) -> where ( [ 'Acos.id NOT IN' => $ aco -> Acos -> find ( ) -> select ( [ 'parent_id' ] ) -> where ( [ 'parent_id IS NOT' => null ] ) ] ) ; foreach ( $ leafs as $ leaf ) { $ path = $ aco -> Acos -> find ( 'path' , [ 'for' => $ leaf -> id ] ) -> extract ( 'alias' ) -> toArray ( ) ; $ path = implode ( '/' , $ path ) ; if ( $ for === null || ( $ for !== null && str_starts_with ( $ path , "{$for}/" ) ) ) { $ paths [ ] = $ path ; } } static :: cache ( $ cacheKey , $ paths ) ; } return $ paths ; }
Gets a list of existing ACO paths for the given plugin, or the entire list
if no plugin is given.

@param string $for Optional plugin name. e.g. `Taxonomy`
@return array All registered ACO paths
Gets a list of existing ACO paths for the given plugin or the entire list if no plugin is given .