PHP中类似GWT的框架 PHP-EXT
来源:互联网 发布:多益网络校园招聘笔试 编辑:程序博客网 时间:2024/05/20 06:22
PHP中类似GWT的框架 PHP-EXT
现在从事PHP网站开发的人员并不在少数,使用ExtJs的人更加不在少数,但很多PHP程序员并不熟悉Javascript,但又非常喜欢使用ExtJs.以前他们只能看着JAVA或者.NET的开发者可以使用服务器端的语言来写ExtJs,现在PHP中也有了类似的框PHP-EXT .
下面我们来看一下简单DataGrid的例子:
要实现上面的效果,不用写一句js代码.
- <?php
- /*
- * @author Matthias Benkwitz
- * @website <A href="http://www.bui-hinsche.de" target=_blank>http://www.bui-hinsche.de</A>
- */
- set_include_path(get_include_path().PATH_SEPARATOR.realpath('../../library'));
- include_once 'PhpExt/Javascript.php';
- PhpExt_Javascript::sendContentType();
- $httpHost = "http://".$_SERVER['HTTP_HOST'];
- $docRoot = str_replace("//","/",realpath($_SERVER['DOCUMENT_ROOT']));
- $dir = str_replace("//","/",realpath(dirname(__FILE__)."/.."));
- $baseUrl = str_replace($docRoot,$httpHost,$dir);
- include_once 'PhpExt/Ext.php';
- include_once 'PhpExt/Data/SimpleStore.php';
- include_once 'PhpExt/Data/ArrayReader.php';
- include_once 'PhpExt/Data/JsonReader.php';
- include_once 'PhpExt/Data/ScriptTagProxy.php';
- include_once 'PhpExt/Data/FieldConfigObject.php';
- include_once 'PhpExt/Data/StoreLoadOptions.php';
- include_once 'PhpExt/Data/HttpProxy.php';
- include_once 'PhpExt/Data/JsonStore.php';
- include_once 'PhpExt/Toolbar/PagingToolbar.php';
- include_once 'PhpExt/Grid/ColumnModel.php';
- include_once 'PhpExt/Grid/ColumnConfigObject.php';
- include_once 'PhpExt/Grid/GridPanel.php';
- $PageSize = 10;
- $changeRenderer = PhpExt_Javascript::functionDef("change","if(val > 0){
- return '<span style=/"color:green;/">' + val + '</span>';
- }else if(val < 0){
- return '<span style=/"color:red;/">' + val + '</span>';
- }
- return val;",array("val"));
- $pctChangeRenderer = PhpExt_Javascript::functionDef("pctChange","if(val > 0){
- return '<span style=/"color:green;/">' + val + '%</span>';
- }else if(val < 0){
- return '<span style=/"color:red;/">' + val + '%</span>';
- }
- return val;",array("val"));
- $reader = new PhpExt_Data_JsonReader();
- $reader->setRoot("topics")
- ->setTotalProperty("totalCount")
- ->setId("id");
- $reader->addField(new PhpExt_Data_FieldConfigObject("company"));
- $reader->addField(new PhpExt_Data_FieldConfigObject("price",null,"float"));
- $reader->addField(new PhpExt_Data_FieldConfigObject("change",null,"float"));
- $reader->addField(new PhpExt_Data_FieldConfigObject("pctChange",null,"float"));
- $reader->addField(new PhpExt_Data_FieldConfigObject("lastChange",null,"date","n/j h:ia"));
- $reader->addField(new PhpExt_Data_FieldConfigObject("industry"));
- // Store
- $store = new PhpExt_Data_Store();
- $store->setUrl($baseUrl.'/grid/json_exampledata.php')
- ->setReader($reader)
- ->setBaseParams(array("limit"=>$PageSize));
- // ColumnModel
- $colModel = new PhpExt_Grid_ColumnModel();
- $colModel->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Company","company","company",160, null, null, true, false))
- ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Price","price",null,75,null,PhpExt_Javascript::variable("Ext.util.Format.usMoney"), true, true))
- ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Change","change",null,75,null,PhpExt_Javascript::variable('change'), null, true))
- ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("% Change","pctChange",null,75,null,PhpExt_Javascript::variable('pctChange'), null, true))
- ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Last Updated","lastChange",null,85,null,PhpExt_Javascript::variable("Ext.util.Format.dateRenderer('m/d/Y')"), null, true))
- ->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Industry","industry",null,85,null,null, true, true));
- // Grid
- $grid = new PhpExt_Grid_GridPanel();
- $grid->setStore($store)
- ->setColumnModel($colModel)
- ->setStripeRows(true)
- ->setAutoExpandColumn("company")
- ->setHeight(350)
- ->setWidth(600)
- ->setTitle("Json Grid");
- $paging = new PhpExt_Toolbar_PagingToolbar();
- $paging->setStore($store)
- ->setPageSize($PageSize)
- ->setDisplayInfo("Topics {0} - {1} of {2}")
- ->setEmptyMessage("No topics to display");
- $grid->setBottomToolbar($paging);
- // Ext.OnReady -----------------------
- echo PhpExt_Ext::onReady(
- $changeRenderer,
- $pctChangeRenderer,
- $store->getJavascript(false, "store"),
- $store->load(new PhpExt_Data_StoreLoadOptions(array(
- "start"=>0,"limit"=>$PageSize))
- ),
- $grid->getJavascript(false, "grid"),
- $grid->render("grid-example")
- );
- ?>
项目主页:
http://php-ext.quimera-solutions.com/
http://code.google.com/p/php-ext/
- PHP中类似GWT的框架 PHP-EXT
- PHP中类似GWT的框架 PHP-EXT
- PHP-EXT框架
- EXT,GWT,GWT-EXT与EXT-GWT的区别
- ext-gwt与gwt-ext的区别
- gwt-ext的布局
- 关于Ext-Gwt框架在MyEclipse下的使用
- php(CI框架)+ajax实现类似微博的东东
- 类似gwt的java版Ext编写方式 希望给点建议好改进改进
- gwt-ext中关于FormPanel的数据的验证:
- Ext、GWT、GWT-Ext等之间的区别
- 在javascript中实现类似PHP的var_dump 的方法
- 我为什么反对在实际项目中使用类似ext的js技术框架
- JS中类似PHP中的strrpos\substr的函数--可用
- gwt与php混合使用~
- Ext GWT
- 一款类似Ext的轻量级实现UI的JS框架
- php中$i+$i++类似问题
- 如何Call系统标准TCODE
- .Net线程问题解答收藏
- WshShell.run函数的参数
- AMD三(3)核CPU安装SQL2000/2005以及其他软件系统!
- SQL Server 2005使用手记
- PHP中类似GWT的框架 PHP-EXT
- 新的开始
- SQL注入攻击的原理及其防范措施
- 边界类、控制类和实体类
- 标签页巧配对话框
- tomcat加载类的顺序
- jquery 学习(跨域调用 与 远程脚本)
- 2009微软技术节
- Disable ethernet device renaming upon system cloning for Linux