thinkphp2.1

thinkphp框架结构

Common:公共文件,系统定义,系统函数和管理配置。

Lang:系统语言文件

Lib:系统基类库目录

Tpl:系统模块类目

Mode:框架模式扩展目录

Vendor:第三方类库目录

应用目录:

Common:项目公共文件目录

Conf:配置目录

Lang:语言包

Lib:项目类库目录,通常包括(Action和Model子目录)

Tpl:项目模板目录

Runtime:项目运行目录,包含Cache(模板缓存),Temp(数据缓存),Data(数据目录)

命名规范:

类文件都是以xxx.class.php.

确保文件的命名和调用一致。类名和文件一致。

函数的命名使用小写字母和下划线。如get_client_ip,

action控制器类以Action为后缀。

模型类以Model为后缀。

ThinkPHP使用utf8编码。

使用单一入口进行项目部署和访问。

项目编译是指系统第一次运行的时候会自动生成核心缓存文件~runtime.php和项目编译缓存文件~app.php.

核心编译缓存文件~runtime.php由系统文件core.php文件决定。

thinkphp支持普通url模式,pathinfo模式和rewrite模式和兼容模式。默认为pathinfo模式。

会先找action里面方法,找不到在找模板目录中,然后呈现输出。

项目函数库位于项目的common目录下的common.php,该文件会被执行过自动加载。无需手动载入。如果使用分组部署方式,并且该目录存在分组名称/function.php,也会被对应执行时加载。

应用类库放在项目的lib目录。

时间: 2024-10-18 04:01:49

thinkphp2.1的相关文章

ThinkPHP2.2框架执行流程图,ThinkPHP控制器的执行流程

ThinkPHP2.2框架执行原理.流程图在线手册 ThinkPHP控制器的执行流程 对用户的第一次URL访问 http://<serverIp>/My/index.php/Index/show/ 所执行的流程进行详细的分析,用户的URL访问首先是定位到了My项目的index.php 入口文件(注意:如果使用了URL_REWRITE,可能index.php已经被隐藏了),项目的入口文件所做的其实是实例化一个App应用实例,并且执行这个应用. 1.加载公共入口文件 在实例化App类之前,我们需要

夺命雷公狗---Thinkphp----2之快快速搭建

<?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调试 define('APP_DEBUG',True); //包含thinkphp项目入口文件 require "Thinkphp/Thinkphp.php"; 然后在访问网站即可,效果如下所示: 让后就会发现我们项目的目录下多出一大堆的东西: 这里分别是他的他的公用文件,和首页目录和缓存文件

[转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法.通俗一点说:M实例化参数是数据库的表名.D实例化的是你自己在Model文件夹下面建立的模型文件 例如:$user = new UserModel(); 等价于$user = D('user'); 如果实例化的是一个空模型 例如 $Demo = new Model(); 那么它等价于

ThinkPHP - URL

URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 UserGroupAction,因为过于复杂. 那么url着模块就必须要写成: http://localhos/thinkphp/index.php/user_group/index (user与group之间有下划线) 3.如果 'URL_CASE_INSENSITIVE' =>false, 那么ur

ThinkPHP中实例化对象M()和D()的区别,select和find的区别

原文:ThinkPHP中实例化对象M()和D()的区别,select和find的区别 1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法.通俗一点说:M实例化参数是数据库的表名.D实例化的是你自己在Model文件夹下面建立的模型文件 例如:$user = new UserModel(); 等价于$user = D('user'); 如

thinkphp 前后版本ajaxReturn方法的分别

之前用的是thinkphp2的版本现在改到thinkphp3.2已上的版本,发现ajaxReturn这个方法返回的数据不一样了,现在做下记录 thinkphp2的ajaxReturn的实现原码 protected function ajaxReturn($data,$info='',$status=1,$type='') { // 保证AJAX返回后也能保存日志 if(C('LOG_RECORD')) Log::save(); $result = array(); $result['status

ThinkPHP操作名权限控制

其实ThinkPHP已经内置了RBAC权限控制,操作也很方便,不过总是感觉平常的小站没有必要用RBAC.有的时候需求很简单,权限控制只检测到操作名上,不细分到方法名上.这样做完全没有必要用RBAC.好处:1.节省时间(有的时候老板定的交工时间是死的)2.懒人你懂的 权限的逻辑很简单,后台给每个用户添加一个字段,暂且命名为Competenct,  然后写一个给用户赋权限的多选框,类似于 每个多选框的值就是当前多选框的操作名,比如你有一个ArticleAction.class.php.那么你的val

转载--thinkphp框架的路径问题 - 总结

转自:http://blog.sina.com.cn/s/blog_827ddd950100ulyv.html TP中有不少路径的便捷使用方法,比如模板中使用的__URL__,__ACTION__等,如果你对这些路径不是很明白,用起来说不定就会有这样或那样的问题,抑或出了错也不知道怎么改,现在我们看一下这些路径到底是代表了什么吧!假如你项目首页的URL是:www.test.com/other/Form假如当前模块是:Index假如当前操作是:index那么首页完整的URL:http://www.

php学习笔记(初学者入门)

<?php其他 isset() 变量是否存在 boolean empty() 检查变量是否存在,并判断值是否为非空或非0 void unset() 销毁变量 header('Content-Type: text/html; charset=utf-8'); method_exists($obj, $method) 判断对象的方法是否可用 file_exists($file) 判断文件是否存在 function_exists(); class_exists($class_name); gettyp