yii2的使用

通过归档文件安装或者通过composer下载放在自己的项目中,接下来开始使用yii2。

认识yii2.0

  • 什么是yii框架?

快速,安全,专业的php框架。

  • yii框架有什么用?

非常适合开发web2.0网站,博客,社区网站,sns,分享服务,内容管理系统,电子商务网站,restful web服务这些应用,yii框架都是不错的选择。

  • 为什么要用yii框架

    • 开发快

    yii框架自带了丰富的功能,包括ActiveRecord,缓存,身份验证和RBAC,脚手架,单元测试这些功能,可显著缩短开发时间
    • 代码优雅

yii框架严格按照MVC设计代码,清晰分离逻辑层,代码严谨优雅,可维护性高

  • 安全可靠

yii框架的措施包括了输入验证,输入过滤,sql注入和跨站点脚本的预防。

yii2.0运行原理初探

yii请求道响应的生命周期

用户通过入口脚本index.php,加载配置文件,启动应用(application),解析路由,请求处理组件,创建控制器,创建动作执行过滤,通过模型(从数据库)加载数据,通过视图方法渲染视图,响应处理组件,响应给用户。

yii2的使用_第1张图片
生命周期
yii2的使用_第2张图片
  • 用户向入口脚本 web/index.php
    发起请求。
  • 入口脚本加载应用配置 并创建一个应用实例去处理请求。
  • 应用通过请求组件 解析请求的路由。
  • 应用创建一个控制器实例去处理请求。
  • 控制器创建一个动作实例并针对操作执行过滤器。
  • 如果任何一个过滤器返回失败,则动作取消。
  • 如果所有过滤器都通过,动作将被执行。
  • 动作会加载一个数据模型,或许是来自数据库。
  • 动作会渲染一个视图,把数据模型提供给它。
  • 渲染结果返回给响应组件。
  • 响应组件发送渲染结果给用户浏览器。
    应用主体
    1.应用主体
  • 是管理Yii应用系统整体结构和生命周期的对象
  • 是yii\web\Application类的实例
  • 可以用\Yii::$app来访问应用

视图

  • 视图是mvc模式中view这一部分。
  • 视图实在yii\web\view应用组件的帮助下,依据视图模板文件,进行构造和渲染完成的。
  • 习惯上称视图模板文件为视图。
  • 视图模板文件主要是通过html代码和展示类php代码组成的。
  1. 视图的布局layout


beginPage() ?>



    
    
    
    <?= Html::encode($this->title) ?>
    head() ?>


beginBody() ?>

'My Company', 'brandUrl' => Yii::$app->homeUrl, 'options' => [ 'class' => 'navbar-inverse navbar-fixed-top', ], ]); $menuItems = [ ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'About', 'url' => ['/site/about']], ['label' => 'Contact', 'url' => ['/site/contact']], ]; if (Yii::$app->user->isGuest) { $menuItems[] = ['label' => 'Signup', 'url' => ['/site/signup']]; $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']]; } else { $menuItems[] = '
  • ' . Html::beginForm(['/site/logout'], 'post') . Html::submitButton( 'Logout (' . Yii::$app->user->identity->username . ')', ['class' => 'btn btn-link'] ) . Html::endForm() . '
  • '; } echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-right'], 'items' => $menuItems, ]); NavBar::end(); ?>
    isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], ]) ?>

    © My Company

    endBody() ?> endPage() ?>

    1.什么是布局

    布局是一种特殊的视图,表现多个视图的公共部分。

    2.如何创建布局

    布局也是视图,它可像普通视图一样创建布局默认存储在@app/view/layouts里

    3. 如何变换布局

    • 更改布局

    $this->layout = 'wx';

    • 禁用布局

    $this->layout = false;

    4.布局文件的数据

    $this 和 $content

    • $this指向 yii\web\view 来管理和渲染这个视图文件。
    • $content是视图模板文件渲染出来的结果

    应用主体

    1.应用主体

    • 是管理yii应用系统整体结构和生命周期的对象
    • 是yii\web\application类的实例
    • 可以用\yii::$app来访问应用

    2.应用主体的配置

    • $config变量给应用主体这个对象的属性进行初始化赋值。
    • $config变量是从配置文件web.php加载而来的

    3.应用主体的属性

    • id 用来区分其他应用主体的标识id
    • basePath 应用根目录
    • defaultRoute 默认打开的路由

    表单

    1.表单的创建

    在yii 中主要是通过 yii\widgets\ActiveForm 类来创建表单。

    • ActiveForm::begin()不仅创建了一个表单实例,同时也标志着表单的开始。
    • 放在ActiveForm::begin() 与 ActiveForm::end()之间的所有内容都被包裹在Html的
      标签中。
    title = 'Contact';
    $this->params['breadcrumbs'][] = $this->title;
    ?>
    

    title) ?>

    If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.

    'contact-form']); ?> field($model, 'name')->textInput(['autofocus' => true]) ?> field($model, 'email') ?> field($model, 'subject') ?> field($model, 'body')->textArea(['rows' => 6]) ?> field($model, 'verifyCode')->widget(Captcha::className(), [ 'template' => '
    {image}
    {input}
    ', ]) ?>
    'btn btn-primary', 'name' => 'contact-button']) ?>

    2.ActiveField对象的使用

    field($model, 'password')->passwordInput() ?>
    field($model, 'username')->textInput(['autofocus' => true])->hint('please enter your name')->label('Name') ?>
    field($model, 'email')->input('email') ?>
    

    3. 额外的标签处理

    表单中,存在一些和模型对象没有关系的,额外的HTML标签,比如submitButton我们可以:

    • 使用纯HTML
    • 使用yii\helpers\Html 帮助类中的方法来添加到表单中
      'btn btn-primary', 'name' => 'contact-button']) ?>
    

    4. 块赋值

    input中的name,实际是以对象名来命名一个数组,数组的键对应模型的属性。

    模型执行load方法,就是对每个属性执行这样一句赋值。

    $model->name = isset($ContactForm['name']) ? $contactForm['name'] : null;
    

    你可能感兴趣的:(yii2的使用)