/** * Returns a model that have an alias and columns with attributes * * @return Model */ public function getAnotherModel() : Model { $model = new ExampleModel(); $model->setAlias('another_model'); $id = new Column('id'); $id->setAutomatic(); $stock = new Column('stock'); $stock->setAlias('product_stock')->addFilter(function ($column) { return (int) $column; }); $product = new Column('product'); $product->setAlias('product_name')->setDefault('My name'); $add = new Column('add'); $add->setAlias('date_added')->setDefault(new \DateTime())->addSetterFilter(function ($column) { return $column instanceof \DateTime ? $column : null; })->addGetterFilter(function ($column) { return empty($column) ? null : new \DateTime($column); }); $model->addColumn($id); $model->addColumn($product); return $model; }
public function testCompliantId() { $model = new ExampleModel(); $this->assertEquals('example', $model->getCompliantId('Example')); $this->assertEquals('example', $model->getCompliantId('example')); //$this->assertEquals('example', $model->getCompliantId('EXAMPLE')); $this->assertEquals('example_model', $model->getCompliantId('_ExampleModel')); //$this->assertEquals('example_model', $model->getCompliantId('Example_Model')); $this->assertEquals('ex4mpl3__m0d3l', $model->getCompliantId('Ex4mpl3_M0d3l')); $this->assertEquals('3xample_model', $model->getCompliantId('3xample_model')); // Exception }