ThinkPHP

先把百度百科上对这个框架的介绍粘贴过来:

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。[1]

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQLSqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

OK说了那么多,可以简单理解成,Think PHP 是一个写好的PHP框架,里面封装了很多东西,并且实现了很多特性,同时也是遵循MVC的设计理念。开发的时候,直接用这一套,我们直接在上面添加自己的功能性东西业务逻辑以及视图,然后根据具体情况改改配置文件就可以了。增大开发效率。

使用Think PHP

Think PHP的细节很多,也有专门的使用文档:http://www.thinkphp.cn 这上面有文档和最新版本TP。

因为有官方开发文档,所以也没必要再去说每个细节。直接去看上面网址里的开发文档即可,这里只是说些基本的东西。

1.使用ThinkPHP (阿帕奇)

去上面官网上下载最新版本TP。(核心版本或者完整版本,目前是两个压缩包。)

我刚刚看到的官网最新版本是thinkphp_5.0.7_core,thinkphp_5.0.5_full。

不需要安装,解压后就可以直接使用。比如咱们直接在www目录下创建一个文件夹。D1,然后把完整版本解压放到里面:

然后说下默认的目录结构内容:

├─application     应用目录

├─extend          扩展类库目录(可定义)

├─public          网站对外访问目录

├─runtime         运行时目录(可定义)

├─vendor          第三方类库目录(Composer)

├─thinkphp        框架核心目录

├─build.php       自动生成定义文件(参考)

├─composer.json   Composer定义文件

├─LICENSE.txt     授权说明文件

├─README.md       README 文件

├─think           命令行工具入口

├─thinkphp 框架系统目录

│  ├─lang               语言包目录

│  ├─library            框架核心类库目录

│  │  ├─think           think 类库包目录

│  │  └─traits          系统 traits 目录

│  ├─tpl                系统模板目录

│  ││  ├─.htaccess          用于 apache 的重写

│  ├─.travis.yml        CI 定义文件

│  ├─base.php           框架基础文件

│  ├─composer.json      composer 定义文件

│  ├─console.php        控制台入口文件

│  ├─convention.php     惯例配置文件

│  ├─helper.php         助手函数文件(可选)

│  ├─LICENSE.txt        授权说明文件

│  ├─phpunit.xml        单元测试配置文件

│  ├─README.md          README 文件

│  └─start.php          框架引导文件

入口文件在这里

从右侧可以看出来,定义应用的路径是application。

..\application\index\controller\index.php 是控制器入口文件:里面是:



比如现在访问链接:

http://127.0.0.1/D1/public/index.php

也可以http://127.0.0.1/D1/public/

再看下start.php

然后改下控制器入口文件:application\index\controller\index.php

这里面的index() 就跟C++ 的main一样,可以理解成是或者模块的入口函数。

最后记得资源可以放在public目录下,其他不需要提供访问权限的东西不能放在这里。

2.Think PHP 的调试

Think PHP 的错误显示细节很详细的,开关在这个位置,记得发布的时候一定要关闭调试开关:

测试下:

3.控制器

可以理解成是C++的main函数。

application/index/controller/Index.php

<?php

namespace app\index\controller;

class Index

{

public function index()

{

return 'Hello,World!';

}

}

可以为操作方法定义参数,例如:

<?php

namespace app\index\controller;

class Index

{

public function index($name = 'World')

{

return 'Hello,' . $name . '!';

}

}

4.视图

Hello.html

<html>

<head>

<title>hello {$name}</title>

</head>

<body>

hello, {$name}!

</body>

</html>

然后控制器里:

<?php

namespace app\index\controller;

use think\Controller;

class Index extends Controller

{

public function index($name = 'World')

{

return 'Hello,' . $name . '!';

}

public function hello($name = 'thinkphp')

{

$this->assign('name', $name);

return $this->fetch();

}

}

最后访问:

http://127.0.0.1/D1/public/index.php/index/index/hello

输出:

hello, thinkphp!

5.访问数据库

然后可以这样查询数据:

<?php

namespace app\index\controller;

use think\Controller;use think\Db;

class Index extends Controller

{

public function index()

{

$data = Db::name('data')->find();//data是列名

}

}

