From c3f4ba80bb2d16f5286fae23be0c20a07ae4f4e7 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Thu, 5 Mar 2020 22:15:09 +0100 Subject: [PATCH] remove todos #224 and #212 --- DataStorage/Database/DataMapperAbstract.php | 23 --------------------- 1 file changed, 23 deletions(-) diff --git a/DataStorage/Database/DataMapperAbstract.php b/DataStorage/Database/DataMapperAbstract.php index f1c118795..56dec6ccc 100644 --- a/DataStorage/Database/DataMapperAbstract.php +++ b/DataStorage/Database/DataMapperAbstract.php @@ -76,29 +76,6 @@ use phpOMS\Utils\ArrayUtils; * Now all mappers are split. The overhead is one additional function call and the setup() function. * Alternatively, think about using traits in the beginning. * - * @todo Orange-Management/phpOMS#212 - * Replace nested models which are represented as scalar/id with NullModel - * Currently there is a default limit on dependency nesting when you request a model from the database. - * This means a model may have a model as member and that model in return also has some model as member and so on. - * In order to prevent very deep nesting either the default nesting level is used to limit the amount of nesting or the user can specify a nesting depth. - * Once the lowest nesting level is reached the mapper only stores the id in the member variable and NOT the model. - * As a result the member variable can be of type null, int (= primary key of the model), or the model type. - * This results in many special cases which a coder may has to consider. - * It might make sense to only store null and the model in the member variable. - * In order to still restrict the nesting the mapper could create a null model and only populate the id. - * This could reduce the complexity for the user and simplify the use cases. - * Additionally, it would now be possible to type hint the return value of many getter functions ?NullModelName. - * If this gets implemented we also need to adjust some setter functions. - * Many setter functions allow to only specify a id of the model. - * Either this needs to be prevented and a Null model needs to be provided (all null models must have a __construct(int $id = 0) function which allows to pass the id) or the setter function needs to create the null model based on the id. - * Implementing the above mentioned things will take some time but could improve the simplicity and overall code quality by a lot (at least from my personal opinion). - * - * @todo Orange-Management/phpOMS#213 & Orange-Management/phpOMS#224 - * Implement composite models - * All references such as ownsOne, hasMany etc. are based on the mappers for these objects. It should be possible to define single columns only. - * One example where this could be useful is the Address/Localization model. - * In here the country is stored by ID but you probably don't want to load an entire object and only the country name from the country table. - * * @todo Orange-Management/Modules#99 * Use binds * Currently databinds are not used. Currently injections are possible.