首页 > 后端开发 > 正文

php在tp框架的构造 php的tp框架和mvc有啥区别?

2023-09-28 04:04:59 | 我爱编程网

今天我爱编程网小编整理了php在tp框架的构造 php的tp框架和mvc有啥区别?相关信息,希望在这方面能够更好帮助到大家。

php在tp框架的构造 php的tp框架和mvc有啥区别?

php的tp框架和mvc有啥区别?

首先说Model吧。
在TP中是一个表对应一个Model,而且普通Model中只是一些自动验证啊,自动完成啊、还有数据字段信息啊一些东西;而CI中的Model则完全不同,一个Model不必约束于一个表,也就是说名字为abc的Model中你也可以查询名字为def的表中的数据,而且可以定义方法完成一些数据查询,比如我可以在名为articles_model的Model中定义一个名字为get_articles的方法来获取所有文章信息,当某个Controller加载了这个Model后,就可以在相应的Controller中用

1

$this->articles_model->get_articles();

来方便地获取所有文章信息,而对于TP来说,这些操作只能在Action类中完成。2.0版的TP已经把View、Relation和Adv三个高级查询model库类定为不自动加载了,看了一下手册,感觉除了View视图查询容易用一点,另外两个都不怎么好用,感觉用起来太复杂,还不如用原生的SQL查询。CI的Model还有一个使我很喜欢的方法就是dbprefix方法,在使用原生的sql查询时使用这个函数使得修改数据库表名前缀后你的代码不需要经过任何改动。在TP中我没有发现类似的函数,当我用TP开发一个博客系统时,发现关联查询很麻烦,于是想用原生的SQL查询,却没有找到自动增加数据库表名前缀的方法,虽然可以自己修改TP的核心库来实现,但是还是觉得这样有点不太好。真的要感谢TP,如果不是TP,也许我就不会去关注CI了,当我那天看了几页CI的英文文档后,立马就对它产生的深厚的兴趣,于是第二天一起床就开始看CI的手册,虽然是从官网下的英文版的,不过它的手册写得很简洁、很周到,边看边操作,看完手册后我就几乎能熟练使用这个框架了。于是用它开发了一个博客系统。
CI的Model类简单易用,TP的Model类功能相对来说要强大一些,但是用起来个人感觉没有那么方便。
其次,对于View,从功能上讲,TP的View要更加强大一些,选择更多一些,在TP中你可以选择就用PHP作模板引擎,可以就用TP自身的模板引擎,也可以选择用smarty等其它第三方模板引擎。而在CI中就只能用CI内置的功能简单的模板引擎或者用原生的PHP代码作模板,个人觉得用PHP作模板更好一些,一来省去了学习另外的模板引擎语法的麻烦,二来执行效率更高一些。因些从View来讲,选择CI或者是TP都无所谓。
再次是Controller了,在CI中的应用的控制器是继承自核心类Controller的,TP中的控制器则是继承于核心类Action。不过还是有不同的,在TP中,你可以把一些公共的变量或者在多个控制器中都要执行的东西放在一个action里,假如这个action文件为CommonAction.class.php ,在它的_initialize方法中可以执行一些在多个控制器中都要执行的代码或者初始化一些多个控制器都要使用的变量,这样,应用的其它action只要继承CommonAction 就可以实现了。因为框架在加载相应action时首先会自动加载那个CommonAction的。而在CI中就没有这个方便的功能了,但是也可以自己写一个library,在该library类的__construct方法里放一些代码,然后在每个控制器中都加载这个library,这样也可以实现像TP一样的功能。不过相对来说麻烦了一些。TP还有一点比较灵活的就是,在这个控制器(action)里面可以执行那个控制器中的函数(比如用A或者R函数来实现),在CI中则不行,你不能在这个控制器中执行那个控制器中的函数。还有就是TP可以定义一个名为EmptyAction的控制器,当所有控制器都找不到时,就调用这个Empty控制器。这一点如果与empty方法配合,可以使得URL大大缩减。虽然CI和TP都支持空操作,不过这二者的空操作名称不相同,实现的优先级也不相同。在TP中的空操作(_empty方法)优先级是最低的,也就是说当当前控制器的所有操作都找不到时才调用这个空操作;在CI中则恰恰相反,只要存在空操作(_remap方法),该控制器的其它的操作都没用了(不能访问了)。

