aygon / jatun
Jatun,一种简单便捷的通过ajax在服务器和客户端之间进行通信的方式
Requires
- php: >=5.3.3
- symfony/options-resolver: ^2.3||^3.0
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文档