ThinkPHP经过了六年的发展,当前最新版本为3.0。最新版本提供了NoSQL、云技术、分布式支持,使得ThinkPHP的功能更加完善,能够满足大型Web应用的开发需求。ThinkPHP定位于轻量级,快速和简单是该框架的主要特点,这在本书后面的章节内容中将会明显地感受到。接下来首先对ThinkPHP处理MVC的流程作一个简单的介绍,加深对ThinkPHP的直观认识。......
2023-11-04
和其他PHP MV框架一样,要使用ThinkPHP必须首先要安装和部署框架文件。安装ThinkPHP和安装CodeIgniter一样简单,只需要PHP 5.x环境即可。ThinkPHP支持多种数据库驱动,包括PDO套件,接下来将通过ThinkPHP实现一个简单的MVC应用。
1.下载ThinkPHP
读者可以在http://thinkphp.cn/down.html页面上下载到ThinkPHP压缩包文件,也可以在http://thinkphp.googlecode.com/svn/trunk SVN代码库中获取到ThinkPHP最新源代码文件。这里将下载的版本为ThinkPHP 3.0,解压后ThinkPHP目录结构如图4-22所示。
图4-22 ThinkPHP目录结构
如图中所示,ThinkPHP 3.0的目录结构很少,关键的核心包文件位于Lib目录下,该目录包含了MVC控制器、数据库驱动、模板引擎、网络通信类、文件处理等,对于MVC开发人员而言,并不需要太多地关注ThinkPHP本身的这些类库,因为ThinkPHP提供了完善的自定义扩展,ThinkPHP核心类库将在5.2.1章节中介绍。
2.安装ThinkPHP(www.chuimin.cn)
要使用ThinkPHP非常简单,ThinkPHP并不需要安装,所谓的安装只不过是引入ThinkPHP入口文件即可。假设网站目录为tp,那么只需要将ThinkPHP文件夹复制到tp目录下,然后在tp目录下创建项目入口网址,此处所创建的入口文件为index.php,代码如下所示。
如上述代码所示,共定义了3个系统常量:THINK_PATH用于指定ThinkPHP所在目录;APP_PATH指定了当前项目存放目录;APP_NAME指定了当前项目名称,用于多项目部署(如前台和后台)。部署完成后,访问http://localhost/tp网址即可初始化开发环境,ThinkPHP会自动创建必要的目录结构和文件,如图4-23所示。
图4-23 ThinkPHP成功初始化项目
有关PHP MVC开发实战的文章
ThinkPHP经过了六年的发展,当前最新版本为3.0。最新版本提供了NoSQL、云技术、分布式支持,使得ThinkPHP的功能更加完善,能够满足大型Web应用的开发需求。ThinkPHP定位于轻量级,快速和简单是该框架的主要特点,这在本书后面的章节内容中将会明显地感受到。接下来首先对ThinkPHP处理MVC的流程作一个简单的介绍,加深对ThinkPHP的直观认识。......
2023-11-04
在这一过程中,开发人员需要对URL请求进行处理,例如安全检测、URL映射等,只能在运算进行前使用特定的文件进行拦截或处理。ThinkPHP的行为机制本质上是一种URL拦截处理机制,行为的引入把过去没有生命周期概念的PHP应用添加了生命周期的概念。图11-8 ThinkPHP行为执行过程内置行为是确保系统能够运行的基础,一般情况下开发人员不需要扩展内置的行为。如图11-8所示,项目首先执行的行为标签是app_init,一直到app_end标签,中间的标签有些有对应的行为,有些没有。......
2023-11-04
接下将继续以ThinkPHP 3.0为例,详细介绍在MVC的中SOAP服务端开发,步骤如下。然后在home项目中创建api控制器,该控制器用于SOAP服务绑定,首先创建article.wsdl服务绑定,如以下代码所示。图12-15 WSDL绑定出错接下来需要在article.wsdl文件中创建相应的操作及服务绑定。并且建立http://tp.localhost/index.php/api/Article服务绑定地址。至此,一个article.wsdl SOAP服务就创建完成了,接下来就可以使用专业的SOAP测试工具或者在PHP中直接调用该服务。......
2023-11-04
对于普通的开发者而言,最需要关注Lib目录及Extend目录,接下来分别进行介绍。由于ThinkPHP遵循Apache 2.0协议,意味着PHP开发人员可以通过修改ThinkPHP源代码,以便更适合自己的开发需求,这就要求开发人员必须要对Extend目录下的扩展类库要有深入的认识。......
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
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
相关推荐