php在tp框架的构造 php的tp框架和mvc有啥区别?

Tp框架如何生成二维码





下面由thinkphp框架教程栏目给大家介绍Tp框架生成二维码的方法,希望对需要的朋友有所帮助!
基础环境系统环境:Windows10 x64PHP集成环境:phpstudyPHP依赖管理工具:Composer(一) 安装qr-code扩展
composer require endroid/qr-code(二)代码实现(代码亲测有效)
<?php
namespace appcommonservice;
use JrkRandom;
use EndroidQrCodeQrCode;
use thinkException;
class QrcodeSrvice
{
/**
* @param $text
* @param int $size
* @param bool $domain
* @return string
* @author: Hhy <jackhhy520@qq.com>
* @describe:生成普通二维码
*/
public static function make_qrcode($text,$size=105,$domain=false){
$img_name = Random::alnum(15);
$n = date("Ym");
$dir= app()->getRootPath()."public/qrcode/code/".$n;
//判断目录是否存在
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$pathname = $dir."/" . $img_name . '.png';
$qrCode = new QrCode();
$qrCode->setText($text)
->setSize($size)
->setPadding(15)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setImageType(QrCode::IMAGE_TYPE_PNG);
try {
$qrCode->save($pathname);
$str="/qrcode/code/".$n."/". $img_name . '.png';
if ($domain){
return request()->domain().$str;
}else{
return $str;
}
} catch (EndroidQrCodeExceptionsImageTypeInvalidException $exception) {
return "";
}
}
/**
* @param $text
* @param $logo
* @return string
* @throws Exception
* @author: Hhy <jackhhy520@qq.com>
* @describe:生成带logo 的二维码
*/
public static function QrCodeWithLogo($text,$logo,$domain=false){
if (!file_exists($logo)){
exception("logo地址不存在");
}
$img_name = Random::alnum(15);
$n = date("Ym");
$dir= app()->getRootPath()."public/qrcode/".$n;
//判断目录是否存在
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
$pathname = $dir."/" . $img_name . '.png';
$qrCode = new QrCode();
$qrCode->setText($text)
->setSize(300)
->setLogo($logo)
->setLogoSize(60)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setImageType(QrCode::IMAGE_TYPE_PNG);
$qrCode->save($pathname);
$str="/qrcode/".$n."/". $img_name . '.png';
if ($domain){
return request()->domain().$str;
}else{
return $str;
}
}
}

php在tp框架的构造 php的tp框架和mvc有啥区别?我爱编程网

tp框架开发流程?

安装好phpstudy后,运行软件.首先将tp的程序放到一个目录web_thinkphp(可自定义)打开phpStudy面版右边有一个php版本,选择好tp所需要的版本(tp3.2先5.3~5.4即可,tp5可选5.5+)127.0.0.1tp.me保存(如果没有修改权限,可以在桌面上建一个文件hosts加入上面一行代码后再覆盖到hosts所在的目录)在其它选项菜单->站点域名管理->路径:指向web_thinkphp端口:80[新增]->保存并生成配置文件然后浏览器中输入tp.me就运行tp了

以上,就是我爱编程网小编给大家带来的php在tp框架的构造 php的tp框架和mvc有啥区别?全部内容,希望对大家有所帮助!
与“php在tp框架的构造 php的tp框架和mvc有啥区别?”相关推荐
php协程框架tp php的tp框架和mvc有啥区别?
php协程框架tp php的tp框架和mvc有啥区别?

tp框架开发流程?安装好phpstudy后,运行软件.首先将tp的程序放到一个目录web_thinkphp(可自定义)打开phpStudy面版右边有一个php版本,选择好tp所需要的版本(tp3.2先5.3~5.4即可,tp5可选5.5+)127.0.0.1tp.me保存(如果没有修改权限,可以在桌面上建一个文件hosts加入上面一行代码后再覆盖到hosts所在的目录)在其它选项菜单-&g

2023-09-22 03:43:58
php框架区别 php的tp框架和mvc有啥区别?
php框架区别 php的tp框架和mvc有啥区别?

