yii 初始化时如何配置默认访问某个文件?

入口脚本 http://www.yiichina.com/doc/guide/2.0/structure-entry-scripts
应用主体 http://www.yiichina.com/doc/guide/2.0/structure-applications

1. 在启动yii时,入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。
  网页应用: 通过web服务器(浏览器)进行访问时运行的机制, 配置文件: ./web/index.php
  控制台应用: 通过命令行(cmd/terminal)进行访问时运行的机制, 配置文件: ./yii
  该入口脚本作用(具体内容查看官网):
    定义全局常量;
    注册 Composer 自动加载器;
    包含 Yii 类文件;
    加载应用配置;
    创建一个应用实例并配置;
    调用 yii\base\Application::run() 来处理请求。
2. 在入口脚本中
  $config = require(__DIR__ . ‘/../config/web.php‘);

  (new yii\web\Application($config))->run();
  指明了应用运行时先访问web.php文件,执行完该文件才会执行我们想要执行的控制器(controller)

3. 在web.php中我自己添加了两个属性
  ‘defaultRoute‘ => ‘home‘,
  ‘modules‘ => [
    ‘home‘ => ‘app\home\Module‘(这是自己创建的文件夹和初始文件,用来测试使用)
  ]
  modules(模块): 即将某个文件作为该应用包含的模块,在应用初始化时会同时加载。
  defaultRoute: 默认应用访问某个模块, 当未添加该属性时,web应用默认显示app\controllers\SiteController::actionIndex() 的结果, 控制台应用默认       yii\console\controllers\HelpController::actionIndex()
  这里设置该属性,访问Module文件

4. 进入Module文件

<?php
    namespace app\home;

    class Module extends \yii\base\Module
    {
        public $defaultRoute = ‘test‘;

        public function init()
        {
            parent::init();
        }
}    

需要继承\yii\base\Module使用框架自带的方法初始化

$defaultRoute: 设置改文件(home)下的控制器文件(controller)下的某个文件为默认文件

init: 根据defaultRoute对默认文件进行加载

5. 进入TestController文件:

        class TestController extends Controller
            {
                public $defaultAction = ‘test‘;
                public $enableCsrfValidation = false;

                public function behaviors()
                {
                    return ArrayHelper::merge([
                        [
                            ‘class‘ => Cors::className(),
                            ‘cors‘ => [
                                // ‘Access-Control-Allow-Origin‘ => [‘*‘],
                                ‘Origin‘ => [‘http://localhost:1024‘],
                                ‘Access-Control-Request-Method‘ => [‘get‘],
                                ‘Access-Control-Allow-Credentials‘ => true,
                            ],
                        ],
                    ], parent::behaviors());
                }

                public function actionTest(){
                    $controllerName = Yii::$app->controller->id;
                    $actionName = Yii::$app->controller->action->id;
                    return $this->asJson($controllerName);
                    // return $this->asJson(‘yii run successfully in test method!‘ + $controllerName);
                }
            }

  $defaultAction: 默认加载某个方法

  这里基本初始化完成, 可以在TestController中设置,将URL与controller下的action一一对应来实现前后端的交互.

时间: 2024-10-07 11:45:08

yii 初始化时如何配置默认访问某个文件?的相关文章

Spring MVC或Spring Boot配置默认访问页面不生效?

相信在开发项目过程中,设置默认访问页面应该都用过.但是有时候设置了却不起作用.你知道是什么原因吗?今天就来说说我遇到的问题. 首先说说配置默认访问页面有哪几种方式. 1.tomcat配置默认访问页面 进入 tomcat 的 conf 目录,编辑 web.xml 文件.在 <web-app></web-app> 添加默认访问页面. <welcome-file-list> <welcome-file>index.html</welcome-file>

tomcat配置默认访问工程目录

在实际的开发测试中,访问路径加工程名不免有点麻烦,例如有web工程名为:sunmojd,那么在tomcat的server.xml中的配置如下: 找到标签: <Host name="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true"        xmlValidation="false" xmlNamespaceAwar

项目中配置默认访问页面

在一个空的SpringMVC项目下,默认访问页面为:项目webapp下的index页面(即和WEB-INF同一级目录下的默认生成index页面). 我们需要在index中进行项目的默认访问面配置更改为: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><% response.sendRedirect("home/test/index

配置SpringBoot访问jsp文件

添加jsp文件依赖包 <!-- 对jsp的支持的依赖 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!-- jsp页面使用jstl标签 --> &l

安装lnmp 时如何修改数据库数据存储地址及默认访问地址

使用lnmp一键安装后,lnmp的安装主要软件及配置文件默认目录如下(lnmp安装): 1:nginx: Nginx 目录: /usr/local/nginx/ Nginx日志目录:/home/wwwlogs/ 添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/ Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf 2:mysql MySQL 目录 : /usr/local/mysql/ MySQL数据库所在

Tomcat8配置默认项目

<!-- 配置默认访问项目 --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase=&

spring boot项目中无法访问resources文件夹问题

如图,浏览器默认访问static文件下的内容,无法访问templates文件下的html文件. 解决方法: 在application.properties文件中添加静态资源目录的配置即可. 原文地址:https://www.cnblogs.com/duguangming/p/11193910.html

Tomcat配置域名和虚拟文件夹

说明: 我在本机中添加域名模拟,假设是主机直接配置也能够使用.我用的tomcat是apache-tomcat-7.0.42 本地添加域名 本文介绍怎样通过改动tomcat的配置.实现通过IP地址或者域名直接訪问tomcat中应用. 首先我将自己的主机中配置了4个域名 配置server.xmlport号 1. 找到tomcat的主文件夹.进入conf文件夹,找到server.xml文件,并打开: 2. 改动tomcat的监听port为80port:保证其它服务器80port不被占用才干使用 在se

Yii框架分析(三)——类加载机制及应用组件的管理、配置、访问、创建

Yii应用的入口脚本引用出了Yii类,Yii类的定义: class Yii extends YiiBase { } 由yiic创建的应用里Yii类只是YiiBase类的“马甲”,我们也可以根据需求定制自己的Yii类. Yii(即YiiBase)是一个“helper class”,为整个应用提供静态和全局访问入口. Yii类的几个静态成员:$_aliases : 存放系统的别名对应的真实路径$_imports :$_classes :$_includePaths php include paths