图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
GD图形处理库(简称GD库)是基于Zend Engine的强大基础类库,网络上许多数据矢量图都是由GD库绘制的,例如网站数据统计图、股市行情分析图、员工考勤图等。当然这只是GD库的基础功能之一,事实上GD库能够处理与图片有关的多数操作,例如前面介绍的图形验证码、图片水印等都是基于GD库实现的。接下来将继续使用GD库绘制数据统计图。
要实现绘制图形,首先需要确认当前PHP环境是否已安装GD库,可以在phpinfo中查看。在确认支持后,就可以直接使用PHP函数调用相应的接口了。
与GD库操作相关的函数非常多,这里为了方便演示,将使用第三方扩展类库DrawGraph实现数据图绘制,读者可以前往http://beauty-soft.net/book/php_mvc/vendor/drawgraph.html网址下载。
解压后得到DrawGraph.class.php扩展类库文件,将该文件复制到项目Lib/ORG目录中,接下来就可以在项目中导入该类库了,如以下代码所示。
如上述代码所示,变量data表示统计数据,DrawGraph类库在生成图形时,需要根据统计结果进行绘制,最终效果如图11-7所示。
(www.chuimin.cn)
图11-7 GD库绘制数据图形效果
改变参数conf的值将直接决定绘图的外观效果,其中width、font、filename选项为必选项。如表11-5所示。
表11-5 DrawGraph配置项
其中width表示画布的宽度,如果为空系统则根据数据的数量进行智能计算;参数font表示字库,该文件可以在操作系统目录中获取;参数headout表示是否在浏览器中直接输出图片,如果需要保存图片,可以设置为false;参数filename表示图片名称,如果headout设置为false时,该参数不能为空(带保存路径,例如/Public/Images/t.png)。
需要注意的是,如果headout为true时,需要确保输出图片前不能有任何数据被输出;当headout设置为false时,需要确保存放目录可读可写。
有关PHP MVC开发实战的文章
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
ThinkPHP经过了六年的发展,当前最新版本为3.0。最新版本提供了NoSQL、云技术、分布式支持,使得ThinkPHP的功能更加完善,能够满足大型Web应用的开发需求。ThinkPHP定位于轻量级,快速和简单是该框架的主要特点,这在本书后面的章节内容中将会明显地感受到。接下来首先对ThinkPHP处理MVC的流程作一个简单的介绍,加深对ThinkPHP的直观认识。......
2023-11-04
图6-4 网站布局ThinkPHP 3.0之前的模板引擎没有布局的概念,但开发人员可以使用include包含文件达到网站布局的效果。布局文件允许嵌套,如果网站页面更加复杂,还可以结合include等标签实现开发需求。另外,如果不需要全局布局,也可以单独在当前页面中使用布局文件,只需要在当前页面头部加上
2023-11-04
将数据全部缓存到Memcached之后,程序在获取数据时并不直接连接数据库,而是连接缓存服务器。服务器关机后,内存中的数据也将会被清空,所以尽量搭建可容灾的Memcached服务器集群。......
2023-11-04
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2023-11-04
在数据库开发中,查询和插入数据是同等重要的,ThinkPHP对数据的插入、更新等都做了高度封装,系统提供create方法,用于创建数据对象。图7-2 create创建数据流程2.create数据操作前面介绍了create方法的运行过程,读者只需要理解即可,在实际应用开发中创建数据的过程是极其简单的。下面将结合示例代码,介绍create方法的实际应用,加深对create方法的认识。一切完成后,此时数据对象存放于内存中,使用add方法进行提交,完成整个create创建数据的过程。......
2023-11-04
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
相关推荐