1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 Phalcon7 发布 Dao7-1.3.2,改进事件机制 下载

本帖由 漂亮的石头2017-12-19 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    488,074
    赞:
    47
    模型的属性方法增加前缀“__”。

    改进事件机制,能够针对部分操作对应事件进行拦截,并停止继续运行:

    $eventsManager = new Phalcon\Events\Manager();

    $eventsManager->attach('model:beforeQuery', function($event, $model, $data, $prevdata) {
    if (!$prevdata) {
    return ['data' => 1];
    }
    return $prevdata;
    });

    $eventsManager->attach('model:beforeQuery', function($event, $model, $data, $prevdata) {
    if (!$prevdata) {
    return [];
    }
    $prevdata['data2'] = 2;
    return $prevdata;
    });

    $di = new Phalcon\Di\FactoryDefault;
    $di->set('modelsManager', function() use ($eventsManager) {
    $modelsManager = new Phalcon\Mvc\Model\Manager();
    $modelsManager->setEventsManager($eventsManager);
    return $modelsManager;
    }, true);

    class Robots extends Phalcon\Mvc\Model {
    public function beforeQuery($event, $data, $prevdata) {
    if (!$prevdata) {
    return [];
    }
    $prevdata['data3'] = 3;
    return $prevdata;
    }
    }

    var_dump(Robots::find());

    返回:

    array(2) {
    ["data"]=>
    int(1)
    ["data2"]=>
    int(2)
    ["data3"]=>
    int(3)
    }
    Phalcon7 发布 Dao7-1.3.2,改进事件机制下载地址
     
正在加载...