백엔드 개발 PHP 튜토리얼 ThinkPHP框架之视图_PHP教程

ThinkPHP框架之视图_PHP教程

Jul 14, 2016 am 10:12 AM
smarty thinkphp view 하나 구성하다 액자 기준 치수 주형 ~의 친절한 구성 요소 보다 프로젝트

一、视图

 

1、 视图组件的构成:

 

1) 视图类

 

View类

Smarty类

 

2) 模板

 

Tpl/项目/模块/***.html

 

视图类负责读取模板内容,并实现字符串替换,最终再输出给用户

 

2、 模板定义

 

默认的模板文件定义规则:

 

模板目录/[分组名/]模块名/操作名+模板后缀

 

TMPL_TEMPLATE_SUFFIX

 

一般情况下,模板的后缀大体使用以下几种:

 

.html

.htpl

.tpl

 

3、 分隔符

 

因为每个模板设计者的习惯不同,有的人习惯使用“{}” 有的人使用   {**}

 

在配置文件中,可以设置以下两个配置选项,表示配置模板的分隔符

 

 'TMPL_L_DELIM'=>'

 'TMPL_R_DELIM'=>'}>',

 


 

4、 模板赋值以及输出

 

1)    $this->assign(‘模板变量名’,变量);

         $var = '手机';
       
        $this->assign('var',$var);
       
        $this->display('test');


2)    $this->assign(数组变量);

     

 
   

   

        $var = '手机';
       
        $this->assign('var',$var);
       
        $arr['price'] = 33.3;
        $arr['address'] = '北京';
        $this->assign($arr);
        $this->display('test');
    }

 

 

3)$this->display(‘操作名’)

       当前模块下的指定操作名.html模板

4)$this->display(‘模块:操作名’); //模板是可以跨模块调用的


       引用指定模块下的指定的操作名.html模板

5)$this->display(‘操作’,’输出编码’,’输出类型’);

 


       //跨模块输出
        $this->display('User:login','utf-8','text/html');

 

 

 

5、 模板替换(模板常量)

 在项目中经常要引用css、js、图片的资源需要引用。


__PUBLIC__:当前网站的公共目录

__APP__: 当前项目的URL地址

 __GROUP__:当前分组的URL地址

__URL__:当前模块的URL地址

__ACTION__:当前操作的URL地址

 

在tp中的模板里,可以使用以上模板常量,它们表示不同的字符串,一般在需要引用url时,可以用到以上常量

 

默认来讲:如果我们访问:

 

Localost/index.php/home/product/test,这时模板如使用了__PUBLIC__模板常量,那么它的值指向了apache的htdocs目录下,但是如果我们有多项目,这时会有冲突,如何解决?

 

解决之道:

 

1) 修改配置文件

 

在配置文件中,可以配置一个叫TMPL_PARSE_STRING选项,它可以定义在模板使用的模板常的值

 


 

然后,在模板中,可以这样来引用当前项目下的资源文件:

 


 

2) 配置虚拟主机

 

打开host文件:


打开httpd.conf

 

 


 

将上面的配置选项之前的#去掉

 

打开httpd-vhosts.conf文件,添加新的虚拟主机设置

 


 

重启apache

 

Localhost---àapache/htdocs/

 

Tp.com-----àapache/htdocs/tp/

 

6、 获取内容

 

$this->fetch();

 


 

Display:读取模板、替换内容、输出

Fetch:读取模板、替换内容、返回字符串(主要用于生成静态页)

 

 

二、模板

 

1、 模板注释:

 

l  {/* 注释内容 */ }

 

l  {// 注释内容 }

 

Tp中的模板注释主要是给模板设计者或程序设计者来看的

 

2、 变量输出:

 

程序向模板中赋值

 

普通变量

       $name

数组变量

       $row

对象变量

       $obj

 

代码示例:

 

Php程序:

 


 

模板程序:

 


 

 

 

 

 

 

 

3、 系统变量   (模板中的系统变量)

 

l  $Think.server        $_SERVER

l  $Think.get               $_GET

l  $Think.post             $_POST

l  $Think.request         $_REQUEST

l  $Think.cookie          $_COOKIE

l  $Think.session         $_SESSION

l  $Think.config          读取配置文件      

 

 


 

4、 使用函数

 

l  格式

 

       {$name|fn1|fn2=arg1,arg2,###}

 


 

5、 默认值

 

{$变量|default="默认值"}

 


 

6、 运算符

 

l  +              {$a+$b}

l  -        {$ab}

l  *              {$a*$b}

l  /        {$a/$b}

l  %             {$a%$b}

l  ++            {$a++} 或  {++$a}

l  --              {$a--}  或 {--$a}

 


 

7、 内置标签

 

l  闭合标签


l  开放标签

 

8、 包含文件

 

 

是基于项目的入口文件位置。

 

./Tpl/Admin/Public/header.html

 

我们将网页公共部分放到header.html和footer.html两个公共模板页中,在主页中使用include进行引用

 


 

 

 

上面在引用文件时,路径过长,如何解决?

 

 

l  格式:

      

 

       file(必须):资源文件

       type(可选):资源文件类型,默认为js

 

       起始路径是网站的Public(__PUBLIC__)目录

       采用命名空间方式

       目录.目录.文件名

 


 

10、             volist标签

 

用于遍历数组元素

 

l  格式:

 

      

              {$vo.id}

              {$vo.name}

      

 

l  name(必须):要遍历的数组变量

l  id(必须):当前数组元素

l  offset:     要输出数据的offset

l  length:    输出数据的长度,需要指定offset

l  key: 循环索引   key的值默认为 i

 


 

 

11、             foreach标签

 

用于遍历数组变量

 

语法:

              {$vo.id}

              {$vo.name}

 

Name :要遍历的数组变量

Item:用于保存当前元素的变量名

 

如果有特殊需求,使用volist,否则使用foreach

 


12、             for标签

 

              {$i}

 

属性:

l  start(必须):循环变量开始值

l  end(必须):循环变量结束值 (不包括)

l  name(可选):循环变量名,默认值为i

l  step(可选):步进值,默认值为1

 


 

13、             switch标签

 

l  格式:

              输出内容1

输出内容2

默认情况

 


 

14、             empty标签

 

name为空值

 

15、             assign标签

 

16、             if标签

 

l  if

l  elseif

l  else

 


 

判断时,需要使用以下连接符

 

l  eq或者 equal:等于

l  neq 或者notequal:不等于

l  gt:大于

l  egt:大于等于

l  lt:小于

l  elt:小于等于

l  heq:恒等于

l  nheq:不恒等于

 

17、             使用php代码

 

1)echo “hello”;

2)


 

在配置文件中,有一个选项可以控制第二种方法是否可用


TMPL_DENY_PHP 可以禁用第二种方法

 

