Skip to content
/ phpred Public

Relationships, Entities and Datasources for PHP

Notifications You must be signed in to change notification settings

mcred/phpred

Repository files navigation

PHPRed

Build Status Code Climate Test Coverage Issue Count

Description

PHPRed is an opinionated light weight ORM. While there are many available ORMs for PHP, many contain features that I have never used. PHPRed contains very basic methods and usage.

Requirements

  • PHP 7.1+
  • Composer
  • Mysqli

Installation

composer require mcred/phpred

Setup

In addition to the example below, there are examples available in the `tests/mocks` folder. Setting up a model is very easy: create a model class that extends the `PHPRed/Models/Model` class then define the properties of that model in the constructor. Such as:

<?php
class MyClass extends \PHPRed\Models\Model
{
    public function __construct(\MysqliDb $mysql)
    {
        $this->model = 'MyClass';
        $this->table = 'my_class';
        $this->primaryKey = 'id';
        $this->foreignKey = 'my_class_id';
        $this->fields = ['id', 'name'];
        $this->requiredFields = ['name'];
        $this->uniqueFields = ['name'];
        $this->hasMany = ['MyClassProperties'];
        $this->hasAndBelongsToMany = ['Users'];

        parent::__construct($mysql);
    }
}

Constructor Properties

  • model: string
  • table: string
  • primaryKey: string
  • foreignKey: string
  • fields: array
  • requiredFields: array
  • uniqueFields: array
  • hasMany: array
  • belongsTo: array
  • hasAndBelongsToMany: array

Methods

  • getAll() : array
  • getById(int $modelId) : array
  • getBySearch(array ['key' => 'value']) : array
  • insert(array $data) : array
  • updateById(int $modelId, array $data) : array
  • deleteById(int $modelId): void