pionl/laravel-config-class-gate

Enables loading classes (or objects) via config files in Laravel
17 1
Install
composer require pionl/laravel-config-class-gate
Latest Version:v0.1
PHP:>=5.4.0
License:MIT
Last Updated:Oct 27, 2016
Links: GitHub  ·  Packagist
Maintainer: pionl

Class gateway from the laravel config

You can provide overriding of your classes via config file (a list of classes defined by config key - like custom Eloquent model). With this you can work with expected model but add a posibility to allow extending of your base classes.

In default tries to load classes from the classes.php config file.

Example

Example config (classes.php in config folder):

<?php

return [
	"user" => App\\Models\\User::class
];

Call static method on class

$userGate = ClassGate::gate("user");
$users = $userGate->all() // will call User::all()

or shortcut

// will call User::all()
$users = ClassGate::gate("user")->all();

Create instance

$userGate = ClassGate::gate("user");
$user = $userGate->newInstance();

or shortcut

$user = ClassGate::instance("user");
$user = $userGate->theClass();

Class string:

$userGate = ClassGate::gate("user");

or shortcut

$userClass = ClassGate::objectClass("user");

Settings

Own config path

You can provide your own file or "array" path to the config via ClassGate::setConfigPath("models.list") which will find classes in models file and list array entry.

Example config (models.php in config folder):

<?php

return [	
	"othersKeys" : "...",
	"list" => [
		"user" => App\\Models\\User::class
	]
];

Todo

  • Own provider with default config file (optional)
  • Gate that will convert method call to config key and will create the correct ClassGate instance
  • A command that will create file with docs of supported models (will support typehint on ClassGate static methods)

ClassGate proposal

  • ClassGate::user() that will call ClassGate::gate("user")

Related Packages

erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

628,058,007 9,707
laravel/framework

The Laravel Framework.

576,155,700 34,907
laravel/tinker

Powerful REPL for the Laravel framework.

485,678,092 7,440