ThinkPHP快速入门

1、ThinkPHP自动生成

当我们部署完ThinkPHP框架后,其会自动生成Application文件夹,如下图所示:

2、自动生成细节分析

问题1:Application从何而来?

答:Application文件夹是由入口文件中的APP_PATH常量决定的,其可以自动按照设定参数生成指定文件夹。

 

问题2:为什么常量的定义要载入文件载入之前呢?

答:因为在ThinkPHP.php入口文件中,其要对APP_PATH进行判断,如果没有这个问价夹就创建

 

问题3:ThinkPHP系统是如何自动生成Application这个项目目录的呢?

答:由ThinkPHP.php入口文件中的start函数进行初始化生成的

3、Zend Studio代码追踪

在实际项目开发中,如果我们开发一个企业级框架,由于文件过多,很多找到我们需要跟踪的代码,这个时候可以在Zend软件中,使用Ctrl+鼠标坐标点击要追踪的代码或文件,系统会自动进行定位。

4、Application项目目录详解

Common:核心函数库核心配置,优先级要高于ThinkPHP内置核心函数库

Home:前台Home模块,后面还可以实现Admin后台模块

Runtime:运行时目录,缓存文件、日志文件等等…

5、Home前台模块分析

Common:核心函数库,优先要高于Application以及ThinkPHP内置函数库

模块的优先级 > Application项目的优先级 > ThinkPHP内置优先级

Conf:核心配置文件,数据库设置…

Controller:Home模块的控制器

Model:Home模块的模型

View:Home模块的View视图

index.html:基于安全考虑而引入的index文件,访问外部访问项目目录结构

 

问题:为什么在新版ThinkPHP框架中的每一个文件夹下都有一个空的index.html文件呢?

答:当我们访问某个文件夹时,如果其没有默认入口文件,则使用Apache默认配置直接输出整个目录结构。所以为了解决这个问题,就引入了index.html

6、ThinkPHP配置文件分析

问题:为什么当我们访问http://www.think.com 这个虚拟域名,系统会自动弹出以下界面,这个界面又存在哪里呢?

答:这个跳转主要是由ThinkPHP核心配置文件决定的,如下图所示:

打开后,找到如下代码:

由此可知:当我们访问虚拟域名时,那系统会自动转向到系统的Home模块下的Index控制器下的index操作方法。

运行链接如下图所示:

特别说明:在我们实际项目开发中,经常会用到配置信息,但是我们不需要对其死记硬背,遇到配置信息时,直接到ThinkPHP/Conf/convention去复制编辑即可。

7、ThinkPHP入门案例-读取数据库中的信息并显示

① 配置虚拟主机

② 配置hosts文件并重启Apache服务器

③ 复制ThinkPHP核心目录到项目文件夹中(如think)

④ 创建index.php入口文件并编辑代码如下图所示:

⑤ 通过浏览器,访问虚拟域名,如下图所示:

由于系统受到配置文件convention.php文件的影响,默认会访问Home/Index控制器/index操作方法。

⑥ 更改index方法

1)链接数据库

由于ThinkPHP中的程序都是预定义好的,我们链接数据库只需要定义一个配置文件即可,在Home模块下的Conf文件夹下的config.php文件中,添加以下参数(参数可以在convention.php中复制)

2)实例化模型(操作数据库)

运行效果:

ThinkPHP快速入门的更多相关文章

  1. ThinkPHP 快速入门

    1. 框架简介 框架是程序结构代码的集合,而不是业务逻辑代码.集合中包含了很多类.函数和功能类包.这个集合是按照一定标准组成的功能体系.体系有很多设计模式,比如MVC等. 2. ThinkPHP框架学 ...

  2. thinkphp快速入门(学习php框架及代码审计)

    之前想学习php代码审计,但是没有坚持下去,记得当时看到了很多CMS框架采用MVC架构,就嘎然而止了. 为了深入学习下框架,一边看着thinkphp官方文档,一边写个简单的登陆注册页面以加深理解. 官 ...

  3. php随笔4-thinkphp 学习-ThinkPHP3.1快速入门(2)数据CURD

    ThinkPHP3.1快速入门(2)数据CURD   浏览:194739 发布日期:2012/09/05 分类:文档教程 关键字: 快速入门 CURD 上一篇中,我们了解了ThinkPHP的基础部分, ...

  4. php随笔3-thinkphp 学习-ThinkPHP3.1快速入门(1)基础

    ThinkPHP3.1快速入门(1)基础 简介 ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发 框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在 ...

  5. ThinkPHP3.1快速入门教程

    ThinkPHP3.1快速入门教程 http://www.thinkphp.cn/info/155.html   ------------------------------------------- ...

  6. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  7. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  8. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  9. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. TP复习12

    四.特殊标签 1.比较标签 eq或者 equal 等于 neq 或者notequal 不等于 gt 大于 egt 大于等于 lt 小于 elt 小于等于 heq 恒等于 nheq 不恒等于 2.范围标 ...

  2. 0c-35-自动释放池使用注意

    .autorelease使用注意 )并不是放到自动释放池中,都会自动加入到自动释放池 1.1) 因为没有调用autorelease方法,所以对象没有加入到自动释放池. int main(){ @aut ...

  3. 基于 SquashFS 构建 Linux 可读写文件系统

    转载:http://www.oschina.net/question/129540_116839 在当前的嵌入式操作系统开发中,Linux 操作系统通常被压缩成 Image 后存放在 Flash 设备 ...

  4. 两种方式连接mysql

    一种方式:运行命令符后,mysql -u root -p(如果不成功,说明环境变量没配,命令行到 mysql的bin目录下,然后运行mysql -u root -p 应该成功了) 另外一种方式,直接有 ...

  5. golang之websocket 源码分析

    下载go的websocket包. 1. 通过google官方的方法, 需要hg来同步代码. 由于墙的原因, 还需要设置代理. 比较麻烦 2. http://gopm.io/ 通过该网站下载, 这是go ...

  6. 类型推导:函数模板与auto

    1.从函数模板谈起 函数模板的类型推导机制是在c++98时代就有的,auto的类型推导机制与其基本一致,所以先理解函数模板类型推导. 函数模板可以用如下代码框架表示: #template<typ ...

  7. CSS 之 控制图片与文字对齐

    文字旁边搭配图片时,发现图片比文字靠上,原来默认的情况是图片顶对齐而文字底对齐,通过设置css属性可以使得图片与文字对齐. 设置各对象的vertical-align属性,属性说明: baseline- ...

  8. Java连接mysql数据库并进行内容查询

    最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Conn ...

  9. iOS 自定义 shareSDK 容器

    - (void)initializePlat { //添加新浪微博应用 [ShareSDK connectSinaWeiboWithAppKey:@"3201194191" app ...

  10. 数据库实例创建好后,用plsql登录居然提示ora-12526监听程序:所有适用例程都处于受限模式的问题

    解决办法:以sys身份登录执行该语句:ALTER SYSTEM DISABLE RESTRICTED SESSION;