第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > PHP开发框架Yii Framework教程(1) 第一个应用Hello World

PHP开发框架Yii Framework教程(1) 第一个应用Hello World

时间:2021-01-06 18:47:07

相关推荐

PHP开发框架Yii Framework教程(1) 第一个应用Hello World

后端开发|php教程

Yii ,Framework,开发框架

后端开发-php教程

Yii Framework 教学可以参见官方中文文档 ,那么为什么还要写这个开发教学呢? 本教学目的是通过不同的视角(主要是通过开发Windows应用C++,C#程序员的角度)帮助Windows 桌面应用或程序员较快的掌握PHPYii Framework应用程序框架。 使用PHP开发Web应用的一个重要好处是可以应用于各种操作系统(Unix,Windows,Mac OS),而不像一般只能应用中Windows操作系统上。使用PHP+Apache+MySQL(XMAP/LAMP) 几乎可以打遍天下无敌手:-)。

购优惠网站源码,vscode中有很多空格,ubuntu grun选项,tomcat 用哪个版本,sqlite3二次封装,爬虫泄露,php与mysql列表,绍兴seo推广哪家强,网站附件管理,仿zara模板lzw

本教学所使用的操作系统为Windows,开发IDE为 VS.PHP,之所以使用这个开发环境是因为VS.PHP采用Visual Studio 作为IDE ,对于Visual Studio开发人员比较熟悉。而且可以用来同时开发调试C#,PHP应用。 Yii Framework 本身和IDE无关,你可以使用你喜欢的PHP开发工具来开发Yii 应用(比如Eclipse)。关于VS.PHP的介绍可以参见 VS.PHP + YiiFramework 组合开发PHP应用。本教学关于Yii Framework知识也和开发IDE无关,可以应用到各种开发环境,你可以选择你自己喜欢的开发环境。

vpn软件源码,查看Ubuntu设备地址,爬虫学前准备知识,php <?,seo相关新闻lzw

在创建第一个应用之间,需要下载Yii 开发包,下载可以到Yii网站/download/ 下载,目前版本为1.1.12, 下载后直接解压,为方便起见将其解压到C:根目录下:

国外木马源码,ubuntu的ssh下载,python高级爬虫师,福鼎 php,天津seo流量lzw

使用VS.PHP的还有一个好处是其自带了Apache Web 服务器,因此无需另外安装,你也可以安装XAMP (Apache+MySQL+PHP) ,但如需要使用MySQL,则另外需安装MySQL.

安装好Yii Framework之后,我们就使用VS.PHP来创建第一个PHP应用,Hello World。

VS.PHP 创建HelloWorld项目,并添加一个index.php 文件。

此时修改index.php 为

按F5运行程序,VS.PHP打开确省浏览器,显示“Hello,World!”. 但这不是一个Yii应用!!!,我们还没有使用Yii Web应用程序框架,Yii Framework是一个纯面向对象的应用程序框架。其Web程序的Application类为CWebApplication类。并采用了MVC模型。

面的示意图展示了 Yii 应用的静态结构

下图展示了一个 Yii 应用在处理用户请求时典型的工作流

用户发出了访问 URL /index.php?r=post/show&id=1 的请求, Web 服务器通过执行入口脚本 index.php 处理此请求。

入口脚本创建了一个 应用 实例并执行。

应用从一个叫做 request 的 应用组件 中获得了用户请求的详细信息。

应用在一个名叫 urlManager 的应用组件的帮助下,决定请求的 控制器 和 动作 。在这个例子中,控制器是 post,它代表 PostController 类; 动作是 show ,其实际含义由控制器决定。

应用创建了一个所请求控制器的实例以进一步处理用户请求。控制器决定了动作 show 指向控制器类中的一个名为 actionShow 的方法。然后它创建并持行了与动作关联的过滤器(例如访问控制,基准测试)。 如果过滤器允许,动作将被执行。

动作从数据库中读取一个 ID 为 1 的 Post 模型。

动作通过 Post 模型渲染一个名为 show 的 视图。

视图读取并显示 Post 模型的属性。

视图执行一些 小物件。

视图的渲染结果被插入一个 布局。

动作完成视图渲染并将其呈现给用户。

Yii应用本身有很多配置,比如确省的Controller ,action是否使用Log文件等。对于Hello,World这个简单的应用,就全部使用缺省值。缺省的Controller为SiteController, Action为indexAction. 也就是说,比如你的网站为 ,如果你采用Yii Framework, 用户请求时,Yii 应用的CWebApplication 将创建类SiteController的实例并调用SiteController的indexAction方法,(相当于C# Console应用的Program 的main方法)。

Yii 项目使用不同的目录来存放Controller,Action,View,Layout等,其缺省目录结构如下

testdrive/

index.php Web 应用入口脚本文件

index-test.php 功能测试使用的入口脚本文件

assets/ 包含公开的资源文件

css/包含 CSS 文件

images/ 包含图片文件

themes/ 包含应用主题

protected/包含受保护的应用文件

yiic yiic 命令行脚本

yiic.batWindows 下的 yiic 命令行脚本

yiic.phpyiic 命令行 PHP 脚本

commands/ 包含自定义的 ‘yiic’ 命令

shell/ 包含自定义的 ‘yiic shell’ 命令

components/ 包含可重用的用户组件

Controller.php所有控制器类的基础类

Identity.php 用来认证的 ‘Identity’ 类

config/包含配置文件

console.php 控制台应用配置

main.php Web 应用配置

test.php 功能测试使用的配置

controllers/ 包含控制器的类文件

SiteController.php 默认控制器的类文件

data/ 包含示例数据库

schema.mysql.sql 示例 MySQL 数据库

schema.sqlite.sql 示例 SQLite 数据库

testdrive.db 示例 SQLite 数据库文件

extensions/ 包含第三方扩展

messages/ 包含翻译过的消息

models/包含模型的类文件

LoginForm.php ‘login’ 动作的表单模型

ContactForm.php‘contact’ 动作的表单模型

runtime/包含临时生成的文件

tests/ 包含测试脚本

views/ 包含控制器的视图和布局文件

layouts/ 包含布局视图文件

main.php 所有视图的默认布局

column1.php使用单列页面使用的布局

column2.php使用双列的页面使用的布局

site/包含 ‘site’ 控制器的视图文件

pages/ 包含 “静态” 页面

about.php“about” 页面的视图

contact.php‘contact’ 动作的视图

error.php ‘error’ 动作的视图(显示外部错误)

index.php ‘index’ 动作的视图

login.php ‘login’ 动作的视图

system/ 包含系统视图文件

这个目录结构可以通过Yii自带的工具来创建缺省的文件建立第一个 Yii 应用。

对于Hello World项目来说,没有必要这么复杂,我们只需创建 protected \controllers 目录以存放SiteController.php。

每个Yii应用都有的入口脚本,可以理解为C#的Program类。这个 入口脚本大同小异

run();

run();

前面说过Yii的缺省Controller为SiteController,缺省Action为actionIndex, 因此HelloWorld的SiteController代码如下

/** * SiteController is the default controller to handle user requests. */ class SiteController extends CController {/*** Index action is the default action in a controller.*/public function actionIndex(){echo Hello World;} }

/** * SiteController is the default controller to handle user requests. */ class SiteController extends CController {/*** Index action is the default action in a controller.*/public function actionIndex(){echo Hello World;} }

此时再运行应用,可以在浏览器中显示“Hello,World”。 目前没有使用MVC模型直接在Controller 使用echo 打印出“Hello,World”, 下面稍微修改一下代码,创建一个简单的View。

View缺省目录为protected 目录下的views 子目录,和Controller类对于,比如SiteController对应到Views目录下的site子目录,和一样,Yii的View(对应到的Page类)也可以使用MasterPage,Yii应用成为Layout,缺省Layout存放在views的layouts 子目录。

修改SiteController的actionIndex 方法,改为:

public function actionIndex() { $this->render("index"); }

public function actionIndex() { $this->render("index"); }

View 视图是一个包含了主要的用户交互元素的PHP脚本.他可以包含PHP语句,但是我们建议这些语句不要去改变数据模型,且最好能够保持其单纯性(单纯作为视图)。为了实现逻辑和界面分离,大段的逻辑应该被放置于控制器或模型中,而不是视图中,视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。

actionIndex 通过render 方法来显示一个View,对应到views->site 目录下的 index.php 。render 缺省使用views ->layouts 下的 main.php 作为 Layout (布局,MasterPage)

布局是一种用来修饰视图的特殊的视图文件.它通常包含了用户界面中通用的一部分视图.例如:布局可以包含header和footer的部分,然后把内容嵌入其间.

……header here……

……footer here……

其中的 $content 则储存了内容视图的渲染结果.

来看一下View是目录下的index.php (View) 代码:

这样就完成了Hello,World的MVC模型,运行显示“Hello,World”。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。