Smarty简单应用

Yaf 结合用户自定义的视图(模板)引擎Smarty(Yaf + Smarty) Yaf结合自定义视图(模板)引擎smarty 入口文件:/public/index.php;在引导程序Bootstrap.php中定义自已的视图引擎Smarty(/application/Bootstrap.php); 添加Smarty的适配器即Smarty_Adapter类,使Yaf和Smarty之间能进行适配,把你需要view做的功能实现在Smarty_Adapter类里面实现,yaf通过他们来操作smarty的特性。首先下载smarty源码包(如: smarty-2.6.29.tar.gz),将其上传 阅读详情

一、模板引擎:是为了将用户的使用界面和业务数据分离而产生的,会生成特定的html文档。

二、作用:

1)将网站的数据(php)代码和界面HTML代码进行分离,即php只能写php代码,html的demo界面只能写静态页    面,不能嵌套其他的代码,比如之前嵌套的php代码,这样也是为了代码复用率高一些。

2)缓存:例如访问某宝网站,在第一次进入网站页面时,会自动将数据信息缓存下来,这样第二次再进入的时候,加载也会变得快很多,因为第一次已经将其加载到本地。

三、应用

1、准备工作如下:

1)首先我们要去www.smarty.net下载这个模板引擎,这里用的是smarty-3.1.30

2)下载好之后,首先我们将这个模板引擎的libs库复制一份到你新建的文件夹,这里我起名叫Smarty,然后就开始我们正式的学习吧!

3)文件夹和库都弄好之后,再在Smarty文件里面新建一个index.php文件和View文件夹,View用来存放所有的模板文件html页面,来实现代码和页面分离。

4)前面的都弄好之后,我们可以在libs里面看到Smarty.class.php这个类文件,我们暂时只用到这一个引擎类;注意:以后在用这类的库文件时,只要后缀写的是.class那么此文件就是个类文件,所以我们以后在写命名的时候也尽量这样写;

2、开始进入主题:

index.php代码:

1)首先要引入Smarty引擎类库
require "./libs/Smarty.class.php";
2)实例化Smarty对象
$s= new Smarty();
3)初始化参数
$s->template_dir = "./View";//模板存储目录

$s->compile_dir = "./View_c";//编译缓存文件的目录,本来有一个默认的目录,这里修改了以下缓存目录的名字

4)分配变量
$s->assign('id',1);
$s->assign('name','琳达');
$s->assign('sex','女');
$s->assign('time',date('Y-m-d H:i:s'));
5)解析模板

$s->display("index.html");//此处的路径可以直接写被解析的模板,因为在3)步已经定义好了模板的存储目录,所以会直接找到此模板

index.html代码部分:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table>
<tr><td>id:</td><td>{$id}</td></tr>
<tr><td>name:</td><td>{$name}</td></tr>
<tr><td>sex:</td><td>{$sex}</td></tr>
<tr><td>time:</td><td>{$time}</td></tr>
</table>
</body>
</html>


  

Smarty模板引擎中文参考手册 在现代Web开发中,模板引擎扮演着不可或缺的角色。Smarty作为一种流行的PHP模板引擎,以其丰富的功能和高效的性能,成为众多开发者的首选。本章将为您介绍Smarty的基本概念和其在Web开发中的重要性。Smarty是一个基于PHP开发的模板引擎,旨在将业务逻辑与呈现逻辑分离。它允许开发者用控制逻辑编写后端代码,并通过模板定义输出格式,这样不仅提高了代码的可读性,还有助于团队协作和代码维护。Smarty模板变量可以使用修饰符来调整输出格式或执行其他操作。 阅读详情

相关推荐

掌握Smarty模板引擎:配置文件与优化实践

本文还有配套的精品资源,点击获取 简介:Smarty是一个强大的PHP模板引擎,旨在分离业务逻辑与展现逻辑,提升开发和设计的效率。本文深入解析Smarty的配置文件结构与关键配置项,如模板目录设置、缓存管理、安全模式等。了解这些配置项对于实现高效、安全的模板管理至关重要,并且能够根据项目需求灵活调整以达到最佳性能。Smarty-2.6.26版本更新可能包含性能优化和API变...

weixin_32324637的博客 1386

smarty模板基础总结

前提:1. 部署smarty模板目录;2. 编写Smarty类的子类,定制好template_dir、compile_dir、config_dir、cache_dir、left_delimiter、right_delimiter、compile_check、caching等配置信息。3. 在BaseAction类中定义该类对象,然后便可使用。4. 暂定delimiter使用{和}一. 变量 1...

