php教程 php手册 MVC架构学习之Smarty学习病来而蔫 - 韧还

MVC架构学习之Smarty学习病来而蔫 - 韧还

May 20, 2016 am 10:14 AM

前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情。。

当然这次是有小病在身,多个借口吧。

一有病就蔫的不行。。。要锻炼了啊,脚估计也差不多了,游泳试试吧这周。

这次学习Smarty引擎。

 

一、视图引擎简介

帮助用户实现MVC中View的开发。

(可以理解为View的模板

--好的视图引擎

贴近html;

语法简单易懂;

良好的缓存机制;

拓展性良好;

网络资源多

(所以先学习已有的视图引擎)

--知名的

Smarty,PHPLIB

二、Smarty简介

提供了逻辑和外在内容的分离(PHP程序员和美工工作的分离

百度的介绍

然后直接官网或者github下载就好;

其中,demo就是官方给的例子,据说挺不错的;

libs里面是我们要引入的文件,如下:

Smarty.class.php就是实例化要用到的;plugins是插件,可以自己写写放进来用;

三、Smarty的引入、配置与实例制作

1、引入与实例化

首先,还是我个人的环境,前面说过:PHP5.4(忘记了)+Zend+wampserver

创建项目,把demo和libs的东西都放进来

然后在index.php中进行代码编写;

参考Smarty.class.php的代码规范,我写了个人的表头

<span style="color: #008080;"> 1</span> <span style="color: #000000;">php
</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*
</span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> * Project: MVCSmartyTry
</span><span style="color: #008080;"> 4</span> <span style="color: #008000;"> * File: index.php
</span><span style="color: #008080;"> 5</span> <span style="color: #008000;"> * 
</span><span style="color: #008080;"> 6</span> <span style="color: #008000;"> * This file is the test file of using Smarty.
</span><span style="color: #008080;"> 7</span> <span style="color: #008000;"> * 
</span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> * @copyright Andy Liang
</span><span style="color: #008080;"> 9</span> <span style="color: #008000;"> * @author Andy Liang
</span><span style="color: #008080;">10</span> <span style="color: #008000;"> * @package   Smarty
</span><span style="color: #008080;">11</span> <span style="color: #008000;"> * @version   3.1.30-dev
</span><span style="color: #008080;">12</span>  <span style="color: #008000;">*/</span>
로그인 후 복사

 

然后就是简单的引入和实例化

<span style="color: #008080;"> 1</span> <span style="color: #000000;">namespace MVCSmarty\index;
</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*
</span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> * Require the main file of Smarty
</span><span style="color: #008080;"> 4</span>  <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 5</span> <span style="color: #0000ff;">require</span> 'Smarty.class.php'<span style="color: #000000;">;
</span><span style="color: #008080;"> 6</span>  
<span style="color: #008080;"> 7</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*
</span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> * Instantiation of Smarty
</span><span style="color: #008080;"> 9</span>  <span style="color: #008000;">*/</span>
<span style="color: #008080;">10</span> <span style="color: #800080;">$smarty</span>=<span style="color: #0000ff;">new</span> \Smarty();
로그인 후 복사

 

注意,实例化的时候可以去看下.class.php中具体的类名什么的;然后require和include的选择也不再赘述,上文说过;

一般来说实例化感觉都是没有最后那个反斜杠的,可能是Zend的毛病,我再查查看吧。

2、配置相关

这个特殊的类,搞了一大堆属性和方法,网上有很多配置教程,这里提几个常用的东西;

尤其是两个方法:display和assign

<span style="color: #008080;"> 1</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*
</span><span style="color: #008080;"> 2</span> <span style="color: #008000;"> * Configuration of Smarty
</span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> * Especially five configs & two functions
</span><span style="color: #008080;"> 4</span>  <span style="color: #008000;">*/</span>
<span style="color: #008080;"> 5</span> <span style="color: #800080;">$smarty</span>->left_delimiter = "{"<span style="color: #000000;">;
</span><span style="color: #008080;"> 6</span> <span style="color: #800080;">$smarty</span>->right_delimiter = "}"<span style="color: #000000;">;
</span><span style="color: #008080;"> 7</span> <span style="color: #008000;">//</span><span style="color: #008000;">其实看源码会发现:和源码中配置的是一样的;
</span><span style="color: #008080;"> 8</span> <span style="color: #008000;">//然后还有就是templates模板文件存放地址
</span><span style="color: #008080;"> 9</span> <span style="color: #008000;">//templates_c模板编译生成的文件
</span><span style="color: #008080;">10</span> <span style="color: #008000;">//这两个是protected或者private
</span><span style="color: #008080;">11</span> <span style="color: #008000;">//这个版本的Smarty中这些设定的修改都是有方法的
</span><span style="color: #008080;">12</span> <span style="color: #008000;">//比如setTemplateDir,好像是这个
</span><span style="color: #008080;">13</span> <span style="color: #008000;">//总之多看源码</span>
<span style="color: #008080;">14</span> <span style="color: #800080;">$smarty</span>->cache_lifetime = 120<span style="color: #000000;">;
</span><span style="color: #008080;">15</span> 
<span style="color: #008080;">16</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*
</span><span style="color: #008080;">17</span> <span style="color: #008000;"> * The most frequently-used methods.
</span><span style="color: #008080;">18</span>  <span style="color: #008000;">*/</span>
<span style="color: #008080;">19</span> <span style="color: #800080;">$smarty</span>->assign('articleTitle', '文章标题'<span style="color: #000000;">);
</span><span style="color: #008080;">20</span> <span style="color: #800080;">$smarty</span>->display('./templates/test.tpl');
로그인 후 복사

 

assign就是个赋值,但是是在模板中的赋值;

display,顾名思义就是展示了;

给你看demo

<span style="color: #000000;">php
</span><span style="color: #008000;">/*</span><span style="color: #008000;">*
 * Example Application
 *
 * @package Example-application
 </span><span style="color: #008000;">*/</span>

<span style="color: #0000ff;">require</span> '../Smarty.class.php'<span style="color: #000000;">;

</span><span style="color: #800080;">$smarty</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Smarty;

</span><span style="color: #008000;">//</span><span style="color: #008000;">$smarty->force_compile = true;</span>
<span style="color: #800080;">$smarty</span>->debugging = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #800080;">$smarty</span>->caching = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #800080;">$smarty</span>->cache_lifetime = 120<span style="color: #000000;">;

</span><span style="color: #800080;">$smarty</span>->assign("Name", "Fred Irving Johnathan Bradley Peppergill", <span style="color: #0000ff;">true</span><span style="color: #000000;">);
</span><span style="color: #800080;">$smarty</span>->assign("FirstName", <span style="color: #0000ff;">array</span>("John", "Mary", "James", "Henry"<span style="color: #000000;">));
</span><span style="color: #800080;">$smarty</span>->assign("LastName", <span style="color: #0000ff;">array</span>("Doe", "Smith", "Johnson", "Case"<span style="color: #000000;">));
</span><span style="color: #800080;">$smarty</span>->assign("Class", <span style="color: #0000ff;">array</span>(<span style="color: #0000ff;">array</span>("A", "B", "C", "D"), <span style="color: #0000ff;">array</span>("E", "F", "G", "H"), <span style="color: #0000ff;">array</span>("I", "J", "K", "L"),
                               <span style="color: #0000ff;">array</span>("M", "N", "O", "P"<span style="color: #000000;">)));

</span><span style="color: #800080;">$smarty</span>->assign("contacts", <span style="color: #0000ff;">array</span>(<span style="color: #0000ff;">array</span>("phone" => "1", "fax" => "2", "cell" => "3"),
                                  <span style="color: #0000ff;">array</span>("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234"<span style="color: #000000;">)));

</span><span style="color: #800080;">$smarty</span>->assign("option_values", <span style="color: #0000ff;">array</span>("NY", "NE", "KS", "IA", "OK", "TX"<span style="color: #000000;">));
</span><span style="color: #800080;">$smarty</span>->assign("option_output", <span style="color: #0000ff;">array</span>("New York", "Nebraska", "Kansas", "Iowa", "Oklahoma", "Texas"<span style="color: #000000;">));
</span><span style="color: #800080;">$smarty</span>->assign("option_selected", "NE"<span style="color: #000000;">);

</span><span style="color: #800080;">$smarty</span>->display('index.tpl');
로그인 후 복사

3、Demo学习

---------明天更,看bibel去了----------

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)