zoukankan      html  css  js  c++  java
  • 【三十一】thinkphp之安装、配置、模块化及URL模式

    一:安装与配置

    1.获取ThinkPHP

    下载地址:http://www.thinkphp.cn/down.html

    2.入口文件

    ThinkPHP采用单一入口模式对项目进行部署和访问,所以我们需要通过index.php来进行一些部署工作,保证其正常访问

    index.php内容

    // 检测PHP环境
    if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');
    
    // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
    define('APP_DEBUG',True);
    
    //设置index跳转的控制器为admin控制器
    // define('BIND_MODULE', 'Admin');
    // 
    // 默认指向admin模块
    // $_GET['m'] = 'Admin';
    // 定义应用目录
    define('APP_PATH','./Weibo/');
    
    // 引入ThinkPHP入口文件
    require './ThinkPHP/ThinkPHP.php';

    3.自动生成

    当我们第一次访问应用入口文件时,会自动生成一个应用程序目录.目录名称是由define('APP_PATH','./Weibo/');定义的。

    目录展示:

    4.访问控控制器

    控制器路径在:Weibo/Home/Controller 下,有一个默认的控制器 IndexController.class.php文件。

    控制器文件的命名方式为:类名+class.php

    创建一个控制器需要3部分:

    1. 设置命名空间(namespace HomeController;)
    2. 导入命名空间(use ThinkController;)
    3. 控制器类(class UserController extends Controller)

    访问路径为:localhost/basic_thinkphp/index.php/Home/user/index

    Home是主模块

    user是控制器

    index是控制器里的一个方法。(注意:区分大小写)

    二:模块化和URL模式

    1.模块化设计

    1.设计两个入口文件,复制index.php即可。

    2.设计一个入口文件,两个应用程序,公用common文件夹和runtime文件夹。

    • 复制Home文件夹到同级目录
    • 修改Admin目录下index控制器的命名空间(namespace AdminController;)

    访问目录为:http://localhost/basic_thinkphp/index.php/Admin

    ps1:有一些模块我们希望是用户禁止访问的,可以如下设置

    common/conf/config.php

    return array(
        //'配置项'=>'配置值'
        //禁止访问模块
        'MODULE_DENY_LIST' => array('Common','Runtime'),
        //禁止访问模块,添加一个Admin模块
        'MODULE_DENY_LIST' => array('Common','Runtime','Admin'),
        //允许访问的模块,设置了,就必须写全,漏写的将无法访问
        'MODULE_ALLOW_LIST' => array('Home','Admin'),    
    );

    ps2:设置默认访问模块或控制器,可以如下设置:

    在入口文件index.php中修改:

    // 检测PHP环境
    if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');
    
    // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
    define('APP_DEBUG',True);
    
    //设置index跳转的控制器为admin控制器
    // define('BIND_MODULE', 'Admin');
    
    // 默认指向admin模块
    $_GET['m'] = 'Home';
    // 默认指向User控制器的index函数
    $_GET['c'] = 'User';
    
    // 定义应用目录
    define('APP_PATH','./Weibo/');
    
    // 引入ThinkPHP入口文件
    require './ThinkPHP/ThinkPHP.php';

    访问路径:http://localhost/basic_thinkphp/

    2.URL模式

    2.1PATHINFO模式(默认模式)

    访问格式:http://localhost/basic_thinkphp/index.php/模块/控制器/操作

    weibo/Home/Controller/UserController.class.php

    <?php
    namespace HomeController;
    use ThinkController;
    class UserController extends Controller {
        public function test($user,$pass){
           echo "user:".$user."<br/>pass:".$pass;
        }
    }

    访问链接:http://localhost/basic_thinkphp/index.php/Home/User/test/user/cmf/pass/123

    界面显示:

    2..2普通模式

    参考如上例子.访问链接:http://localhost/basic_thinkphp/index.php?m=Home&c=User&a=test&user=hello&pass=456

    可以看出:1.采用的是传统的get模式.2.m代表模块.3.c代表控制器.4.a代表方法.5.后面的是键值对

    2.3REWRITE(重写模式)

    httpd.conf 配置文件中加载了 mod_rewrite.so 模块
    AllowOverride None 将 None 改为 All
    把下面的内容保存为.htaccess 文件放到应用入口文件的同级目录下
    这样,ThinkPHP 自带的.htaccess 文件就起作用了,可以过滤掉 index.php 这个字
    符串。
    <IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>

    访问链接:http://localhost/basic_thinkphp/Home/User/test/user/jjj/pass/123

    2.4兼容模式

  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    107. Binary Tree Level Order Traversal II
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    104. Maximum Depth of Binary Tree
    103. Binary Tree Zigzag Level Order Traversal
    102. Binary Tree Level Order Traversal
    系统和进程相关信息
    文件I/0缓冲
    系统编程概念(文件系统mount等函数的使用)
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/8315780.html
Copyright © 2011-2022 走看看