ThinkPHP经过了六年的发展,当前最新版本为3.0。最新版本提供了NoSQL、云技术、分布式支持,使得ThinkPHP的功能更加完善,能够满足大型Web应用的开发需求。ThinkPHP定位于轻量级,快速和简单是该框架的主要特点,这在本书后面的章节内容中将会明显地感受到。接下来首先对ThinkPHP处理MVC的流程作一个简单的介绍,加深对ThinkPHP的直观认识。......
2023-11-04
使用SoapServer类中的setClass方法可以将一个PHP类中的所有方法添加为WSDL操作。根据这个原理,我们可以将一个模型作为WSDL消息体。这是MVC开发优势所在,也是本书始终贯穿的主题。在MVC中,开发人员在设计完一个模型后,后期的扩展是非常灵活的,一个模型的展现层可以是HTML、Json、XML或者SOAP。接下将继续以ThinkPHP 3.0为例,详细介绍在MVC的中SOAP服务端开发,步骤如下。
首先在当前应用中创建一个根目录,并命名为api,该目录用于存放WSDL文件,所以需要确保用户能够访问到该目录。按照前面介绍过的方法,创建一个WSDL文件,并命名为article.wsdl,该文件对应ArticleModel模型。如图12-14所示。
图12-14 article.wsdl文件结构图
接下来在home项目中创建Article用户模型,该模型即为article.wsdl文件的消息类体。为了方便演示,这里只需要创建两个公开方法即可,如以下代码所示。
然后在home项目中创建api控制器,该控制器用于SOAP服务绑定,首先创建article.wsdl服务绑定,如以下代码所示。
此时通过http://tp.localhost/index.php/api/Article访问Article动作,因为还没有在article.wsdl建立服务绑定,但在Article动作中已经声明绑定,所以出现错误,如图12-15所示。
(www.chuimin.cn)
图12-15 WSDL绑定出错
接下来需要在article.wsdl文件中创建相应的操作及服务绑定。这里将创建getUserArticleAll操作及getIdArticle操作。并且建立http://tp.localhost/index.php/api/Article服务绑定地址。
需要注意的是,在WSDL中PATHINFO URL模式是无效的,所以上述绑定地址是不被SOAP认可的,解决办法是隐藏index.php入口文件,或者使用传统显式传参模式(普通模式)以及REWRITE模式。完成后article.wsdl设计视图如图12-16所示。
图12-16 article.wsdl文件设计视图
最终article.wsdl文件的源代码如下所示。
至此,一个article.wsdl SOAP服务就创建完成了,接下来就可以使用专业的SOAP测试工具或者在PHP中直接调用该服务。
有关PHP MVC开发实战的文章
ThinkPHP经过了六年的发展,当前最新版本为3.0。最新版本提供了NoSQL、云技术、分布式支持,使得ThinkPHP的功能更加完善,能够满足大型Web应用的开发需求。ThinkPHP定位于轻量级,快速和简单是该框架的主要特点,这在本书后面的章节内容中将会明显地感受到。接下来首先对ThinkPHP处理MVC的流程作一个简单的介绍,加深对ThinkPHP的直观认识。......
2023-11-04
和其他PHP MV框架一样,要使用ThinkPHP必须首先要安装和部署框架文件。ThinkPHP支持多种数据库驱动,包括PDO套件,接下来将通过ThinkPHP实现一个简单的MVC应用。这里将下载的版本为ThinkPHP 3.0,解压后ThinkPHP目录结构如图4-22所示。图4-23 ThinkPHP成功初始化项目......
2023-11-04
在这一过程中,开发人员需要对URL请求进行处理,例如安全检测、URL映射等,只能在运算进行前使用特定的文件进行拦截或处理。ThinkPHP的行为机制本质上是一种URL拦截处理机制,行为的引入把过去没有生命周期概念的PHP应用添加了生命周期的概念。图11-8 ThinkPHP行为执行过程内置行为是确保系统能够运行的基础,一般情况下开发人员不需要扩展内置的行为。如图11-8所示,项目首先执行的行为标签是app_init,一直到app_end标签,中间的标签有些有对应的行为,有些没有。......
2023-11-04
U函数支持URL路由,下面将分别介绍。数组中的键值对和URL字符串中的参数与参数值是相对应的,最终上述URL在4种URL模式中的表现形式如下。s=/content/username/ceiba在生成URL参数时,可以使用数据库中的信息作为参数值。生成URL后,界面设计人员可以在视图中进行获取了,如以下代码所示。使用U函数生成URL的格式如下。......
2023-11-04
接下来将使用ThinkPHP创建一个简单的MVC网站应用。通过正确修改上述配置文件信息,现在ThinkPHP就可以操作MySQL数据库了。在ThinkPHP中无论是模型的文件名,还是模型的类名都必须遵循内建的文件规则。图4-24 ThinkPHP MVC运行效果 说明:在ThinkPHP 3.0以前的版本中,视图还有主题的概念,所谓的主题是为了使网站更好地应用多模板、多风格。......
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已经完美地解决了读写分离功能,本节将会详细介绍。本例中主数据库的ip地址为192.168.2.1;从数据库的ip地址为192.168.2.2,读者可以使用虚拟机来模拟上述环境。配置完成后,保存配置文件,重启MySQL数据库。接下来将结合ThinkPHP实现数据的读写分离。ThinkPHP提供了完善的读写分离功能,开发人员不需要手动切换数据库。......
2023-11-04
对于普通的开发者而言,最需要关注Lib目录及Extend目录,接下来分别进行介绍。由于ThinkPHP遵循Apache 2.0协议,意味着PHP开发人员可以通过修改ThinkPHP源代码,以便更适合自己的开发需求,这就要求开发人员必须要对Extend目录下的扩展类库要有深入的认识。......
2023-11-04
相关推荐