zoukankan      html  css  js  c++  java
  • 《ThinkPHP 5.0快速入门》 基础和路由

    一、基础:

    创建项目:conposer create-project topthink/think tp5 --prefer-dist
    创建项目模块:php think build --module demo
    访问未配置的路由:http://localhost/tp5/
    上线时要关闭调试模式:'app_debug' =>  false,   config.php
    //创建母案文件需要继承controller类
    use thinkController;
    
    class Index extends Controller($name = '张三'){
    public function index($name = '张三'){
        
    $this->assgin('name',$name);//可在html输出{$name}为张三
    return $this->fetch();
      }
    }
    //创建数据表 -- 记录没试过
    CREATE TABLE IF NOT EXISTS `think_data`(
        `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
        `data` varchar(255) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;INSERT INTO `think_data`(`id`,`data`) VALUES
    (1,'thinkphp'),
    (2,'php'),
    (3,'framework');
    //连接数据库
    use thinkDb;
    
    class Index extends Controller{
        public function index(){
            $data = Db::name('data')->find();
            $this->assign('result', $data);
            return $this->fetch();
        }
    }

    二、URL和路由:

    1、url访问:

    标准的URL访问格式:http://serverName/index.php/模块/控制器/操作/参数名/参数/参数名2/参数2
    传入参数还可以使用:
    http://serverName/index.php/模块/控制器/操作?参数名=参数&参数名2=参数2
    //提示:模块在ThinkPHP中的概念其实就是应用目录下面的子目录,而官方的规范是目录名小写因此模块全部采用小写命名无论URL是否开启大小写转换模块名都会强制小写
    //如果你的控制器是驼峰的,那么访问的路径应为:.../hello_world/index
    class HelloWorld{
        public function index(){}
    }
    //如果使用.../HelloWorld/index 则会报错:Helloworld不存在。必须要使用大小写的时候需要配置:
    关闭URL自动转换(支持驼峰访问控制器):'url_convert' => false,  config.php

    2、隐藏index.html

    //隐藏路径中的index.php,需要在入口文件平级的目录下添加.htaccess文件(默认包含该文件)
    <IfModule mod_rewrite.c>
      Options +FollowSymlinks -Multiviews
      RewriteEngine On
    
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>
    //接下来就可以使用:http://tp5.com/index/index/hello 访问了
    //如果使用的是Nginx环境:可以在Nginx.conf中添加:
    localtion/{
      if(!-e$request_filename){
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
      }
    }

    3、*定义路由:

    //路由定义文件:application/route.php  原来的url将会失效!变为非法请求!
    return ['hello/:name'=>'index/index/hello',];//此方法的 name参数必选!
    return ['hello/[:name]'=>'index/index/hello'];//此方法的 name参数可选!
    //动态定义路由:application/route.php
    use thinkRoute;
    
    Rroute::rule('hello/:name/:age','index/hello');//必选参数
    Rroute::rule('hello/[:name]/[:age]','index/hello');//可选参数

    4、路由参数

    //可以用来约束URL后缀条件等。.../hello/index.html有效
    return [
        'hello/[:name]' => ['index/hello', ['method' => 'get', 'ext' => 'html']],
    ];

    5、变量规则

    //可以用正则表达式来限制路由参数的格式
    return [
        'blog/:year/:month' => ['blog/archive', ['method' => 'get'], ['year' => 'd{4}', 'month' => 'd{2}']],
        'blog/:id'          => ['blog/get', ['method' => 'get'], ['id' => 'd+']],
        'blog/:name'        => ['blog/read', ['method' => 'get'], ['name' => 'w+']],
    ];

    6、路由分组


    return
    [ '[blog]' => [ ':year/:month' => ['blog/archive', ['method' => 'get'], ['year' => 'd{4}', 'month' => 'd{2}']], //blog/archive ':id' => ['blog/get', ['method' => 'get'], ['id' => 'd+']],                   //blog/get ':name' => ['blog/read', ['method' => 'get'], ['name' => 'w+']],                 //blog/read ], ];
  • 相关阅读:
    跃迁方法论 Continuous practice
    EPI online zoom session 面试算法基础知识直播分享
    台州 OJ 2648 小希的迷宫
    洛谷 P1074 靶形数独
    洛谷 P1433 DP 状态压缩
    台州 OJ FatMouse and Cheese 深搜 记忆化搜索
    台州 OJ 2676 Tree of Tree 树状 DP
    台州 OJ 2537 Charlie's Change 多重背包 二进制优化 路径记录
    台州 OJ 2378 Tug of War
    台州 OJ 2850 Key Task BFS
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/11610214.html
Copyright © 2011-2022 走看看