diff --git a/lib/abstractfactory/mainabstractfactory.php b/lib/abstractfactory/mainabstractfactory.php new file mode 100644 index 0000000..8243153 --- /dev/null +++ b/lib/abstractfactory/mainabstractfactory.php @@ -0,0 +1,20 @@ +resolveFactory(NullFactory::class); + } + +} \ No newline at end of file diff --git a/lib/entity/nullentity.php b/lib/entity/nullentity.php index fb27572..f637019 100644 --- a/lib/entity/nullentity.php +++ b/lib/entity/nullentity.php @@ -5,9 +5,10 @@ namespace Bx\Null\Entity; use Bx\Null\IFields\NullFields; +use Wt\Core\Entity\AEntity; use Wt\Core\Supports\Entity; -class NullEntity extends Entity +class NullEntity extends AEntity { /** * @return NullFields diff --git a/lib/facade/defaultfactoryfacade.php b/lib/facade/defaultfactoryfacade.php index e61b6ec..a59646c 100644 --- a/lib/facade/defaultfactoryfacade.php +++ b/lib/facade/defaultfactoryfacade.php @@ -4,9 +4,17 @@ namespace Bx\Null\Facade; +use Bx\Null\AbstractFactory\MainAbstractFactory; use Wt\Core\Facade\AFacade; class DefaultFactoryFacade extends AFacade { + /** + * @return MainAbstractFactory + */ + public function main() + { + return $this->app->container()->make($this->app->module()->getId().':mainAbstractFactory'); + } } \ No newline at end of file diff --git a/lib/factory/nullormfactory.php b/lib/factory/nullormfactory.php index c5273cc..9609f28 100644 --- a/lib/factory/nullormfactory.php +++ b/lib/factory/nullormfactory.php @@ -37,12 +37,20 @@ class NullFactory extends AORMFactory */ public function getEntityById($id) { + return parent::getEntityById($id); + } - $res = $this->getList(['=ID' => $id]); - if( $res ){ - return $this->getEntityByResult(reset($res)); - } - return null; + /** + * @param array $filter + * @param array $order + * @param array $select + * @param null $limit + * @param null $offset + * @return NullCollection + */ + public function getCollection($filter = [], $order = [], $select = [], $limit = null, $offset = null) + { + return parent::getCollection($filter, $order, $select, $limit, $offset); // TODO: Change the autogenerated stub } /** diff --git a/lib/orm/nulltable.php b/lib/orm/nulltable.php index 59d498b..b7644fe 100644 --- a/lib/orm/nulltable.php +++ b/lib/orm/nulltable.php @@ -40,13 +40,12 @@ class NullTable extends ADataManager 'title' => 'Id', ]), 'CREATED_AT' => new \Bitrix\Main\Entity\DatetimeField('CREATED_AT', [ - 'default_value' => new \Bitrix\Main\Type\DateTime(), 'title' => 'CreatedAt', - 'in_form' => false, + 'user_edit' => false, ]), 'UPDATED_AT' => new \Bitrix\Main\Entity\DatetimeField('UPDATED_AT', [ 'title' => 'UpdatedAt', - 'in_form' => false, + 'user_edit' => false, ]), ); } @@ -58,7 +57,7 @@ class NullTable extends ADataManager * @return \Bitrix\Main\ORM\Data\UpdateResult * @throws \Bitrix\Main\ObjectException */ - public static function update($id, $fields) + public static function update($id, array $fields) { foreach (static::getEntity()->getFields() as $field){ if(is_a($field, DatetimeField::class)){ @@ -71,6 +70,7 @@ class NullTable extends ADataManager $fields = array_merge($fields, [ 'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(), // date(CDatabase::DateFormatToPHP(FORMAT_DATETIME)) ]); + unset($fields['CREATED_AT']); $result = parent::update($id, $fields); return $result; @@ -81,7 +81,7 @@ class NullTable extends ADataManager * @return \Bitrix\Main\ORM\Data\AddResult * @throws \Bitrix\Main\ObjectException */ - public static function add($fields) + public static function add(array $fields) { $fields = array_merge($fields, [ 'CREATED_AT' => new \Bitrix\Main\Type\DateTime(), diff --git a/lib/providers/defaultfactoryprovider.php b/lib/providers/defaultfactoryprovider.php new file mode 100644 index 0000000..af6b2a3 --- /dev/null +++ b/lib/providers/defaultfactoryprovider.php @@ -0,0 +1,25 @@ +config(); + $serviceContainer = $app->container(); + + /** + * @var $mainAbstractFactory MainAbstractFactory + */ + $mainAbstractFactory = $serviceContainer->make(MainAbstractFactory::class, [$config->get('MainAbstractFactory', [])]); + $serviceContainer->singleton($app->module()->getId().':mainAbstractFactory', $mainAbstractFactory); + + } +} \ No newline at end of file