Added abstract FlexObject, FlexCollection and FlexIndex classes to \Grav\Common\Flex namespace

This commit is contained in:
Matias Griese 2021-02-04 13:13:20 +02:00
parent 359f6c82c5
commit ef00b0d14d
16 changed files with 101 additions and 58 deletions

View File

@ -1,6 +1,8 @@
# v1.7.6
## mm/dd/2021
1. [](#improved)
* Added abstract `FlexObject`, `FlexCollection` and `FlexIndex` classes to `\Grav\Common\Flex` namespace (extend those instead of Framework or Generic classes)
1. [](#bugfix)
* Fixed CLI progressbar in `backup` and `security` commands to use styled output [#3198](https://github.com/getgrav/grav/issues/3198)
* Fixed page save failing because of uploaded images [#3191](https://github.com/getgrav/grav/issues/3191)

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
/**
* @package Grav\Common\Flex
*
* @copyright Copyright (C) 2015 - 2020 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Flex;
use Grav\Common\Flex\Traits\FlexCollectionTrait;
use Grav\Common\Flex\Traits\FlexGravTrait;
/**
* Class FlexCollection
*
* @package Grav\Common\Flex
* @template TKey
* @template T of \Grav\Framework\Flex\Interfaces\FlexObjectInterface
* @extends \Grav\Framework\Flex\FlexCollection<TKey,T>
*/
abstract class FlexCollection extends \Grav\Framework\Flex\FlexCollection
{
use FlexGravTrait;
use FlexCollectionTrait;
}

View File

@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
/**
* @package Grav\Common\Flex
*
* @copyright Copyright (C) 2015 - 2020 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Flex;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexIndexTrait;
/**
* Class FlexIndex
*
* @package Grav\Common\Flex
* @template TKey
* @template T of \Grav\Framework\Flex\Interfaces\FlexObjectInterface
* @template C of \Grav\Framework\Flex\Interfaces\FlexCollectionInterface
* @extends \Grav\Framework\Flex\FlexIndex<TKey,T,C>
*/
abstract class FlexIndex extends \Grav\Framework\Flex\FlexIndex
{
use FlexGravTrait;
use FlexIndexTrait;
}

View File

@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
/**
* @package Grav\Common\Flex
*
* @copyright Copyright (C) 2015 - 2020 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Flex;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexObjectTrait;
use Grav\Framework\Flex\Traits\FlexMediaTrait;
/**
* Class FlexObject
*
* @package Grav\Common\Flex
*/
abstract class FlexObject extends \Grav\Framework\Flex\FlexObject
{
use FlexGravTrait;
use FlexObjectTrait;
use FlexMediaTrait;
}

View File

@ -11,18 +11,14 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\Generic;
use Grav\Common\Flex\Traits\FlexCollectionTrait;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Framework\Flex\FlexCollection;
use Grav\Common\Flex\FlexCollection;
/**
* Class GenericCollection
* @package Grav\Common\Flex\Generic
*
* @extends FLexCollection<string,GenericObject>
* @extends FlexCollection<string,GenericObject>
*/
class GenericCollection extends FlexCollection
{
use FlexGravTrait;
use FlexCollectionTrait;
}

View File

@ -11,19 +11,14 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\Generic;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexIndexTrait;
use Grav\Framework\Flex\FlexIndex;
use Grav\Common\Flex\FlexIndex;
/**
* Class GenericIndex
* @package Grav\Common\Flex\Generic
*
* @extends FLexIndex<string,GenericObject,GenericCollection>
* @mixin GenericCollection
* @extends FlexIndex<string,GenericObject,GenericCollection>
*/
class GenericIndex extends FlexIndex
{
use FlexGravTrait;
use FlexIndexTrait;
}

View File

@ -11,10 +11,7 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\Generic;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexObjectTrait;
use Grav\Framework\Flex\FlexObject;
use Grav\Framework\Flex\Traits\FlexMediaTrait;
use Grav\Common\Flex\FlexObject;
/**
* Class GenericObject
@ -22,7 +19,4 @@ use Grav\Framework\Flex\Traits\FlexMediaTrait;
*/
class GenericObject extends FlexObject
{
use FlexGravTrait;
use FlexObjectTrait;
use FlexMediaTrait;
}

View File

@ -36,7 +36,6 @@ use function is_string;
* @package Grav\Plugin\FlexObjects\Types\GravPages
*
* @extends FlexPageIndex<string,PageObject,PageCollection>
* @mixin PageCollection
*
* @method PageIndex withModules(bool $bool = true)
* @method PageIndex withPages(bool $bool = true)

View File

@ -25,7 +25,6 @@ use Grav\Common\Page\Pages;
use Grav\Common\Utils;
use Grav\Framework\Filesystem\Filesystem;
use Grav\Framework\Flex\FlexObject;
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
use Grav\Framework\Flex\Pages\FlexPageObject;
use Grav\Framework\Route\Route;
@ -35,7 +34,6 @@ use RocketTheme\Toolbox\Event\Event;
use RuntimeException;
use stdClass;
use function array_key_exists;
use function assert;
use function count;
use function func_get_args;
use function in_array;

View File

@ -11,9 +11,7 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\UserGroups;
use Grav\Common\Flex\Traits\FlexCollectionTrait;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Framework\Flex\FlexCollection;
use Grav\Common\Flex\FlexCollection;
/**
* Class UserGroupCollection
@ -23,9 +21,6 @@ use Grav\Framework\Flex\FlexCollection;
*/
class UserGroupCollection extends FlexCollection
{
use FlexGravTrait;
use FlexCollectionTrait;
/**
* @return array
*/

View File

@ -11,19 +11,14 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\UserGroups;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexIndexTrait;
use Grav\Framework\Flex\FlexIndex;
use Grav\Common\Flex\FlexIndex;
/**
* Class GroupIndex
* @package Grav\Common\User\FlexUser
*
* @extends FlexIndex<string,UserGroupObject,UserGroupCollection>
* @mixin UserGroupCollection
*/
class UserGroupIndex extends FlexIndex
{
use FlexGravTrait;
use FlexIndexTrait;
}

View File

@ -11,12 +11,9 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\UserGroups;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexObjectTrait;
use Grav\Common\Flex\FlexObject;
use Grav\Common\User\Access;
use Grav\Common\User\Interfaces\UserGroupInterface;
use Grav\Framework\Flex\FlexObject;
use Grav\Framework\Flex\Traits\FlexMediaTrait;
use function is_bool;
/**
@ -29,10 +26,6 @@ use function is_bool;
*/
class UserGroupObject extends FlexObject implements UserGroupInterface
{
use FlexGravTrait;
use FlexObjectTrait;
use FlexMediaTrait;
/** @var Access */
protected $_access;
/** @var array|null */

View File

@ -11,11 +11,9 @@ declare(strict_types=1);
namespace Grav\Common\Flex\Types\Users;
use Grav\Common\Flex\Traits\FlexCollectionTrait;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\FlexCollection;
use Grav\Common\User\Interfaces\UserCollectionInterface;
use Grav\Common\User\Interfaces\UserInterface;
use Grav\Framework\Flex\FlexCollection;
use function is_string;
/**
@ -26,9 +24,6 @@ use function is_string;
*/
class UserCollection extends FlexCollection implements UserCollectionInterface
{
use FlexGravTrait;
use FlexCollectionTrait;
/**
* @return array
*/

View File

@ -13,11 +13,9 @@ namespace Grav\Common\Flex\Types\Users;
use Grav\Common\Debugger;
use Grav\Common\File\CompiledYamlFile;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexIndexTrait;
use Grav\Common\Flex\FlexIndex;
use Grav\Common\Grav;
use Grav\Common\User\Interfaces\UserInterface;
use Grav\Framework\Flex\FlexIndex;
use Grav\Framework\Flex\Interfaces\FlexStorageInterface;
use Monolog\Logger;
use function count;
@ -29,15 +27,11 @@ use function method_exists;
* @package Grav\Common\Flex\Types\Users
*
* @extends FlexIndex<string,UserObject,UserCollection>
* @mixin UserCollection
*/
class UserIndex extends FlexIndex
{
public const VERSION = parent::VERSION . '.1';
use FlexGravTrait;
use FlexIndexTrait;
/**
* @param FlexStorageInterface $storage
* @return array

View File

@ -14,6 +14,7 @@ namespace Grav\Common\Flex\Types\Users;
use Countable;
use Grav\Common\Config\Config;
use Grav\Common\Data\Blueprint;
use Grav\Common\Flex\FlexObject;
use Grav\Common\Flex\Traits\FlexGravTrait;
use Grav\Common\Flex\Traits\FlexObjectTrait;
use Grav\Common\Flex\Types\Users\Traits\UserObjectLegacyTrait;
@ -33,7 +34,6 @@ use Grav\Framework\File\Formatter\JsonFormatter;
use Grav\Framework\File\Formatter\YamlFormatter;
use Grav\Framework\Flex\Flex;
use Grav\Framework\Flex\FlexDirectory;
use Grav\Framework\Flex\FlexObject;
use Grav\Framework\Flex\Storage\FileStorage;
use Grav\Framework\Flex\Traits\FlexMediaTrait;
use Grav\Framework\Form\FormFlashFile;
@ -42,7 +42,6 @@ use RocketTheme\Toolbox\Event\Event;
use RocketTheme\Toolbox\File\FileInterface;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
use RuntimeException;
use function assert;
use function is_array;
use function is_bool;
use function is_object;

View File

@ -38,6 +38,7 @@ use function in_array;
* @template C of FlexCollectionInterface
* @extends ObjectIndex<TKey,T>
* @implements FlexIndexInterface<TKey,T>
* @mixin C
*/
class FlexIndex extends ObjectIndex implements FlexCollectionInterface, FlexIndexInterface
{