初学thinkphp

来源:互联网 发布:达芬奇调色 知乎 编辑:程序博客网 时间:2024/06/05 16:24

第一次写博客,以前经常在编程方面遇到问题进行百度,发现博客解决了我很多问题。所以我想通过博客记录下我的学习之路,同时也是希望给其他人进行参考和指点。

前面就进行下载thinkphp,然后导入到项目中,访问项目首页成功。然后下面直接学习thinkphp的架构。

1、模块化设计

一个典型的URL访问规则是(我们以默认的PATHINFO模式为例说明,当然也可以支持普通的URL模式):

http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...]

Common模块是一个特殊的模块,是应用的公共模块,访问所有的模块之前都会首先加载公共模块下面的配置文(Conf/config.php

自动生成模块目录

例如:当需要生成admin模块用于后台应用,在应用入口文件(index.php)中定义如下:

 define('BIND_MODULE','Admin'); // 绑定Admin模块到当前入口文件
就会生成Admin模块的目录,并生成一个默认的控制器类Admin\Controller\IndexController。 如果需要生成更多的控制器类,可以定义BUILD_CONTROLLER_LIST常量
define('BUILD_CONTROLLER_LIST','Index,User,Menu');

也可以定义BUILD_MODEL_LIST支持生成多个模型类: define('BUILD_CONTROLLER_LIST','Index,User,Menu');

设置访问列表

如果你的应用下面模块比较少,还可以设置允许访问列表和默认模块,这样可以简化默认模块的URL访问。

'MODULE_ALLOW_LIST'    =>    array('Home','Admin','User'),
'DEFAULT_MODULE'       =>    'Home',
设置之后,除了Home、Admin和User模块之外的模块都不能被直接访问,并且Home模块是默认访问模块(可以不出现在URL地址)。

单模块设计

如果你的应用够简单,那么也许仅仅用一个模块就可以完成,那么可以直接设置:

  1. // 关闭多模块访问
  2. 'MULTI_MODULE' => false,
  3. 'DEFAULT_MODULE' => 'Home',
一旦关闭多模块访问后,就只能访问默认模块(这里设置的是Home)

多入口设计

可以给相同的应用及模块设置多个入口,不同的入口文件可以设置不同的应用模式或者绑定模块。

例如,我们在index.php文件的同级目录新增一个home.php入口文件,并绑定Home模块:


0 0