Skip to content

Instantly share code, notes, and snippets.

@finagin
Created March 21, 2018 08:24
Show Gist options
  • Select an option

  • Save finagin/c1d388b6380551deaf31024e5a53febd to your computer and use it in GitHub Desktop.

Select an option

Save finagin/c1d388b6380551deaf31024e5a53febd to your computer and use it in GitHub Desktop.
<?php
namespace Finagin;
use Finagin\Traits\Readable;
use Finagin\Traits\TraitBootstrapper;
class Example
{
use Readable, TraitBootstrapper;
function __construct()
{
static::boot();
}
}
<?php
namespace Finagin\Traits;
trait Readable
{
protected function bootReadable()
{
var_dump('Readable booted');
}
}
<?php
namespace Finagin\Traits;
/**
* Trait TraitBootstrapper
*
* @package Finagin\Traits
*/
trait TraitBootstrapper
{
protected function boot()
{
foreach (class_uses(static::class) as $trait) {
$boot = 'boot'.substr(strrchr($trait, "\\"), 1);
if (method_exists($this, $boot)) {
call_user_func([$this, $boot]);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment