毛毛虫教你写一个属于自己的模板引擎_PHP教程
#phpchina首发# Smarty一直被人视为是多余的东西,我觉得认为Smarty多余的人才是多余的....不说这些了。今天我就教大家写个模板引擎,让大家都可以写一个属于自己的模板引擎,而且看完这篇文章之后,你对Smarty的认识会更进一步的。我的模板引擎名叫Stupid("傻瓜"的意思),我不喜欢太聪明的东西! 好了,我们现在就先编写stupid.class.php吧。 下面定义了两个常量,用来存放模板文件夹和编译文件夹的: 开始编码了>>> define(TPL_DIR, ./templates/); class Stupid { 开始写个构造器吧>>> public function Stupid() { 在构造器中,我们判断了模板路径和编译路径是否设置正确. 设计我们的方法 public function assign($var, $value) { display()方法 代码如下>>> public function display($tpl_file) { 这个方法是根据!file_exists($parsed_file)||filemtime($parsed_file)
debug()方法 代码如下>>> public function debug ($tpl_file) { 至此,我们的Stupid类就写完了!下次我要介绍StupidParser类的编写.请继续支持.大家有什么意见或者建议可以提出! show show全相: define(TPL_DIR, ./templates/); public function Stupid() { public function assign($var, $value) { public function display($tpl_file) { function debug($tpl_file) {
Stupid模板引擎是由3个文件组成,他们分别是:stupid.class.php,stupid_parser.class.php,stupid_debugger.class.php。
Stupid.class.php的任务是设置变量,模板路径,和显示等功能,而stupid_parser.class.php就是编译模板文件的,stupid_debugger.class.php是用来调试用的。
1.新建一个PHP文件名为:stupid.class.php。
我们的类叫Stupid,我们先设计一下成员变量吧。
成员变量有:$_tpl_vars, $_tpl_file, $_parser, $_debugger;
$_tpl_vars: 用来保存模板变量的;
$_tpl_file: 用来保存模板文件名的;
$_parser: 保存StupidParser对象的,就是编译对象;
$_debugger: 保存StupidDebug对象的,就是调试对象;
define(TPL_DIR, ./templates/);
define(TPL_C_DIR, ./templates_c/);
define(TPL_C_DIR, ./templates_c/);
private $_tpl_vars;
private $_tpl_file;
private $_parser;
private $_debugger;
}
?>
if(!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR)) {
exit(错误:请正确设置模板文件夹和编译文件夹);
}
}
我们这个类中主要有以下方法:
assign(), set_tpl_dir(), set_parsed_dir(), display(), debug().
assign()方法:
assign()的用处是设置模板变量.代码如下>>>
if(isset($var) && trim($var) != ) {
$this->_tpl_vars[$var] = $value;
return true;
} else {
exit(错误:请设置变量名);
}
}
我们先判断用户是否设置了变量名,用isset($var) && trim($var) != 来判断, trim($var) != 是防止用户以空格来设置变量名.如果设置变量正确,我们就将他保存到成员变量_tpl_vars中.
display()方法是Stupid类中最重要的方法,他是用来显示和检测模板是否更新了,更新了就再编译,没有更新就用原来编译之后的文件.
$template_file = TPL_DIR.$tpl_file;
if(!file_exists($template_file)) {
exit(错误:模板文件不存在);
}
$parsed_file = TPL_C_DIR.md5($tpl_file)..php;
if(!file_exists($parsed_file) || filemtime($parsed_file) require_once ./stupid_parser.class.php;
$this->_parser = new StupidParser();
$this->_parser->compile($tpl_file);
}
include $parsed_file;
}
Debugg()方法就比较简单,就是引入stupid_debugger.class.php文件,创建StupidDebuger对象,调用StupidDebuger的start方法进行调试.
if (include_once("stupid_debugger.class.php")) {
$this->_debugger = new StupidDebugger(TPL_DIR. $tpl_file);
$this->_debugger->start();
} else {
exit( 错误:Debuger类文件不存在);
}
}
define(TPL_C_DIR, ./templates_c/);
class Stupid {
private $_tpl_vars;
private $_tpl_file;
private $_parser;
private $_debug;
if(!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR)) {
exit(错误:请正确设置模板文件夹和编译文件夹);
}
}
if(isset($var) && trim($var) != ) {
$this->_tpl_vars[$var] = $value;
return true;
} else {
exit(错误:请设置变量名);
}
}
$template_file = TPL_DIR.$tpl_file;
if(!file_exists($template_file)) {
exit(错误:模板文件不存在);
}
$parsed_file = TPL_C_DIR.md5($tpl_file)..php;
if(!file_exists($parsed_file) || filemtime($parsed_file) require_once ./stupid_parser.class.php;
$this->_parser = new StupidParser();
$this->_parser->compile($tpl_file);
}
include $parsed_file;
}
if (include_once("stupid_debugger.class.php")) {
$this->_debugger = new StupidDebugger($this->_template_dir . $tpl_file);
$this->_debugger->start();
} else {
exit( 错误:Debuger类文件不存在);
}
}
}
?>

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











Gigabyte 마더보드에서 키보드 시작을 설정하는 방법 먼저, 키보드 시작을 지원해야 한다면 PS2 키보드여야 합니다! ! 설정 단계는 다음과 같습니다. 1단계: 부팅 후 Del 또는 F2를 눌러 BIOS에 들어가고, BIOS의 고급(Advanced) 모드로 들어갑니다. 일반 마더보드는 기본적으로 마더보드의 EZ(Easy) 모드로 들어갑니다. F7을 눌러 고급 모드로 전환합니다. ROG 시리즈 마더보드는 기본적으로 BIOS로 들어갑니다. 고급 모드(간체 중국어를 사용하여 설명) 2단계: - [고급] - [고급 전원 관리(APM)]를 선택합니다. [PS2 키보드로 깨우기] 옵션 찾기 4단계: 이 옵션 기본값은 비활성화입니다. 아래로 당기면 세 가지 다른 설정 옵션이 표시됩니다. 즉, 컴퓨터를 켜려면 [스페이스바]를 누르고 그룹을 누르세요.

1. 프로세서 컴퓨터 구성을 선택할 때 프로세서는 가장 중요한 구성 요소 중 하나입니다. CS와 같은 게임을 플레이할 때 프로세서의 성능은 게임의 부드러움과 응답 속도에 직접적인 영향을 미칩니다. Intel Core i5 또는 i7 시리즈 프로세서는 강력한 멀티 코어 처리 기능과 높은 주파수를 갖추고 CS의 높은 요구 사항에 쉽게 대처할 수 있으므로 선택하는 것이 좋습니다. 2. 그래픽 카드 그래픽 카드는 게임 성능을 좌우하는 중요한 요소 중 하나입니다. CS 등 슈팅 게임에서는 그래픽 카드의 성능이 게임 화면의 선명도와 부드러움에 직접적인 영향을 미칩니다. NVIDIA GeForce GTX 시리즈 또는 AMD Radeon RX 시리즈 그래픽 카드를 선택하는 것이 좋습니다. 이 카드는 뛰어난 그래픽 처리 기능과 높은 프레임 속도 출력을 갖추고 있으며 더 나은 게임 경험을 제공할 수 있습니다.

Apple은 화요일에 iOS 17.4 업데이트를 출시하여 iPhone에 수많은 새로운 기능과 수정 사항을 추가했습니다. 업데이트에는 새로운 이모티콘이 포함되어 있으며 EU 사용자는 다른 앱 스토어에서도 해당 이모티콘을 다운로드할 수 있습니다. 또한, 업데이트는 iPhone 보안 제어를 강화하고 사용자에게 더 많은 선택권과 보호 기능을 제공하기 위해 더 많은 "도난당한 장치 보호" 설정 옵션을 도입합니다. "iOS17.3에서는 최초로 '도난 기기 보호' 기능을 도입해 사용자의 민감한 정보에 대한 보안을 강화했습니다. 사용자가 집이나 기타 친숙한 장소를 떠나 있을 때 이 기능을 사용하려면 먼저 생체 정보를 입력해야 합니다. Apple ID 암호 변경, 도난 기기 보호 끄기 등 특정 데이터에 접근하고 변경하려면 정보를 다시 입력해야 합니다.

마더보드의 SPDIFOUT 연결 라인 순서 최근에 전선의 배선 순서에 문제가 발생했습니다. 온라인에서 확인해 보니 1, 2, 4가 out, +5V, ground에 해당한다는 정보도 있고, 1, 2, 4가 out, ground, +5V에 해당한다는 정보도 있습니다. 가장 좋은 방법은 마더보드 설명서를 확인하는 것입니다. 설명서를 찾을 수 없으면 멀티미터를 사용하여 측정할 수 있습니다. 먼저 접지를 찾은 다음 나머지 배선의 순서를 결정할 수 있습니다. 마더보드 VDG 배선 연결 방법 마더보드의 VDG 배선을 연결할 때 VGA 케이블의 한쪽 끝을 모니터의 VGA 인터페이스에 연결하고 다른 쪽 끝을 컴퓨터 그래픽 카드의 VGA 인터페이스에 연결해야 합니다. 마더보드의 VGA 포트에 연결하지 않도록 주의하세요. 연결되면 다음을 수행할 수 있습니다.

글로돈소프트웨어(Glodon Software)는 건축정보화 분야에 주력하는 소프트웨어 회사로, 해당 제품은 건축 설계, 시공, 운영 전반에 걸쳐 폭넓게 사용되고 있다. Glodon 소프트웨어의 복잡한 기능과 대용량 데이터로 인해 높은 컴퓨터 구성이 필요합니다. 이 기사에서는 독자가 적합한 컴퓨터 구성 프로세서를 선택할 수 있도록 Glodon 소프트웨어의 컴퓨터 구성 권장 사항을 여러 측면에서 자세히 설명합니다. Glodon 소프트웨어는 아키텍처 설계, 시뮬레이션 및 기타 작업을 수행할 때 많은 양의 데이터 계산 및 처리가 필요합니다. 프로세서의 경우 더 높습니다. Intel i7 시리즈 또는 AMD Ryzen 시리즈와 같은 멀티 코어, 고주파 프로세서를 선택하는 것이 좋습니다. 이러한 프로세서는 강력한 컴퓨팅 성능과 멀티 스레드 처리 기능을 갖추고 있어 Glodon 소프트웨어의 요구 사항을 더 잘 충족할 수 있습니다. 메모리 메모리가 컴퓨팅에 영향을 미치고 있습니다.

PHP 이메일 템플릿: 이메일 콘텐츠 사용자 정의 및 개인화 이메일의 인기와 광범위한 사용으로 인해 기존 이메일 템플릿은 더 이상 개인화되고 사용자 정의된 이메일 콘텐츠에 대한 사람들의 요구를 충족할 수 없습니다. 이제 PHP 프로그래밍 언어를 사용하여 사용자 정의되고 개인화된 이메일 템플릿을 만들 수 있습니다. 이 기사에서는 PHP를 사용하여 이 목표를 달성하는 방법을 보여주고 몇 가지 구체적인 코드 예제를 제공합니다. 1. 이메일 템플릿 만들기 먼저 기본 이메일 템플릿을 만들어야 합니다. 이 템플릿은 HTM일 수 있습니다.

PPT 마스킹에 관해서는 아직 생소하신 분들이 많을 텐데요. 대부분의 사람들은 PPT를 만들 때 잘 이해하지 못하고 그냥 마음에 드는 대로 만들어서 만드는 경우가 많기 때문에 PPT 마스킹이 무엇인지도 모르고 이해하지도 못하는 분들이 많습니다. 이 마스크가 어떤 역할을 하는지는 알지만, 사진을 덜 단조롭게 만들 수 있을지도 모르겠습니다. 배우고 싶은 친구들, PPT 마스크를 좀 덜 단조롭게 만들어 보세요. 그렇다면 PPT 마스크를 추가하는 방법은 무엇입니까? 아래를 읽어주세요. 1. 먼저 PPT를 열고 빈 그림을 선택한 다음 [배경 형식 설정]을 마우스 오른쪽 버튼으로 클릭하고 단색을 선택합니다. 2. [삽입] 클릭, 워드아트 단어 입력 3. [삽입] 클릭, [도형] 클릭

C++ 템플릿 전문화는 함수 오버로딩 및 재작성에 영향을 줍니다. 함수 오버로딩: 특수화된 버전은 특정 유형의 다양한 구현을 제공할 수 있으므로 컴파일러가 호출하도록 선택하는 함수에 영향을 줍니다. 함수 재정의: 파생 클래스의 특수 버전은 기본 클래스의 템플릿 함수를 재정의하여 함수를 호출할 때 파생 클래스 개체의 동작에 영향을 줍니다.