剩下的Think PHP还有很多,可以在网上找开发文档自己慢慢了解。这里只是简单入个门,让大家知道有这个东西,这个东西比较方便,平时开发可以尝试使用。

13.PHP_ThinkPHP的更多相关文章

  1. TechEmpower 13轮测试中的ASP.NET Core性能测试

    应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此.此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚.在选择框架时, ...

  2. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  3. 转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38

    转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38http://space.itpub. ...

  4. IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页

    因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...

  5. CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection)

    CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection) 2016-08-13 由于CSh ...

  6. ABP(现代ASP.NET样板开发框架)系列之13、ABP领域层——数据过滤器(Data filters)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之13.ABP领域层——数据过滤器(Data filters) ABP是“ASP.NET Boilerplate P ...

  7. 推荐13款javascript模板引擎

    javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...

  8. ASP.NET Core 中文文档 第三章 原理(13)管理应用程序状态

    原文:Managing Application State 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:高嵩 在 ASP.NET Core 中,有多种途径可以对应用程序的状态进行 ...

  9. C#开发微信门户及应用(13)-使用地理位置扩展相关应用

    本文继续上一篇<C#开发微信门户及应用(12)-使用语音处理>,继续介绍微信的相关应用.我们知道,地理位置信息可以用来做很多相关的应用,除了我们可以知道用户所在的位置,还可以关联出一些地理 ...

随机推荐

  1. Python3.x 基础练习题100例(81-90)

    练习81: 题目: 809??=800??+9?? 其中??代表的两位数, 809??为四位数,8??的结果为两位数,9??的结果为3位数.求??代表的两位数,及809*??后的结果. 程序: a = ...

  2. 客官,.NETCore无代码侵入的模型验证了解下

    背景 .NETCore下的模型验证相信绝大部分的.NET开发者或多或少的都用过,微软官方提供的模型验证相关的类位于System.ComponentModel.DataAnnotations命令空间下, ...

  3. IDEA修改jar包中class文件后重新生成jar包

    一.背景 最新想要修改rebeyond大佬的冰蝎项目,特地去网上搜索如何修改jar包中的源码再替换回去的方法,但由于现在的一些文章写的太烂,导致走了很多弯路,因此写下这篇快速使用IDEA修改源码并替换 ...

  4. WPF 基础 - 点击事件的执行顺序及 Button 点击事件的特殊性

    1. 点击事件的执行顺序 PreviewMouseLeftButtonDown PreviewMouseDown MouseLeftButtonDown MouseDown PreviewMouseL ...

  5. Reactive Spring实战 -- 响应式Redis交互

    本文分享Spring中如何实现Redis响应式交互模式. 本文将模拟一个用户服务,并使用Redis作为数据存储服务器. 本文涉及两个java bean,用户与权益 public class User ...

  6. flutter兼论

    Flutter是Google开发的一套全新的跨平台.开源UI框架,支持iOS.Android系统开发,并且是未来新操作系统Fuchsia的默认开发套件.自从2017年5月发布 第一个版本以来,目前Fl ...

  7. reverseLinkedList(翻转链表)

    ReverseLinkedList(翻转链表) 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.非连续.非顺序指的是,通过指针把一组零散的内存块串 ...

  8. Dotnet洋葱架构实践

    一个很清晰的架构实践,同时刨刨MySQL的坑.   一.洋葱架构简介 洋葱架构出来的其实有一点年头了.大约在2017年下半年,就有相关的说法了.不过,大量的文章在于理论性的讨论,而我们今天会用一个项目 ...

  9. (十四--十五)数据库查询优化Part I

    (十四--十五)数据库查询优化Part I 如果理解的有问题.欢迎大家指出.这也是我在看课记得笔记..可能会有很多问题 查询优化的重要性 请记住用户只会告诉DMBS他们想要什么样的结果,而不会告诉他们 ...

  10. Prometheus联邦

    联邦使得一个 Prometheus 服务器可以从另一个 Prometheus 服务器提取选定的时序. 1. 使用场景 Prometheus 联邦有不同的使用场景.通常,联邦被用来实现可扩展的 Prom ...