Skip to content

irfan-dahir/php-mom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Model Object Management

Version Average time to resolve an issue Average time to resolve an issue stable MIT License

PHP-MOM is a stupid simple PHP Model object generator and helper.

Installation

composer require irfan-dahir/php-mom --no-dev

Example

require_once __DIR__ . '/vendor/autoload.php';

// Create the object
$schema = \MOM\Schema::create();

// Create an object from JSON
$schema = \MOM\Schema::fromJSON("[]");

// Adding Properties
$schema->add('prop1'); // will assign value NULL
$schema->add('prop1', 5); // will assign value `5`


// PHP's default syntax
$schema->prop1 = 5;

// Bulk adding
$schema->add([
    'prop2',
    'prop3' => 5,
    'prop4' => 3.142,
    'prop5' => 'foo',
    'prop_unedit' => true
]);

// Works with pre-made models/objects too
// Only copies public properties for now
// Anonymous properties do NOT get copied (there might be a workaround)
$schema->add(new class {
    public $foo = "bar";
    public $baz = false;
});

// Removing properties
$schema->remove('prop2');

// Bulk removal
$schema->remove([
    'prop2','prop3'
]);

// PHP's default syntax
unset($schema->prop2, ...);

// Updating Properties; aka renaming
$schema->update('prop1', 'prop1_edit'); // renames `prop1` to `prop1_edit` (copies the value as well)

// Bulk update
$schema->update([
    'prop5' => 'prop5_edit',
    'prop_unedit' => 'prop_edited'
]);


// Helper Methods

$schema->toArray(); // Model to Array

$schema->toJSON(); // Model to JSON

Running tests

  1. composer require irfan-dahir/php-mom --dev
  2. composer vendor/bin/phpunit tests

Dependencies

  • PHP 7.1+

Issues

Please create an issue for any bugs/security risks/etc