国外主流PHP框架对比评测最近简单的使用了目前在国内用的比较多的几个主流国外PHP框架(不包括国内框架)大致对这些框架有个直观上的感受简单分享一下对于哪些做框架选型的时候权当一个参考主要参考的框架包括CodeIgniterCakePHPZendFrameworkSymfony我对很多框架也没有认真使用只是简单试用了一下可能很多看法不成熟或者是错误的请大家指正一起成长CodeI

2023-08-25 20:30:49
php中tp框架的认识 php的tp框架和mvc有啥区别?
php中tp框架的认识 php的tp框架和mvc有啥区别?

php的tp框架和mvc有啥区别?首先说Model吧。\x0d\x0a在TP中是一个表对应一个Model,而且普通Model中只是一些自动验证啊,自动完成啊、还有数据字段信息啊一些东西;而CI中的Model则完全不同,一个Model不必约束于一个表,也就是说名字为abc的Model中你也可以查询名字为def的表中的数据,而且可以定义方法完成一些数据查询,比如我可以在名为articles_mo

2023-09-25 16:17:31
php非mvc框架 php的tp框架和mvc有啥区别?
php非mvc框架 php的tp框架和mvc有啥区别?

PHP有哪些流行的框架PHP有哪些流行的框架?PHP有哪些流行的框架?PHP作为一种十分流行的编程语言,拥有大量的应用领域和开源程序库。其中,PHP框架可以有效提高对PHP语言的理解和运用水平。框架作为一种用于开发网络应用程序的基础架构,可以让开发者在不同项目的开发中提高效率。在PHP框架领域中,有许多众所周知、使用广泛的优秀框架,其中一些常见的PHP框架如下:1.Lara

2023-09-14 07:16:56
php和tp框架 laravel和thinkphp的区别是什么?
php和tp框架 laravel和thinkphp的区别是什么?

laravel和thinkphp的区别是什么?一、渲染模版方式的不同1、在Laravel框架里,使用returnview()来渲染模版;2、而ThinkPHP里则使用了$this-&gt;display()的方式渲染模版。二、条件判断语句书写方式不同1、Laravel框架里ifelse判断语句和foreach语句,书写时必须以@if开头,以@endif结尾。如果没有

2023-09-07 13:56:59
php中的tp框架 原生php和thinkphp这些框架有什么区别?
php中的tp框架 原生php和thinkphp这些框架有什么区别?

tp框架开发流程?安装好phpstudy后,运行软件.首先将tp的程序放到一个目录web_thinkphp(可自定义)打开phpStudy面版右边有一个php版本,选择好tp所需要的版本(tp3.2先5.3~5.4即可,tp5可选5.5+)127.0.0.1tp.me保存(如果没有修改权限,可以在桌面上建一个文件hosts加入上面一行代码后再覆盖到hosts所在的目录)在其它选项菜单-&g

2023-09-18 00:24:11
PHP框架TP全称 tp5和yii2有什么区别
PHP框架TP全称 tp5和yii2有什么区别

tp5和yii2有什么区别tp5,全称是ThinkPHP。国产的一个非常优秀的框架。优点:拥有简单上手的特性(推荐学习:yii框架)拥有规范化的中文文档拥有大量的开发人员(市场学习人员多)全家桶式的服务缺点:框架的自动加载任务多,非轻量级tp5改动非常大,性能比tp3好,但不易于tp3升级相对ci、yii2等框架,自定义的程度稍低综合来说,非常适

2023-09-06 15:49:42
tp框架与php 原生php和thinkphp这些框架有什么区别?
tp框架与php 原生php和thinkphp这些框架有什么区别?

新手php框架要先学laravel好还是tp?对于新手来说是学习php框架最佳的选择是tpthinkphp,国内的PHP框架,具有简单,快速,兼容等优点,。从5.0版本开始,号称为API开发而设计的高性能框架。配置开发也是非常简单,一般下载框架就可以直接开发,开发代码风格也符合国人思想,所以简单,快捷,适合新手的php框架。Laravel框架,是当今最熟练,流行和广泛使用的开源

2023-09-10 19:22:16