weixin_30825199的博客 260

PHP模板引擎 Smarty 完全中文手册.rar

Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

php模板引擎smarty,[PHP]模板引擎Smarty介绍

三、可能遇到的问题在SMARTY的 官方网站上,有详尽的用户手册,可以选择在线HTML和PDF格式的版本。这里就不再涉及手册上已有的内容,只是把初次使用可能遇到的问题做个解释。第一个问题就很要命:提示说找不到所需文件?并不是每一个人都按照SMARTY默认目录结构来写应用的。这里需要手工指定,假设目录结构如下:就需要在index.php里指定目录结构:$smart->template_dir ...

weixin_33146151的博客 418

smarty3中文手册

smarty3中文手册,好用的模版引擎。如果打开一片空白,一是检查chm文件属性里最下面是否有个“解除锁定”,如有,点击“解除锁定”按钮就可以了。

Smarty 模板引擎中文参考手册2.0系列.chm

Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。(chm无法显示内容时需在属性中“解除锁定”)

[轉]Smarty模板引擎全教程

轉自:http://speedphp.com/post/smarty-advanced.html   Smarty 中文手冊 http://www.hbcms.com/main/smarty/   Smarty模板引擎全教程 前面已经介绍了在SpeedPHP框架中使用Smarty模板引擎的方法,下面我们来更详细地介绍Smarty的使用方法。 本章是对Smarty常用的一些功能进...

weixin_34085658的博客 222

PHP Smarty 模板引擎手册 CHM.rar

Smarty 模板引擎教程 chm格式,内容主要有基本语法、变量、组合修改器、内建函数、自定义函数、配置文件、控制台调试、缓存、插件扩展、使用技巧和经验等,比较详细的一个中文手册,如上图示。

smarty mysql demo_smarty简单应用实例

本文讲述了smarty简单应用实例。分享给大家供大家参考,具体如下:require 'smarty/libs/Smarty.class.php';$smarty = new Smarty;$smarty->template_dir="smarty/templates/templates";$smarty->compile_dir="smarty/templates/templates_...

weixin_33601402的博客 148

华为BEM战略解码体系完整版(85页PPT)(文末有下载方式)

在部门层面,战略解码的核心是将公司战略逐层分解到部门,确保部门目标能够有效支撑公司战略。战略解码的关键原则包括:对公司战略和业务目标的支撑、指标选取考虑部门责任特色、对公司业务流程的支撑、战略解码,华为公司实现了从战略制定到执行的闭环管理,确保了战略目标能够通过可衡量的。战略解码,华为公司实现了从战略制定到执行的闭环管理,确保了战略目标能够通过可衡量的。战略解码体系的核心目标是将公司战略逐层分解,确保战略目标能够通过可衡量的。在公司层面,战略解码的第一步是战略澄清,明确公司的使命、愿景、战略目标及。

AI_data_cloud的博客 2400

基于IMU的纯惯性导航轨迹绘制实践与优化

本文深入探讨了基于IMU的纯惯性导航轨迹绘制实践。通过修改开源组合导航算法KF-GINS,屏蔽GPS更新并简化地球参数,实现了仅依赖IMU数据的轨迹解算。文章详细介绍了代码改造、轨迹可视化方法,并分析了误差累积的根本原因,为深入理解惯性导航原理与传感器融合的必要性提供了宝贵的实践经验。

ff678的博客 395

简单的smarty应用

smarty作为前后端分离的模板引擎,现在应用的十分广泛。今天简单介绍一下如何使用smarty模板。先去官网下载,下载时需要注意smarty版本,smarty不同版本对应着不同版本的PHP版本,下载适合自己PHP版本的。下载后解压,主要是使用其中的lib文件夹中的内容。 首先,我们创建一个模板文件,template.html <!DOCTYPE html> <htm...

hero_xsx的博客 192

innovus 命令每日精要 | 掌控Innovus布线的利器——setNanoRouteMode详解

在数字IC后端设计的复杂世界里,布线优化是至关重要的一步。今天,我来给大家深入讲解Innovus工具中setNanoRouteMode命令的精妙之处,让你轻松驾驭布线策略,提升设计质量。setNanoRouteMode是Innovus中用于配置NanoRoute绕线行为的关键命令。通过其丰富的参数,你可以精细控制布局后阶段的绕线策略、信号完整性优化、工艺适配及设计规则修复等流程。下面,我将按功能分类总结其核心选项,并针对不同场景给出建议。

weixin_50820814的博客 3528

