Relationships, Entities and Datasources for PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build
src
tests
.env.example
.gitignore
.travis.yml
README.md
build.xml
composer.json
composer.lock
phpred
phpunit.xml

README.md

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