目录结构
+ public <span //</span><span 网站根目录</span> - index.php <span //</span><span 入口文件</span> - .htaccess <span //</span><span 重写规则 </span> +<span conf </span>|- application.ini <span //</span><span 配置文件 </span> application/ +<span controllers </span>- Index.php <span //</span><span 默认控制器</span> +<span views </span>|+ index <span //</span><span 控制器</span> - index.phtml <span //</span><span 默认视图</span> + modules <span //</span><span 其他模块</span> - library <span //</span><span 组件目录</span> - models <span //</span><span model目录</span> - plugins <span //</span><span 插件目录</span>
入口文件
入口文件是所有请求的入口, 一般都借助于rewrite规则, 把所有的请求都重定向到这个入口文件.
一个经典的入口文件public/index.php
<?<span php </span><span define</span>("APP_PATH", <span realpath</span>(<span dirname</span>(<span __FILE__</span>) . '/../')); <span /*</span><span 指向public的上一级 </span><span */</span> <span $app</span> = <span new</span> Yaf_Application(APP_PATH . "/conf/application.ini"<span ); </span><span $app</span>->run();
重写规则
除非我们使用基于query string的路由协议(Yaf_Route_Simple, Yaf_Route_Supervar), 否则我们就需要使用WebServer提供的Rewrite规则, 把所有这个应用的请求, 都定向到上面提到的入口文件.
修改.htaccess文件
Nginx的Rewrite (nginx.conf)
<span server { listen </span><span 80</span><span ; server_name yaf.demo.com; root document_root; index index.php index.html index.htm; </span><span if</span> (!-<span e $request_filename) { rewrite </span>^/(.*) /index.php/$<span 1</span><span last; } }</span>
配置文件
在Yaf中, 配置文件支持继承, 支持分节. 并对PHP的常量进行支持. 你不用担心配置文件太大造成解析性能问题, 因为Yaf会在第一个运行的时候载入配置文件, 把格式化后的内容保持在内存中. 直到配置文件有了修改, 才会再次载入.
一个简单的配置文件application/conf/application.ini
<span [common] application.directory </span>= APP_PATH <span "</span><span /application</span><span "</span><span application.dispatcher.catchException </span>= <span 0</span><span application.dispatcher.throwException </span>= <span 0</span><span application.view.ext </span>= <span '</span><span phtml</span><span '</span><span [product : common] ;enable the error controller application.dispatcher.catchException</span>=<span 1</span>
控制器
在Yaf中, 默认的模块/控制器/动作, 都是以Index命名的, 当然,这是可通过配置文件修改的.
对于默认模块, 控制器的目录是在application目录下的controllers目录下, Action的命名规则是"名字+Action"
默认控制器application/controllers/Index.php
<?<span php </span><span class</span> IndexController <span extends</span><span Yaf_Controller_Abstract { </span><span public</span> <span function</span> indexAction() {<span //</span><span 默认Action</span> <span $this</span>->getView()->assign("content", "Hello World"<span ); } } </span>?>
视图文件
Yaf支持简单的视图引擎, 并且支持用户自定义自己的视图引擎, 比如Smarty.
对于默认模块, 视图文件的路径是在application目录下的views目录中以小写的action名的目录中.
一个默认Action的视图application/views/index/index.phtml
<html> <head> <title>Hello yaf</title> </head> <body> <?php <span echo</span> <span $content</span>;?> </body> </html>
然后在浏览器输入nginx.conf设置的servername,
表 4.2. Yaf可选配置项
名称 | 值类型 | 默认值 | 说明 |
---|---|---|---|
application.ext | String | php | PHP脚本的扩展名 |
application.bootstrap | String | Bootstrapplication.php | Bootstrap路径(绝对路径) |
application.library | String | application.directory + "/library" | 本地(自身)类库的绝对目录地址 |
application.baseUri | String | NULL | 在路由中, 需要忽略的路径前缀, 一般不需要设置, Yaf会自动判断. |
application.dispatcher.defaultModule | String | index | 默认的模块 |
application.dispatcher.throwException | Bool | True | 在出错的时候, 是否抛出异常 |
application.dispatcher.catchException | Bool | False | 是否使用默认的异常捕获Controller, 如果开启, 在有未捕获的异常的时候, 控制权会交给ErrorController的errorAction方法, 可以通过$request->getException()获得此异常对象 |
application.dispatcher.defaultController | String | index | 默认的控制器 |
application.dispatcher.defaultAction | String | index | 默认的动作 |
application.view.ext | String | phtml | 视图模板扩展名 |
application.modules | String | Index | 声明存在的模块名, 请注意, 如果你要定义这个值, 一定要定义Index Module |
application.system.* | String | * | 通过这个属性, 可以修改yaf的runtime configure, 比如application.system.lowcase_path, 但是请注意只有PHP_INI_ALL的配置项才可以在这里被修改, 此选项从2.2.0开始引入 |
<em id="__mceDel"><em id="__mceDel"><span <br /><br /></span></em></em>

无论是文章、论文还是教程,任何文档的主要亮点都是标题,当然还有目录。它描述了文档的大纲结构,以便用户可以到达他们期待从文档中读取的位置和内容。将目录添加到大多数文档中以使它们看起来更专业也是一种最佳实践。如今,一切都在网上进行,人们使用谷歌文档来创建大多数文档。许多用户仍然不确定如何在 google 文档中插入或添加目录。因此,我们提出了这篇文章来解释如何在谷歌文档中创建或插入目录。如何在 Google Docs 中插入目录第 1 步:点击此处访问 Google Docs 在线版。第 2 步:如

使用java的File.isDirectory()函数判断文件是否存在且为目录类型在Java编程中,经常会遇到需要判断一个文件是否存在且为目录类型的情况。Java提供了File类来操作文件和目录,其中的isDirectory()函数可以帮助我们判断一个文件是否是目录类型。File.isDirectory()函数是File类中的一个方法,其作用是判断当前Fil

PHP函数介绍—rename():重命名文件或目录介绍:在PHP中,rename()函数用于重命名文件或目录。它提供了一种简单的方法来更改文件或目录的名称。无论是单个文件还是整个目录,都可以使用这个函数进行重命名操作。通过指定源文件或目录的名称以及目标名称,可以轻松地完成重命名过程。语法:boolrename(string$source,str

PHP中的glob()函数用于查找文件或目录,是一种强大的文件操作函数。它可以根据指定的模式匹配,返回文件或目录的路径。glob()函数的语法如下:glob(pattern,flags)其中,pattern表示要匹配的模式字符串,可以是一个通配符表达式,如*.txt(匹配以.txt结尾的文件),或者是具体的文件路径。flags是一个可选参数,用于控制函数

linux查看目录是否为空的方法:1、进入linux终端;2、通过执行“res=`ls -A $dir` if [ -z $res ];then echo "$dir ..."else echo "$dir ..."fi”方法判断目录是否为空即可。

使用path/filepath.Split函数将路径拆分为目录和文件名两部分在开发程序或处理文件时,经常需要将路径拆分为目录和文件名两部分进行操作。在Go语言中,可以使用path/filepath包中的Split函数来实现这一功能。本文将介绍Split函数的用法,并给出代码示例。Split函数的定义如下:funcSplit(pathstring)(di

在word中挑选目录的款式,操作完成就可以自动生成了。解析1进到电脑的word,点一下引入。2进去后,点一下文件目录。3接着挑选文件目录的款式。4操作完成,就可以看到文件目录自动生成了。补充:总结/注意事项文章的目录自动生成,其中包括一级标题、二级标题和三级标题,通常不超过三级标题。

tree是一个命令行工具,它以树状格式递归地列出一个目录的内容,使得所有的目录、子目录和文件以分层的方式列出,从而直观地展示文件和文件夹的组织结构。以下是tree在Windows和Linux系统下的安装和使用方法Linux下tree的安装与使用Linux下安装tree:aptupdate&&aptinstalltree以下是tree命令的常用方式。#显示指定路径下的目录树tree/d/temp#限制最大的展示深度tree-L3#只显示目录不显示文件tree-d#显示包括隐藏的文件和目录tr


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。