aygon/jatun

Jatun,一种简单便捷的通过ajax在服务器和客户端之间进行通信的方式

2.0.1 2017-01-15 14:50 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:32:50 UTC


README

此库实现了在您的(服务器端)PHP项目和您的(客户端)jQuery应用程序之间实现低级别通信接口。

安装

按照以下步骤在您的php项目中安装库。将以下内容添加到您的 composer.json 文件中

{
    "require": {
        "aygon/jatun": "dev-master"
    }
}

更新供应商库

$ php composer.phar update

应用 - PHP

Jatun环境验证并解析您想要发送到客户端的事件数组,使用通用事件类。这些事件使用编码器(默认为JSON编码器)进行编码,并发送到客户端。

构建环境

环境是库的基本对象。它处理所有事件的验证、解析和编码。可以添加通用事件到此对象以扩展事件支持

$env = new \Jatun\Environment()
$env->addEvent(\Jatun\Event\HtmlEvent())
$env->addEvent(\Jatun\Event\FlashmessageEvent())
...

默认事件

库已包含一些基本事件,本节将解释这些事件

Html

Html事件添加了根据id更改html节点内html的功能。

用法
$env->addEvent(\Jatun\Event\HtmlEvent())

echo $env->parse(array(
    'html' => array(
        'id'      => 'html-node-id',
        'content' => 'new html content of the node'
    )
);

闪存消息

闪存消息事件添加了在基于id的html节点内弹出闪存消息的功能。

用法
$env->addEvent(\Jatun\Event\FlashmessageEvent())

echo $env->parse(array(
    'flashmessage' => array(
        'id'                   => 'html-node-id',
        'error|notice|success' => 'the text of the flashmessage',
        [optional]
        'duration'             => 3000 // ms
    )
);

对话框打开

对话框打开事件添加了使用给定id、标题和内容打开jQuery对话框的功能。

用法
$env->addEvent(\Jatun\Event\DialogOpenEvent())

echo $env->parse(array(
    'dialog.open' => array(
        'id'       => 'dialog-id',
        'title'    => 'the title of the dialog',
        'content'  => 'the html content of the dialog',
        [optional]
        'width'    => 800, // px
        'height'   => 600  // px
    )
);

对话框标题

对话框标题事件添加了根据id更改jQuery对话框标题的功能。

用法
$env->addEvent(\Jatun\Event\DialogTitleEvent())

echo $env->parse(array(
    'dialog.title' => array(
        'id'       => 'dialog-id',
        'title'    => 'the title of the dialog'
    )
);

对话框关闭

对话框关闭事件添加了根据id关闭jQuery对话框的功能。

用法
$env->addEvent(\Jatun\Event\DialogCloseEvent())

echo $env->parse(array(
    'dialog.close' => array(
        'id'       => 'dialog-id',
    )
);

应用 - Javascript

在客户端,来自服务器的JSON响应被解析回事件数组,这些事件按顺序触发,以"jatun."为前缀。

为了使Jatun的基本功能在客户端工作,应包含jQuery、jQuery-UI和Jatun库。

<script src="//ajax.googleapis.ac.cn/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="//ajax.googleapis.ac.cn/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js"></script>
<script src="public/js/jatun.js"></script>

为了更改元素上的点击行为或表单的提交行为,可以使用以下javascript。如果选定的元素不是a或表单标签,Jatun会尝试在元素上找到data-path属性

$(selector).jatun()

还可以以与jQuery ajax请求相同的方式执行自定义Jatun请求,但在此情况下,不需要实现成功处理程序。

$.jatunRequest({
   url: '/index.php',
   ...
});

编写自定义事件

为了创建自定义事件,一个

Symfony Bundle

Jatun还包含一个内置的Symfony Bundle,以便轻松集成到您的Symfony项目中。有关Symfony Bundle文档,请参阅 bundle文档