1. Go to this page and download the library: Download kouks/laravel-casters 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/ */
kouks / laravel-casters example snippets
namespace App\Casters;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
//
}
namespace App\Casters;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
public castRules()
{
return [
'title',
];
}
}
namespace App\Casters;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
public castRules()
{
return [
'title',
'body' => 'long_text',
];
}
}
namespace App\Casters;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
public castRules()
{
return [
'active' => '!name:is_active|type:bool',
];
}
}
namespace App\Casters;
use App\Post;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
public castRules()
{
return [
'text' => function (Post $post) {
return str_limit($post->body, 100);
},
];
}
}
namespace App\Casters;
use App\Post;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
public castRules()
{
return [
'draft' => '@isDraft',
];
}
public function isDraft(Post $post)
{
return ! $post->active;
}
}
...
class PostController extends Controller
{
public function show(Post $post, PostCaster $caster)
{
return $caster->cast($post);
}
}
$post->cast($caster);
Post::cast($caster);
...
class Post extends Model
{
use Castable;
protected $caster = App\Casters\PostCaster::class;
}
$post->cast();
Post::cast();
namespace App\Casters;
use App\Post;
use Koch\Casters\Caster;
class PostCaster extends Caster
{
protected $commentCaster;
public function __construct(CommentCaster $commentCaster)
{
$this->commentCaster = $commentCaster;
}
public castRules()
{
return [
'comments' => function (Post $post) {
return $this->commentCaster->cast($post->comments);
},
];
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.