symfony权威指南(2)之页面创建基础

2024-06-02 19:18

本文主要是介绍symfony权威指南(2)之页面创建基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

symfony把页面组织成模块,在建立页面之前,你必须先建立一个模块,也就是一个symfony能识别的目录结构的空壳。

可以用如下命令创建一个symfony模块,比如创建一个名叫php的模块:

这条命令在modules目录下生成了如下文件:


其中actions.class.php文件的内容如下:

/**
* php actions.
*
* @package    blog
* @subpackage php
* @author     Your name here
* @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
*/
class phpActions extends sfActions
{
/*** Executes index action** @param sfRequest $request A request object*/public function executeIndex(sfWebRequest $request){$this->forward('default', 'module');}
}

indexSuccess.php文件的内容为空。

现在访问http://localhost:8080/php,可以看到如下的页面:



现在让我们进入正题,来创建一个新的页面,分为如下步骤:

1、增加一个动作

我们在actions.class.php文件中,新增如下代码:

 public function executeTest(){}
这样我们就在php模块中新增了一个test动作,注意在symfony中动作的命名规范:

①动作的名字永远是executeXxx(),名字第二部分的第一个字母总是大写

②URL是区分大小写的,symfony也是区分大下写的,这就是说,如果你定义一个executemyaction()方法或者executeMyaction,然后在浏览器里面调用myAction方法,symfony会返回404错误信息。

如果现在访问http://localhost:8080/php/test,可以看到如下的页面:

这个页面告诉我们我们还要在templates目录下创建一个testSuccess.php文件,内容如下:

<p>hello,world!</p>

2、从动作传递信息给模板

symfony让动作类的属性可以直接在模板的全局命名空间里被访问(即在动作里通过$this->variableName访问的变量在模板中可以直接用$variableName访问到),还是用test动作来试验:

public function executeTest(){$this->hour = date("H", time());}
<p>hello,world!</p>
<?php if($hour >= 18): ?><p>it's already <?php echo $hour ?>,time to go to bed</p>
<?php endif; ?>

现在访问 http://localhost:8080/php/test,

3、通过表单从用户获取数据

symfony提供了表单辅助函数来帮助快速书写html代码,下面是一个例子:

<?php use_helper('form') ?>
<?php echo form_tag('php/another') ?>
<?php echo label_for('name','what\'s your name?' ) ?>
<?php echo input_tag('name') ?>
<?php echo submit_tag('ok') ?>
</form>


4、链接到另一个动作

传统的超链接一般类似与下面这样:

?php echo "<a href='another?name=anonymous'>i will never say my name</a>"; ?>
但是这样的链接有一个弊端,那便是如果做了伪静态的话,要到模板文件中将这些链接地址一一修改,在symfony对这种问题提供了一个辅助函数link_to(),下面是一个例子:

<?php echo link_to('i will never say my name', 'php/another?name=anonymous'); ?>


5、从请求中取得信息

在symfony框架中你可以通过sfAction对象的getRequestParameter()方法取得相关的数据。下面是一个例子:

public function executeAnother(){$this->name = $this->getRequestParameter('name');}
当然如果操作很简单,你可以直接在模板中直接通过$sf_params的get()方法来获取参数的值。下面的两种写法是等价的:

if($sf_params->has('name')){echo "hello,".$sf_params->get('name');
}else{echo "hello, nobody";
}
echo "hello,".$sf_params->get('name', 'nobody');

这篇关于symfony权威指南(2)之页面创建基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024847

相关文章

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数