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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.