接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
2023-11-04
通过前面的设置,现在系统已经具备了多语言编程的条件,但现在系统还不能够检测到多语言配置的存在,因为还需要在配置文件中开启多语言支持(默认是关闭的),然后还需要配置系统行为,让系统行为载入多语言文件。
1.开启多语言环境
与其他类库一样,开启多语言只需要在配置文件中开启LANG_SWITCH_ON选项即可,如以下代码所示。
完成上述配置项后,还需要在项目Conf目录下创建tags.php文件,然后在该文件中开启CheckLang行为,如以下代码所示。
通过前面的配置,现在就可以使用多语言来编程了。
2.使用多语言环境
在MVC开发中,主要有两种形式的编程环境需要使用多语言。一种是在视图模板中使用;另外一种是在控制器动作、模型中使用(即在后台中使用),下面分别介绍。
(1)在视图模板中使用多语言
视图是用户首先接触也是接触最多的MVC组件,所以应用多语言也主要应用于视图模板。为了方便演示,这里将index动作对应的index.html模板改为国际化多语言模板,如以下代码所示。
(www.chuimin.cn)
上述代码是一个普通的表单代码,与之前不同的是表单中的所有字符说明文字并非固定的,而是来自于语言包。效果如图9-8所示。
图9-8 简体中文首页表单
前面提到过,在默认情况下系统会自动识别当前的浏览器语言环境,并调用相应的语言包。开发人员也可以传入GET参数l(或L),实现手动定位语言包,例如访问http://tp.localhost/?l=zh-tw,表单中的文字将转换为简体中文模式,如图9-9所示。
需要注意的是,一旦选定了指定语言包,系统将会记录,下次再访问该页面时,系统将自动匹配上次选择的语言包。读者可以在此基础上继续完善,实现全页面的多语言转换,例如将分类下拉列表使用多语言包实现。
图9-9 繁体中文首页表单
(2)在后台中使用多语言
在后台中使用多语言通常用于系统提示信息、日志记录、表单验证等。前面的章节中已经介绍过L函数,该函数就是用于在后台获取或设置语言包的快捷函数。下面将通过代码演示L函数的实际使用,代码如下所示。
有关PHP MVC开发实战的文章
接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
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视图引擎,这些标签处理机制类似于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
Eclipse是IBM的一个商业项目,2001年11月起IBM将Eclipse贡献给开源社区,从此奠定了Eclipse的地位。Eclipse通过PDT插件来提供PHP开发支持,Eclipse PDT能够让编写PHP变得简单和高效,下面将介绍Eclipse PDT的安装和使用。Eclipse PDT的安装有两种方式,一种是直接通过Eclipse的扩展进行安装;另一种是下载带PDT插件的Eclipse。下面将以Eclipse3.5.2作为基础,讲解Eclipse PDT插件的安装过程。如果下载带PDT插件的Eclipse,只需要双击Eclipse启动程序即可,此时Eclipse就提供了完美的PHP编程支持。......
2023-11-04
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
使用pear扩展包安装Symfony后,会将Symfony包的脚本命令一并安装,这也是Symfony的一大特色。xxx_dev.php只能用于调试阶段,一旦正式发布应用,应该要将其删除。打开apps/home/modules/news/actions/actions.class.php文件,接下来添加一个名为hello的动作,在hello动作中输出一串字符,代码如下所示。......
2023-11-04
下面通过示例代码,演示Cookie函数的实际应用。Cookie能够存放包括中文在内的字符,但长度需要控制在225个字符之内。通过前面的学习,相信读者已经能够掌握Session及Cookie的操作了。虽然Cookie存放于客户端,但是并不意味着Cookie不适合用于会员验证等场景。所以很多网站会使用加密的方式存放Cookie用户名及密码,甚至结合软件与硬件签名实现高度安全的Cookie。总而言之,使用Cookie存放登录数据是可行的,但要做好加密与解密相关操作。......
2023-11-04
相关推荐