接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
2023-11-04
前面已经提到过,ThinkPHP默认就已经提供了Memcache缓存驱动。开发人员只需要指定DATA_CACHE_TYPE配置项,就可以改变缓存驱动。例如将DATA_CACHE_TYPE值配置为memcache,那么系统会自动将缓存驱动切换为Memcache。
为了帮助读者提高对Memcached缓存驱动的认识,这里将首先使用传统的PHP代码操作Memcached;然后再介绍使用telnet命令管理Memcached;最后将介绍使用MVC操作Memcached。
1.PHP操作Memcached
成功安装Memcache扩展后,PHP就具备与Memcached通信的能力了。首先需要使用content方法连接上Memcached服务器,代码如下所示。
缓存操作与数据库操作一样,最重要的就是增、删、改、查。接下来将继续使用Memcache成员方法对缓存数据库进行操作。
(1)add(增加缓存条目)
add方法可以向Memcached服务器增加缓存条目,如果存在相同缓存条目,则放弃操作。代码如下所示。
参数1为缓存key,要求250个英文字符之内,该参数需要唯一性;参数2表示缓存内容,最大1000KB,接受常见的数据类型,包括数组、Json等;参数3表示是否使用zlib压缩数据,默认为不使用;参数4表示缓存过期时间,以秒为单位,最大值为2592000(即30d)。
(2)delete(删除指定缓存)
delete可以根据传入的key,删除指定的缓存条目。
(3)set(修改)
set方法与add方法类似,set方法用于修改或添加缓存条目。如果数据库中没有对应的key,则将该条数据存放到数据库中,否则对指定的数据进行修改。
(4)get(查询)
get方法可以对指定的key取得对应的value。
get方法支持两个参数,其中参数1表示缓存key;参数2用于解压缩或反序列,参数2共有3个选项,如下所示。
➢0:数据没有经过压缩(默认)。
➢1:数据已经经过序列化,需要反序列数据。(www.chuimin.cn)
➢2:数据已被zlib压缩,需要解压缩。
2.使用命令行管理Memcached
直接登录Memcached服务器,能够直观地查看到数据库储存状态,对数据进行管理等。在程序调试阶段是必不可少的操作之一,所以读者需要掌握一些频繁使用的命令,方便在程序开发中进行调试。Memcached有第三方完善的管理工具,但最方便的还是使用telnte,命令如下。
成功登录后就可以对数据库进行管理了,常用的命令有stats、stats reset、stats slavs、stats items、stats cachedump、set、get、gets等,命令说明如下。
➢stats:获取Memcached服务器状态信息,包括服务器缓存数量,内在占用等。
➢stats reset:重新统计数据。
➢stats slabs:显示slabs。
➢stats items:显示当前slabs中存放的所有缓存项。
➢stats cachedump:显示slabs指定范围内的缓存项,例如stats cachedump 0,3。
➢flush_all:清空当前服务器上所有缓存数据。
➢quit:退出当前连接。
➢set:修改或添加一条缓存项。
➢get:根据key返回缓存项内容。
3.在MVC中操作Memcached
在ThinkPHP中使用Memcached是非常简单及高效的,系统默认已经提供了Memcache缓存驱动,要将缓存模式改为Memcache,只需要修改配置文件即可,如以下代码所示。
在切换到Memcache驱动后,原有的开发代码不需要做任何改变,这也是Cache中间件最为灵活和方便的地方。
有关PHP MVC开发实战的文章
接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
2023-11-04
Json能够应用在许多场合,包括PHP本身就提供了对Json的反序列化操作。事实上,Json在传送大量数据时本身是存在溢出的,所以在设计时服务端要尽量避免输出大量Json数据。要达到前后台分离设计,使用Json通信最好不过了,因为主流的UI设计框架都对Json提供了完善的支持,下面将以Jquery为基础,详细介绍Ajax与Json的开发过程。由于使用Jsonp进行异步获取数据,所以Ajax异步通信变得简单。......
2023-11-04
ThinkPHP的模板引擎高效之处在于灵活的视图标签,熟悉这些标签的使用方式将能够提高视图模板的设计水平。接下来将从基本的创建视图开始,然后深入介绍默认视图引擎的使用。创建一个视图可分为以下几个步骤。需要注意的是,使用默认的{$}边界符,在视图模板中使用JavaScript等脚本时,有可能造成冲突。ThinkPHP内置了多种视图引擎,在默认情况下系统会使用内置的视图引擎,如果使用第三方的视图引擎,变量的分配方式会有所不同。......
2023-11-04
Memcached最大的特点是数据存放于内存。默认情况下,Memcached将被安装到/usr/local/bin/目录下。安装Memcache扩展Memcache是PHP一个扩展模块,在安装前需要确保当前环境已经具备PHP环境。但是无论是官方文档还是第三方权威资料,都不建议在Windows下部署Memcached生产环境。接下来使用命令终端执行memcached.exe,命令如下。通过上述步骤,Memcached就自动安装完成了,接来下只需要启动即可。......
2023-11-04
在数据库开发中,查询和插入数据是同等重要的,ThinkPHP对数据的插入、更新等都做了高度封装,系统提供create方法,用于创建数据对象。图7-2 create创建数据流程2.create数据操作前面介绍了create方法的运行过程,读者只需要理解即可,在实际应用开发中创建数据的过程是极其简单的。下面将结合示例代码,介绍create方法的实际应用,加深对create方法的认识。一切完成后,此时数据对象存放于内存中,使用add方法进行提交,完成整个create创建数据的过程。......
2023-11-04
图6-4 网站布局ThinkPHP 3.0之前的模板引擎没有布局的概念,但开发人员可以使用include包含文件达到网站布局的效果。布局文件允许嵌套,如果网站页面更加复杂,还可以结合include等标签实现开发需求。另外,如果不需要全局布局,也可以单独在当前页面中使用布局文件,只需要在当前页面头部加上
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
5.统计查询如果严格来区分,统计查询并不算查询语言的讲述范畴,因为在ThinkPHP中要进行字段数值统计并不需要额外定义数组元素,只需要更改显示方式即可。......
2023-11-04
相关推荐