首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yii2 VS thinkphp5.0

之前也有使用过tp3.2的框架,但是每次问及各个框架之前的区别的时候,总是不觉得有什么区别。但是从目前对tp5一周的使用时间来看,tp5相对于yii2来说,确实是弱爆了。...2、Yii2架构组织明确,同一类的对象必定有一个父类,父类中定义相同的方法。TP中,同一类对象没有什么继承关系,有的完全没有任何关系,内部提供的一些方法也不同。...Yii2中,new model(),然后调用save()方法,这个model就是一个完整的数据表记录,数据表的多有字段映射成为对象属性。TP中的save()方法是把记录写入数据库。然后就没了。...create_time 在数据库中设置自动获取当前时间戳。...难道TP要让人家插入一条数据库查询一次去获取数据吗? 时间差不多,后续接着更新。欢迎大家关注。

2.1K20

yii2实战之初见端倪PHP框架大PK安装yii2项目初始化配置服务小结

PHP框架大PK php框架有很多种,国内应用较多的有:Thinkphp, Yii, Laravel, Codeigniter等。关于这些框架,孰优孰劣,是一个极具争议性的话题。...诚如黑格尔所说:“存在即合理”,流行的PHP框架必然有其存在的市场基础,要么是简单易学,撸起袖子直接开干,学习成本低,公司易招人;要么是高效强大,代码优雅,安全健壮,但学习门槛高,公司招人成本大。...查看yii版本 项目建立后的第一件事,就是将项目推送到远程git仓库,相信我,使用git是你写任何代码之前最明智的选择。由于github的速度较慢,建议用国内的gitee作为个人代码仓库。...以下是我的项目仓库链接, 关于yii2的实战系列教程代码都会提交到此项目,欢迎star 配置服务 yii2有两套模板,一个是基本模板,一个是高级模板。...小结 本小节讲了如何安装配置yii2。下节将讲解yii2的控制器和视图是如何交互数据的。敬请关注...

1.1K50
您找到你想要的搜索结果了吗?
是的
没有找到

Yii2框架中一些折磨人的坑

动手写之前,总是带着深深的罪恶感。被它折磨许久,终于,还是,动手了。 值得庆祝的一件事:最近开始健身了。每天动感单车45分钟,游泳45分钟,真的是(生)爽(不)到(如)爆(死)。...阶段已经返回false,不会进行数据库存储的步骤,所以也不会抛出异常。...$e- getTraceAsString(),__METHOD__); $transaction- rollBack(); } 问题总结 这段代码的问题在于: 大家知道$transaction的存在意义是保证整段数据库存储代码要么全成功...分析问题 上面这段代码涉及到了数据库的操作,而我们知道,数据库的很多地方都能引起内存泄漏。 所以先屏蔽数据库相关操作, 我手写了一个原生的数据库查询操作, 发现内存正常,没有问题。...这个时候我们不妨换个思路, 既然是yii2框架下出现的泄漏, 那肯定就是yii2独有的功能, 那什么功能是yii2独有的,又是new 对象的时候就会执行的呢?

4.2K41

yii2开发中19条推荐实践

// config/web.php 'language'=>'zh-CN' 静态缓存问题 在用yii2的时候,我们习惯将静态文件(图片、css文件、js文件等)放到资源类中管理,但是可能存在浏览器缓存问题...// config/web.php 'assetManager'=>[ 'appendTimestamp' => true ], 配置DB 虽然yii2数据库,尤其是对mysql是很友好的,但是我们还是应该使用稳定高一点的版本...,别说你的程序将来没有移动端,早早的选择一个支持emoji的数据库会避免我们下载第三方库去解决报错问题。...使用迁移脚本 我说过了很多次,本篇还是要说一次,对于一个yii2程序的数据库部分请用migration来管理。 并且这些脚本应该一起放到到你的版本控制里,记住,迁移脚本一般包含两个部分。...另外在做迁移脚本的时候,如果你的表有前缀,那么脚本里的写法如下 {{%user}}// discuz_user 时间问题 使用yii2开发mysql类web应用的时候,数据表的时间类字段我们喜欢用时间戳

3.3K70

聊聊Yii2和ThinkPHP5的文件缓存

