thinkphp框架原理?Thinkphp原理及优势与不足
大家好,今天小编来为大家解答thinkphp框架原理这个问题,Thinkphp原理及优势与不足很多人还不知道,现在让我们一起来看看吧!
thinkphp框架有什么功能及使用方法
ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现,也已经越来越多地受到国内PHP开发人员的认可。
使用ThinkPHP,你可以更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨,为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践!
thinkphp主要有什么用
1、他是一个国人开发的php框架,本质上就是相当于将代码逻辑解耦出来,分模块管理,增强类与方法的重用的同时更好的规范代码编写结构,方便二次开发。另外一个就是封装好很多功能,如数据库连接,缓存处理等,可以直接使用以达到快速开发的目的。
2、正如上个问题所说,他是一个国人开发的php框架,意思就是原生文档就是中文的,在我国php使用中占了相对较大的比重,所以一些常见问题可以很容易找到答案。你可以拿他来熟悉框架原理,以及开发一些日常的后台程序,快且简单。但是所有框架的好处都是以损耗性能为前提的,号称速度最快的yaf框架都会比原生php增加10%损耗(官方数据)
综上所述,php框架有很多,主要是方便大家快速开发与减少二次开发工作量的,但本质还是php语言。很多人学习了TP之后就不会用php来做一些基本操作了(上面提到他有很多方法类已经封装好直接用就可以了)。所以最好是学习好php,理解框架的原理,这样无论公司要求你用哪个框架你都能快速上手,否则职业生涯发展会受到限制
thinkphp3.2 后台路径应该怎么写
--前台使用了bootstrap框架技术,美化页面效果很显著(接下来计划有时间总结下bootstrap);并且应用HTML语义化文章结构,便于搜索引擎查找。
--后台打算使用ThinkPHP框架技术,这样可以使整体架构是MVC模式,结构化和模块化项目,并且使页面的html页码和php代码分离。
--最后计划实现页面的静态化,方便吸引搜索引擎爬虫的曝光率。
后台应用TP框架:
1)路径问题
由于TP框架是MVC架构,原理跟smaty模板的一样,contraller调用view下的模板,将模板html页面替换成php,然后包含到contraller下的控制页面,并且缓存在缓存夹cache中,访问contraller时会自动定位到cache下的缓存php文件。这样就引出了路径的问题,模板view下的相对路径需要些contraller的相对路径,建议用绝对路径。
介绍几个系统常量:
网站根目录地址 __ROOT__路径为根目录/
当前路径下 __URL__
公共区: __PUBLIC__路径为/Public/
当前应用入口 __APP__
还可以自己定义路径变量,方便项目开发。
例子:建议使用绝对路径代替相对路径
<link rel="stylesheet" rel="external nofollow" href="__PUBLIC__/css/bootstrap.css">代替<link rel="stylesheet" rel="external nofollow" href="../../Public/css/bootstrap.css">
<img src="__ROOT__/admin/Home/View/Public/images/logo.png"/>代替<img src="../../../../admin/Home/View/Public/images/logo.png"/>
2)数据库的连接展示,例子效果如下:
(1)ThinkPHP/Conf/conversation.php中配置数据库连接参数:
/*数据库设置*/
'DB_TYPE'=>'mysql',//数据库类型
'DB_HOST'=>'localhost',//服务器地址
'DB_NAME'=>'yanhui',//数据库名
'DB_USER'=>'root',//用户名
'DB_PWD'=>'',//密码
'DB_PORT'=>'',//端口
(2)Contraller中新建控制news页面NewsContrallor:
<?php
namespace Home\Controller;
use Think\Controller;
class NewsController extends Controller{
public function index(){
$user=M('news');
$this->rows=$user->order('id')->select();
$this->display();
}
public function add(){
$this->display();
}
public function insert(){
$this->display();
}
public function delete(){
$this->display();
}
public function edit(){
$this->display();
} public function update(){
$this->display();
}
}
(3)View下新建模板页面News/index.html(用了bootstrap展示前端)
<div class="container">
<div class="panel panel-primary">
<div class="panel-heading">新闻展示</div>
<div class="panel-body">
<table class="table table-bordered table-striped">
<tr>
<th>id</th>
<th>标题</th>
<th>概要</th>
<th>上墙</th>
<th>时间</th>
<th>栏目</th>
</tr>
<volist name='rows' id='row'>
<tr>
<td>{$row.id}</td>
<td>{$row.title}</td>
<td>{$row.abstract}</td>
<td>{$row.shelf}</td>
<td>{$row.regtime|date='Y-m-d',###}</td>
<td>{$row.newsclassId}</td>
</tr>
</volist>
</table>
</div>
</div>
</div>
(根据这个例子,依次实现news模块的增删改查方法)
文章到此结束,如果本次分享的thinkphp框架原理和Thinkphp原理及优势与不足的问题解决了您的问题,那么我们由衷的感到高兴!