1. Go to this page and download the library: Download railken/lem library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
railken / lem example snippets
use App\Foo\FooManager;
$manager = new FooManager();
$result = $manager->create(['name' => 'foo']);
if ($result->ok()) {
$foo = $result->getResource();
} else {
$result->getErrors(); // All errors go here.
}
$manager = new FooManager();
$result = $manager->create(['name' => 'f'));
print_r($result->getErrors()->toArray());
/*
Array
(
[0] => Array
(
[code] => FOO_TITLE_NOT_DEFINED
[attribute] => title
[message] => The title is
use Railken\Lem\Contracts\AgentContract;
class User implements AgentContract
{
public function can($permission, $arguments = [])
{
return true;
}
}
use Railken\Lem\Agents\SystemAgent;
$manager = new FooManager(Auth::user());
$result = $manager->create(['title' => 'f']);
print_r($result->getErrors()->toArray());
/*
Array
(
[0] => Array
(
[code] => FOO_TITLE_NOT AUTHORIZED
[attribute] => title
[message] => You're not authorized to interact with title, missing foo.attributes.title.fill permission
[value] =>
)
)
*
namespace App\Foo;
use Railken\Lem\Manager;
use Railken\Lem\Contracts\AgentContract;
class FooManager extends Manager
{
/**
* Class name entity
*
* @var string
*/
public $entity = Foo::class;
/**
* Construct
*
* @param AgentContract|null $agent
*/
public function __construct(AgentContract $agent = null)
{
parent::__construct($agent);
}
}
namespace App\Foo;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Railken\Lem\Contracts\EntityContract;
class Foo extends Model implements EntityContract
{
use SoftDeletes;
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'foo';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name'];
/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = ['deleted_at'];
}
namespace App\Foo;
use Railken\Lem\Repository;
class FooRepository extends Repository
{
/**
* Custom method
*
* @param string $name
*
* @return Foo
*/
public function findOneByName($name)
{
return $this->findOneBy(['name' => $name]);
}
}
namespace App\Foo;
use Railken\Lem\Contracts\EntityContract;
use Railken\Lem\Contracts\ValidatorContract;
use Railken\Lem\ParameterBag;
use Illuminate\Support\Collection;
use App\Foo\Exceptions as Exceptions;
class FooValidator implements ValidatorContract
{
/**
* Validate
*
* @param EntityContract $entity
* @param ParameterBag $parameters
*
* @return Collection
*/
public function validate(EntityContract $entity, ParameterBag $parameters)
{
$errors = new Collection();
if (!$entity->exists)
$errors = $errors->merge($this->validateRequired($parameters));
$errors = $errors->merge($this->validateValue($entity, $parameters));
return $errors;
}
}
namespace App\Foo;
use Railken\Lem\Contracts\SerializerContract;
use Railken\Lem\Contracts\EntityContract;
use Illuminate\Support\Collection;
use Railken\Bag;
class FooSerializer implements SerializerContract
{
/**
* Serialize entity
*
* @param EntityContract $entity
*
* @return Bag
*/
public function serialize(EntityContract $entity, Collection $select)
{
$bag = (new Bag($entity->toArray()))->only($select->toArray());
return $bag;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.