Yii2和ThinkPHP5缓存操作提供的公共方法对比 Yii2缓存提供的方法 get 获取缓存 set 设置缓存数据 exists 判断缓存是否存在 mset multiSet 方法别名,批量设置缓存...tag 缓存分组加标签 has 判断缓存是否存在 Yii2 和ThinkPHP5 缓存操作对比 读写操作 ThinkPHP5 读写缓存文件都是通过file_get_contents和file_put_contents...因此极端情况下,有可能会出现读取文件头不对尾的情况。如果遇到多个请求同时写缓存,会涉及到并发问题。Yii2读取缓存加共享锁LOCK_SH,写缓存加排它锁LOCK_EX保证读写数据完整。...Yii2缓存过期方式通过修改文件的更改时间记录过期时间。ThinkPHP5 则是缓存文件中插入过期时间数据,根据文件最后修改时间以及过期时间确定缓存是否过期。...PHP会缓存对文件状态信息的检查结果。如果在一个脚本中多次检查同一个文件,只最初会读取信息,其他都是从缓存中获取。

1.3K20

MySQL里,有个和in一样的东东叫做exists,但是它比in更牛叉,你会么? 转

什么是exists exists表示存在,它常常和子查询配合使用,例如下面的SQL语句 SELECT * FROM `user` WHERE exists (SELECT * FROM `order...` WHERE user.id = order.user_id) exists用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。...for($i = 0;$i < $users.length;$i++){ for($j = 0;$j < $orders.length;$j++){ // 此过程为内存操作,不涉及数据库查询...:user表有10000条记录,order表有100条记录,那么exists()还是执行10000次,还不如使用in()遍历10000*100次,因为in()是在内存里遍历,而exists()需要查询数据库...,我们都知道查询数据库所消耗的性能更高,而内存比较很快.

74810

那些优秀的网络爬虫工具介绍,最后亮了!| 码云周刊第 16 期

语言 5、软件的复杂性: 命名的艺术 技术分享 1、SpringMVC 执行流程及源码解析 SpringMVC中主要是围绕着DispatcherServlet来设计,可以把它当做指挥中心。...2、使用 Vue2 和 Yii2 进行前后端分离开发 本文介绍使用Vue2单页面程序作为前台,以Yii2搭建后台提供API,进行前后端分离开发的入门知识。本文适合Vue2,Yii2爱好者观看。...3、 SSM (十一) 基于 dubbo 的分布式架构 现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的SSM项目来让第一次接触的同学能快速上手...它能够收集指定的Web页面并从这些页面中提取有用的数据。 Spiderman主要是运用了像XPath,正则表达式等这些技术来实数据抽取。...该项目旨在研究Scrapy Spider框架和MongoDB数据库,不能用于商业或其他个人意图。:)

2.3K100

从Laravel,Yii,Thinkphp中学习php 操作数据库的事务嵌套

最近维护历史代码,使用的是phalapi 最初版本开发,数据库操作使用的是notorm。...嵌套事务的核心思想就是添加一个计数器,第一次开启事务,最后一次提交或回滚执行数据库操作,其他情况只是更新计数器数值。...2) Yii2 Yii2的事务操作也是有一个单独文件进行封装,yii\db\Transaction。 ? ?...操作流程大体分一下三步 1) 开启事务,检查计数器是否是第一次开启,如果是则执行pdo开启事务,不是则修改计数器的值,同时根据是否支持部分事务,执行pdo savepoint操作。...2) 事务提交,检查计数器是否是最外层事务,是则执行pdo事务提交操作,否则计数器减1 3) 事务回滚,检查计算器是否是最外层操作,是则执行pdo事务回滚,否则计数器减1,同时根据是否支持部分事务,执行

1.3K40

yii2使用Migrations为整个数据库表创建迁移

大家都知道Migrations是一个开发和维护数据库驱动的应用过程中,数据库的结构与源代码的开发同步更新。...因为数据库结构改变后需要源代码随之而改变,Yii支持此类数据库迁移特征,这样你就可以用数据库迁移的形式追踪数据库的变化,也就是与源代码同步的版本控制。...类型,createIndex方法代码:/vendor/yiisoft/yii2/db/Migration.php 468行) 数据表有用到外键的朋友,代码你们可能要自己手写一小段了,作者项目中未遇到外键所以代码没写...主键的解决了,还差一个新增索引的,新增索引方法为 $this->createIndex('name', 'tableName', 'Column_name'),这个方法允许存在多个,那么我们就先判断数组是否存在且个数是否大于...,然后我们打开命令执行:yii migrate,这个时候有多少个迁移文件会告诉你,还会问你是否执行,我们输入y 确定执行,这个时候就开始往数据库导入表了,如有报错可发截图并询问我或者百度。

