unostentatious / repository
An abstraction layer that let's you implement repository pattern for your models.
Installs: 18
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/unostentatious/repository
Requires
- php: >=7.4
Requires (Dev)
- laravel/lumen-framework: ^9.0
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2025-10-12 19:21:02 UTC
README
Unostentatious Repository
An abstraction layer that let's you implement repository pattern for your models.
Requirements
- PHP 7.4^
- Laravel 8.x / Lumen 8.x
Installation
Step 1: Install through Composer
composer require unostentatious/repository
Step 2: Publish the service provider
In Laravel:
- In
Laravel, editconfig\app.phpand add the provider under package service provider section:
/* * Package Service Providers... */ \Unostentatious\Repository\Integration\Laravel\UnostentatiousRepositoryProvider::class,
- Then open your terminal, while in the
Laravelapp's root directory, publish the vendor:
php artisan vendor:publish --provider="Unostentatious\Repository\Integration\Laravel\UnostentatiousRepositoryProvider"
In Lumen:
- Copy the
unostent-repository.phpconfig file fromvendor/unostentatious/repository/Integration/config/directory - If the
{root}/config/directory is not existing in your Lumen app, make sure to create it first, paste the config file you just copied - Edit
bootstrap/app.phpthen register the service provider and add the package's config explicitly like so:
// Other actions... $app->register(\Unostentatious\Repository\Integration\Laravel\UnostentatiousRepositoryProvider::class); $app->configure('unostent-repository');
Step 3: Custom Configurations
Right now the package's configuration is already residing to your app's config directory /config,
there are 3 values in the package's config that you can customize to fit your needs:
<?php declare(strict_types=1); return [ 'root' => null, 'destination' => null, 'placeholder' => null ];
| Key | Value |
|---|---|
| root | The base directory in which the application is assigned the folder, |
| and the structure of the repositories where will be based on. | |
| sample value: | |
| - Laravel: \app_path() | |
| - Lumen: \base_path() . '/app' | |
| destination | Define the repositories destination within the {root} directory. |
| sample value: | |
| - 'Database' | |
When a value is given ie Database the default path will be: |
|
| `{root}/Database/{placeholder} | |
| placeholder | Define the repositories placeholder within the {root}/{destination}, |
| sample value: | |
| - Repo | |
when a value is given ie Repo the default path will be: |
|
{root}/{destination}/Repo. |
|
| The default value is null, which makes the folder structure into: | |
{root}/{destination}/Repositories |
Installation Done:
Viola! Just like that your ready to use Unostentatious Repository in your Laravel or Lumen application, happy coding!
Usage:
When creating the repository classes it MUST reside on the specified path {root}/{destination}/{placeholder},
where in this case the default path will be app/Database/Repositories:
Step 1: Create the Repositories
It must be composed of a concrete class, and it's corresponding interface.
Step 2: Follow the convention
Then the concrete class MUST extend the AbstractEloquentRepository from the package.
See the example:
<?php namespace App\Database\Repositories; use App\Database\Repositories\Interfaces\UserRepositoryInterface; use Unostentatious\Repository\AbstractEloquentRepository; class UserRepository extends AbstractEloquentRepository implements UserRepositoryInterface { // Business logic goes here. }
Step 3: Load them to the IoC
Then after these classes has been written, just execute composer dump-autoload to invoke the IoC and these classes will now be injectable to consuming classes ie: Controllers.