Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/brosenberger/module-entityservices

Magento2 module to enable easier ways to modify db-entities
https://github.com/brosenberger/module-entityservices

Last synced: 22 days ago
JSON representation

Magento2 module to enable easier ways to modify db-entities

Awesome Lists containing this project

README

        

# Goal of this module should be
* easy way to update your database without knowledge of underlaying array configs
* creating new EAV entity schemas with just a view lines of code
* add EAV attributes for products, customers, categories without knowledge of the differing subtle differences

###DONE:
* create tables with various columns, indizes, foreign keys
* create a set of tables for a EAV entity
* update tables (add/modify columns, drop foreign keys or indizes)

###Example:

Usage within a Schema upgrade:
```
class UpgradeSchema implements UpgradeSchemaInterface
{
/**
* @var SchemaBuilder
*/
private $schemaBuilderFactory;

/**
* UpgradeSchema constructor.
* @param SchemaBuilder $schemaBuilderFactory
*/
public function __construct(SchemaBuilderFactory $schemaBuilderFactory) {

$this->schemaBuilderFactory = $schemaBuilderFactory;
}

public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
if (version_compare($context->getVersion(), '1.1.0', '<')) {
$this->schemaBuilderFactory->create($setup)->withTable('entity')
->withIntColumn('entity_id')->asIdentiy()->asUnsigned()->asNullable(false)->asPrimaryKey()->build()
->withVarcharColumn('field_id)->asNullable(false)->build()
->withIndex(['field_id'])->build()
->withForeignKey('field_id, 'other_table', 'other_column')->actionNoAction()->build()
->build();
}
$setup->endSetup();
}
}
```