简单的php+smarty应用

/*---------------------------php代码-----------------------------------------*/ /*-----------------------------smarty里面的模板----------------------------------------*/ {$title} ...

探索者 199

EB TRESOS 29.0.0安装教程用于MCAL配置开发

本文介绍的搭建基于NXP官网提供EB软件,进行基于标准AUTOSAR软件底层驱动配置的开发

qq_53260940的博客 1877

C#WPF常用的9种布局方式详解

本文介绍WPF中常用的九种布局,Grid、StackPanel、WrapPanel、DockPanel、UniformGrid、Canvas、ScrollViewer、ViewBox、Border。

qq_30725967的博客 1万+

PHP之Smarty模版简单应用

什么是模版,我的理解是将界面和实现代码分离开来, 这样做的目的将美工和程序员的工作分离开来,提高工作效率,方便后期维护。 PHP也有比较多的模版,例如PHPLIB Template、FastTemplate、Smarty等 今天我研究的是Smarty 到Smarty的官方网站下载最新的Smarty套件: http://smarty.php.net/解开 Smarty 2.6.0 后,会看...

weixin_34185364的博客 113

图注意力网络(GAT)原理与代码实战案例讲解

1. 背景介绍 图注意力网络(Graph Attention Network,简称GAT)是一种基于图神经网络(Graph Neural Networks,简称GNN)的深度学习方法。它能够处理具有复杂关系的节点数据,并在多个领域取得了显著的效果,如社交网络分析、推荐系统等。 2. 核心概念与联系

AI架构师小马 2715

PHP模板引擎Smarty(一)Smarty下载、配置、一个最简单的应用示例

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离

用行动祈祷比用言语更能够使上帝了解 1052

2026滑块验证码终极实战:缺口检测算法+人机轨迹模拟,识别率从60%飙升至95%全方案

**摘要:2026年AIGC技术发展导致传统验证码失效,滑块验证码成为主流防护手段。本文深入分析了传统方案识别率低的原因,并提出多级检测融合和行为拟合优化方案。通过图像预处理优化、三级缺口检测引擎(差分图像法、Hu矩轮廓匹配、YOLOv8n模型兜底)将识别率提升至99.2%。同时针对轨迹模拟环节,设计了包含抖动特征、时间随机性和个体差异的行为模型,使通过率从12%提升至87%。该方案解决了传统方法在缺口定位精度和轨迹真实性方面的核心痛点,为应对新一代验证码风控提供了完整的技术框架。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1899

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 388

2019-07-24 Smarty模板引擎的简单应用

smarty是什么? Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一。Smarty分离了逻辑代码和外在的内容,提供一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。Smarty工作的目的是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在...

ayucfqwua07405842的博客 185

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

smarty中if elseif的简单应用(左中右对齐)

if.tpl文件(if elseif语句内容) 无标题文档 {if $radio=='lift'} {$test} {elseif $radio=='right'} {$test} {else} {$test} {/if} ------------------------------------------------- 网页文件 无标题

zrzlliuxiao的专栏 583

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

smarty2 简单应用 小留言板

本软件是作为部门内员工之间留言及发送消息使用。 系统必须通过口令验证,登录进入。方法是从数据库内取出用户姓名和口令的数据进行校验。 用户管理的工作(比如增加,删除,修改用户)通过直接对数据库操作实现,不在本系统中实现,可以自行在数据库用户表中增加测试数据。 系统包含四部分功能 1 登录:验证用户名与口令,保存会话信息,进入主界面。 2 退出:退出使用状态,清空会话信息,返回登录界面。 ...

weixin_30339457的博客 84

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Smarty配置详解

Smarty简介Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下,他们不可能是同一个人。配置方法前话:Smarty使用一个名为’SMARTY_DIR’的php常量作为它的系统库目录。基本上,如果你的应用程序可以找到Smarty.class.php文件,你不需要设置SMARTY_DIR,

828

Smarty程序应用范例:留言簿

Smarty程序应用范例:留言簿(Guestbook)第一节这是一个使用了Smarty的PHP应用程序。目的是就如何在应用程序中使用Smarty,以及如何分离你的“表现”(presentation)作一个示范。这个范例相当简单,但包含了一个完整的迷你框架(mini-framework)用于快速简单地生成一个Smarty驱动的应用程序。一旦你理解了将“表现”分离的观念,你也许会把它用在一些程

PHP教程网 1248
上一篇: Vue.set()用法案例
下一篇: MVC框架
晶球
博客等级 码龄9年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值