1.8K31

composer系列之五

轻松发布一个自己的composer扩展 我们一直使用别人发布的扩展,是否想过自己发布一个? 今天就来聊聊如何发布一个composer扩展及其注意事项。...就是我们之前讲的composer.json中的name,具体name的约定我想你已经通过之前的学习了解了吧 如果你不知道拿什么作为供应商的名称, 那么使用你 github 上的用户名通常是不错的选择。...{ "name": "abei2017/yii2-emoji", "description": "一个yii2的emoji扩展", "type": "yii2-extension...", "keywords": ["yii2","extension"], "license": "MIT", "authors": [ {...和 emojione/emojione 的正确部署,见require 自动加载采用psr-4,命名空间和扩展的src下文件一一映射 提交到github 然后github上建立一个空的仓库,记住仓库git

82761

详解yii2实现分库分表的方案与思路

前言 大家可以从任何一个gii生成model类开始代码上溯,会发现:yii2的model层基于ActiveRecord实现DAO访问数据库的能力。...1)1库1表:yii2默认采用PDO连接mysql,框架默认会配置一个叫做db的component作为唯一的mysql连接对象,其中dsn分配了数据库地址,数据库名称,配置如下: ?...上述实现决定了只能连接了1台数据库服务器,选择了其中1个database,那么具体访问哪个表,是通过Model里覆写tableName这个static方法实现的,ActiveRecord会基于覆写的tableName...model之前主动调用来标记分表的下标,并且重载tableName来为model层拼接生成本次操作的表名。...,给予不同的component id以便区分,它们连接了不同的mysql实例,其中dsn里的dbname只要存在即可(防止PDO执行use database时候不存在报错),真实的库名是通过tableName

1.7K30

Yii2的MVC新特性

废话就不多说了,下面来看看分别M-V-C这三个部分: 模型(Model): Yii之中的Models都继承与yii\base\Model,通常是用来存储数据并对这些数据设置一些特定的验证规则(rules...多个attributes的分配也有一些细微的变化,我们之前Yii1.1的时候,经常会这样: if (isset($_POST['userModel'])) { $model->attributes =...$_POST['userModel']; } 而在Yii2中,你只需要这样: $model->load($_POST); 这里的关键就是load()函数会自动检查在model->formName()....没错,Yii2中已充分开始使用PHP命名空间,当初Yii1.1的时候一直听说Yii2会使用更高级的PHP特性来完全重写,果然啊,点个赞。...写在最后 正如你在这篇文章看到的一样,Yii2中几乎所有的MVC组件变化都使得Yii2更好用了,我相信这会带给开发者更好的的开发体验,毕竟Yii2 中看到了一丝丝优雅的样子!

2.7K20

YII2框架中查询生成器Query()的使用方法示例

本文实例讲述了YII2框架中查询生成器Query()的使用方法。分享给大家供大家参考,具体如下: YII2中的yii\db\Query给我们提供了非常丰富的方法,方便我们构建复杂的SQL语句。...Query()与createCommand最大区别在于,后者直接使用我们写好的SQL语句,前者通过参数和数据库类型生成不同SQL,迁移性更好。 <?...//Query是根据参数和数据库类型生成不同的SQL,提升数据库可迁移性。...查询单条记录 $data3 = (new Query())- select(['id', 'name']) - from('{{%user}}') - where('id=3') - one(); //判断记录是否存在...》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

1.2K50

这周撸了两款小程序,总结下经验。

登录判断上,我们先进行小程序是否含有access_token来判断,当然即便存在,还需要对checkSession进行一次判断。...prepay_id后才能下发模板消息,似乎很受限制,但是我们可以建立一个formId的种子表,将尽可能多的用户和后台的行为都采用form表单提交的形式,并且获取formID,对,要变态的多,这样你的formId表数据起来了...服务器端 接下来总结下服务器端,我使用yii2的restful组件作为接口支持,关于restful的基本功能请参考yii2官方文档或我之前录制的课程《Yii2的RESTful讲解》,在这里分享我认为关键的点...让yii2能解析json的请求内容 默认情况下yii2并不能识别请求中的json格式,而我们小程序发起请求时喜欢用它,因此我们要对yii2进行一下配置。...yii2的restful中的用户认证使用了行为机制,我们来看下流程代码 // 需要授权的控制器内 class CardController extends ActiveController {

1.4K50

盘点7款顶级 PHP Web 框架

Laravel的优势:易于学习;无缝数据迁移; PHP 社区中很受欢迎;MVC 架构支持;大量培训材料(文档、图像和视频教程);模板引擎;简单的单元测试等。...2、Yii2 Yii2是一个基于组件的高性能 PHP 框架,基本能提供PHP 框架中的所有特性,因其安全功能而受到网站开发人员的欢迎,并且具有极好的可扩展性,当程序员需要确保可扩展性并开发高效、易于维护的...Yii2 的优势:AJAX 支持;处理错误的有效工具;自定义默认设置;简单的第三方组件集成;强大的社区支持等。...Zend的优势:实时在线调试;PHP 单元测试工具;连接数据库向导;加密编码工具;具有前端技术支持的拖放编辑器;MVC 组件;卓越的前端技术支持工具;简单的云 API;支持第三方组件;数据加密等。...CodeIgniter 的优势:MVC 架构;Top-Notch 错误处理;提供卓越的性能;包中提供了几种工具;内置安全工具;优秀的文档等。

4.6K00

一个程序员对架构的认识

最近订阅了一些架构方面的资料,阅读后获益匪浅,想着整理一些自己的体会与思考,形成架构方面的读书笔记,一来与大家交流,二来通过文字的形式检查自己到底收获多少!...系统、框架、架构三者之前是一个什么样的关系?下面让我们结合实际的例子一起来探究下。 架构的含义 小石最近加入了一家生鲜电商公司。...与大家一起讨论后,大家认为现在阶段的首要目标是快速做出系统来,因此大家决定采用PHP来开发,并决定使用 Yii2 框架,数据库方面使用 MySQL,WebService使用Nginx。...关键词: 框架 ,为了快速完成系统的开发,我们会采用一些已被业内实践确认的规范来进行,比如这里采用 YII2 框架,也就是采用了业内的 MVC 规范。...我们把所有的功能写在一份代码里,所有的数据存在一个库里,所有的代码部署同一个Nginx上,甚至还可能我们的Nginx、MySQL都部署同一台机器上。

27130

win7系统下安装yii2步奏

之前liunx上安装过yii2,感觉很简单,今天windows上折腾了一下,发现缺少各种扩展,费了不少功夫才解决,现在把过程和注意细节记录下来,以备以后安装时查看。... Windows 中,你首先需要下载并运行 Composer-Setup.exe 安装过程需选择php的运行目录,安装完后windows的cmd下运行composer看看是否安装成功。...composer global require "fxp/composer-asset-plugin:1.2.0 按照之前的步奏再来一遍,执行完这个命令,执行安装命令,经过耐心等待,尼玛,问题依旧,继续查找最终解决方案是...完成到此已经基本安装完成,下面步骤是初始化 先进入你的安装的项目目录 找到init脚本 1、执行init脚本 2、选择0开发环境,1生成环境 3、是否确定:yes 安装完后通过访问:/apidoc/frontend...配置数据库 common\config下的main-local.php文件,改成自己的 然后,可以导入一个yii2自带的一个user表,执行成功后,会自动在你的库里面创建user表和migration

66320

YII2框架中日志的配置与使用方法实例分析

本文实例讲述了YII2框架中日志的配置与使用方法。分享给大家供大家参考,具体如下: YII2中给我们提供了非常方便的日志组件,只需要简单配置一下就可以使用。...3 : 0, 'targets' = [ [ //日志处理器类,这里我改用数据库存日志了 'class' = 'yii\log\DbTarget', //日志记录的级别...,看是否日志记录了。...设置flushInterval和exportInterval的作用是什么,因为一些系统中日志的操作会很频繁,如果频繁的读取文件或数据库来写日志,会造成严重的IO消耗,降低系统性能,这也是YII2的一个优化吧...》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

1.5K10
领券