建议:尽量少在模板中使用php代码


 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477228.htmlTechArticle一、视图 1、 视图组件的构成: 1) 视图类 View类 Smarty类 2) 模板 Tpl/项目/模块/***.html 视图类负责读取模板内容,并实现字符串替换,最终...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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)

Java 프레임워크에 대한 상용 지원의 비용 효율성을 평가하는 방법 Java 프레임워크에 대한 상용 지원의 비용 효율성을 평가하는 방법 Jun 05, 2024 pm 05:25 PM

Java 프레임워크에 대한 상용 지원의 비용/성능 평가에는 다음 단계가 포함됩니다. 필요한 보증 수준과 SLA(서비스 수준 계약) 보장을 결정합니다. 연구지원팀의 경험과 전문성. 업그레이드, 문제 해결, 성능 최적화와 같은 추가 서비스를 고려하십시오. 위험 완화 및 효율성 향상을 기준으로 비즈니스 지원 비용을 평가합니다.

PHP 프레임워크의 경량 옵션은 애플리케이션 성능에 어떤 영향을 줍니까? PHP 프레임워크의 경량 옵션은 애플리케이션 성능에 어떤 영향을 줍니까? Jun 06, 2024 am 10:53 AM

경량 PHP 프레임워크는 작은 크기와 낮은 리소스 소비를 통해 애플리케이션 성능을 향상시킵니다. 그 특징은 다음과 같습니다: 작은 크기, 빠른 시작, 낮은 메모리 사용량, 향상된 응답 속도 및 처리량, 리소스 소비 감소 실제 사례: SlimFramework는 500KB에 불과한 REST API를 생성하며 높은 응답성과 높은 처리량을 제공합니다.

다양한 애플리케이션 시나리오에 가장 적합한 golang 프레임워크를 선택하는 방법 다양한 애플리케이션 시나리오에 가장 적합한 golang 프레임워크를 선택하는 방법 Jun 05, 2024 pm 04:05 PM

애플리케이션 시나리오를 기반으로 최고의 Go 프레임워크를 선택하세요. 애플리케이션 유형, 언어 기능, 성능 요구 사항 및 생태계를 고려하세요. Common Go 프레임워크: Gin(웹 애플리케이션), Echo(웹 서비스), Fiber(높은 처리량), gorm(ORM), fasthttp(속도). 실제 사례: REST API(Fiber) 구축 및 데이터베이스(gorm)와 상호 작용. 프레임워크를 선택하세요. 주요 성능을 ​​위해서는 fasthttp를 선택하고, 유연한 웹 애플리케이션을 위해서는 Gin/Echo를, 데이터베이스 상호작용을 위해서는 gorm을 선택하세요.

PHP 프레임워크의 학습 곡선은 다른 언어 프레임워크와 어떻게 비교됩니까? PHP 프레임워크의 학습 곡선은 다른 언어 프레임워크와 어떻게 비교됩니까? Jun 06, 2024 pm 12:41 PM

PHP 프레임워크의 학습 곡선은 언어 숙련도, 프레임워크 복잡성, 문서 품질 및 커뮤니티 지원에 따라 달라집니다. PHP 프레임워크의 학습 곡선은 Python 프레임워크에 비해 높고 Ruby 프레임워크에 비해 낮습니다. Java 프레임워크에 비해 PHP 프레임워크는 학습 곡선이 적당하지만 시작하는 데 걸리는 시간이 더 짧습니다.

실제 개발에서 C++ 템플릿의 일반적인 응용 프로그램은 무엇입니까? 실제 개발에서 C++ 템플릿의 일반적인 응용 프로그램은 무엇입니까? Jun 05, 2024 pm 05:09 PM

C++ 템플릿은 컨테이너 클래스 템플릿, 알고리즘 템플릿, 일반 함수 템플릿, 메타프로그래밍 템플릿 등 실제 개발에서 널리 사용됩니다. 예를 들어 일반 정렬 알고리즘은 다양한 유형의 데이터 배열을 정렬할 수 있습니다.

golang 프레임워크 개발에 대한 자세한 실제 설명: 질문과 답변 golang 프레임워크 개발에 대한 자세한 실제 설명: 질문과 답변 Jun 06, 2024 am 10:57 AM

Go 프레임워크 개발에서 일반적인 과제와 해결 방법은 다음과 같습니다. 오류 처리: 관리에는 오류 패키지를 사용하고 중앙에서 오류를 처리하려면 미들웨어를 사용합니다. 인증 및 권한 부여: 타사 라이브러리를 통합하고 사용자 정의 미들웨어를 생성하여 자격 증명을 확인합니다. 동시 처리: 고루틴, 뮤텍스 및 채널을 사용하여 리소스 액세스를 제어합니다. 단위 테스트: 격리를 위해 getest 패키지, 모의 및 스텁을 사용하고, 충분성을 보장하기 위한 코드 적용 도구를 사용합니다. 배포 및 모니터링: Docker 컨테이너를 사용하여 배포를 패키징하고, 데이터 백업을 설정하고, 로깅 및 모니터링 도구를 사용하여 성능과 오류를 추적합니다.

Golang 프레임워크 성능 비교: 현명한 선택을 위한 측정항목 Golang 프레임워크 성능 비교: 현명한 선택을 위한 측정항목 Jun 05, 2024 pm 10:02 PM

Go 프레임워크를 선택할 때 핵심 성과 지표(KPI)에는 응답 시간, 처리량, 동시성 및 리소스 사용량이 포함됩니다. 프레임워크의 KPI를 벤치마킹하고 비교함으로써 개발자는 예상 로드, 성능이 중요한 섹션 및 리소스 제약 조건을 고려하여 애플리케이션 요구 사항에 따라 정보에 입각한 선택을 내릴 수 있습니다.

Golang 프레임워크를 사용할 때 주의해야 할 일반적인 사항은 무엇입니까? Golang 프레임워크를 사용할 때 주의해야 할 일반적인 사항은 무엇입니까? Jun 06, 2024 pm 01:33 PM

Golang 프레임워크를 사용할 때 다음 사항에 주의해야 합니다. 라우팅 오류를 방지하려면 경로가 요청과 일치하는지 확인하세요. 성능 저하를 방지하려면 미들웨어를 주의해서 사용하세요. 성능 문제나 충돌을 방지하려면 데이터베이스 연결을 적절하게 관리하세요. 오류 래퍼를 사용하여 오류를 처리하고 코드가 명확하고 디버그하기 쉬운지 확인하세요. 평판이 좋은 소스로부터 타사 패키지를 얻고 패키지를 최신 상태로 유지하세요.

See all articles