laravel-Macroable

Posted wangjianheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel-Macroable相关的知识,希望对你有一定的参考价值。

  说明:类型为trait,引入后可以在不修改类代码的情况下,为类植入新的方法(类的方法或静态方法均可)。使用__call实现

  引入:

<?php
require ‘vendor/autoload.php‘;
use IlluminateSupportTraitsMacroable;

//$app = require_once ‘bootstrap/app.php‘;

class test {
    use Macroable;
    public $test = ‘param test‘;
    public static $test2 = ‘static param test2‘;
    
}

$o = new test;

  例子:

  (1)植入类方法

$o::macro(‘run‘, function () {
    echo $this->test;
});

$o->run();

  (2)植入静态方法

$o::macro(‘run2‘, function () {
    echo static::$test2;
});

$o::run2();

  (3)是否植入过该方法

$o::macro(‘run2‘, function () {
    echo static::$test2;
});

echo $o::hasMacro(‘run2‘);

  (4)merge其他类的public和protected方法

class test2 {
    public function test2Method() {
        return function () {
            echo ‘test2 method‘;
        };
    }
}


$o::mixin(new test2);
$o->test2Method();

 

以上是关于laravel-Macroable的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数