初学Laravel框架与ThinkPHP框架的不同
作为一个PHP菜鸟初学Laravel框架 在学习过程中我发现了其与TP框架的不同点,由于时间问题和认识还不够完善我先写出其中几点,有错误的地方希望各位大牛斧正...
1.渲染模版方式的不同:在Laravel框架里,使用return view()来渲染模版;而ThinkPHP里则使用了$this->display()的方式渲染模版;
2.在实际开发中我们常常遇到这样的问题,就是开发地点不固定,这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦,TP依然没有避免这个"灾难";在laravel框架中,.env环境文件的出现解决了这个麻烦,我们只需要在不同的工作地点配置好.env文件就不避再进行配置,因为无论是git还是svn " .env是不会随着文件一起提交到服务器的";
3.Laravel框架提供了大量的闭包,作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量
4.post传值中注意点不同:在Laravel框架里,由于其考虑到了跨站攻击, 所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误;而TP框架则需要自己手动完成防止跨站攻击的代码;
5.条件判断语句书写方式的差异:Laravel框架里 if else判断语句和foreach语句 书写时必须以@if开头 以@endif结尾,如果没有则报语法错误,@foreach @endforeach同理;而TP框架则和PHP语法规则使用方式一致直接ifesle语句判断和foreach循环遍历
6.Laravel里内置了大量的方法供开发者使用,在实际应用中更接近于"让对象完成一切"的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法,例如对用户名的验证:我们使用可以validate方法里'username'=>'required'(不能为空)|alpha_dash(必须数字字母下划线)|between:6,18(在多少位数之间);还内置了例如email;same:字段名;diff:字段名等大量的方法极大的提高了开发速度;
代码有待完善 只是实验用
7.加密方式
在TP框架中 我们对用户名密码进行加密时使用md5();的方式进行加密,但md5的缺点在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能出现相同的,这就降低其安全性;但在Laravel框架中内置了"哈希"Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会出现相同的情况 这就提高了安全性
在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架... 我想说,我已经在逐步的感受到他的恐怖之处...
8.建表--Laravel在数据库建表上有自己独立内置的结构,可以完全不用借助原生SQL语句或者SQLyogEnt、Navicat 这样的建表工具,进行数据库的建立,增删改查,和数据交互;我想这可能是它牢牢占据NO.1的一大靓点;在ThinkPHP中则需要我们借助SQL语句或者建表工具去逐步完善数据
8.1.首先我们需要建立模型:我用的是gitbash,gitbash是Windows下的命令工具,基于msys GNU环境,有git分布式版本控制工具,主要应用于git.但是在Laravel里也可以直接使用 php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)
8.2.向goods数据表填充数据,要注意数据的类型是严格区分的,并且一定要加..编程之友:注释君;添加完后使用php artisan migrate命令完成表的创建;可以自行YY下 多表同时创建的那种"还有谁"的感觉;
Schema::create('goods', function (Blueprint $table) {
$table->increments('id')->comment('商品主键');
$table->string('title')->comment('商品的标题');
8.3.假设某个字段不符合要求或者需要添加字段怎么办,无须担心,从github中pull下项目后在数据表里直接修改 只需要用php artisan migrate:refresh
,然后今天的工作结束后push到github库里,其他小伙伴在更新后就可以直接使用新的数据表结构,而且还可以看到更改记录...这是开发者的一大福音~~
9.ORM---在介绍建表时已经使用了创建模型的命令,php artisan make:model XXX;Laravel里模型是对面向对象开发思想最好的诠释,让对象帮我们完成需求;
摘自5.1手册:(Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查找数据表内的数据,以及将记录添加到数据表中。)
本人在实际使用中也实实在在的感受到了通过创造模型对数据表操作带来的便利,譬如批量赋值,跨表查询,删除模型和软删除,模型关联,当然这些在TP框架中也可以利用模型实现,这一点属于仁者见仁智者见智;根据个人喜好而定
10:session的用法
10.1.ThinkPHP对Session操作进行了封装,并且无需引入就可以使用,Session的启动会在应用初始化的时候自动执行,所以无需手动使用Session::start() 来启动Session。
使用Session类操作和普通方式调用$_SESSION来操作并没有本质不同,只是Session类很多参数可以根据项目配置来灵活设置,最常用的操作方法示例: // 检测Session变量是否存在:Session::is_set('name'); // 给Session变量赋值:Session::set('name','value');// 获取Session变量:Session::get('name');
10.2.Laravel中Session的常用方法有
$request->session()->get('key');//获取session里的某个键名
$request->session()->set('key','default');//设定一个默认值,当指定键名不存在便返回默认值
$request->session()->all()返回所有数据
session('k'=>$v)写入session保存数据;
以及闪存数据session()->flash();和保留特定数据->keep(['','']);
也可以自定义session驱动
转自:麦先生 博客地址:http://www.cnblogs.com/maixiansheng
转载于:https://www.cnblogs.com/yyjie/p/7806168.html
初学Laravel框架与ThinkPHP框架的不同相关推荐
- php框架语法,PHP框架之ThinkPHP框架
原标题:PHP框架之ThinkPHP框架 小编张老师企鹅:1079943010 ThinkPHP框架人们习惯性又叫它TP框架,是一个轻量级的国产PHP开发框架,快速.兼容而且简单, ThinkPHP可 ...
- Laravel框架与ThinkPHP框架的区别
TP框架: ThinkPHP简单.快速,基于MVC和面向对象,易用性较高,是一款简洁实用的轻量级框架. Laravel框架: Lavavel一直秉承着优雅的原则,很好的支持了composer(tp6. ...
- php tp框架选择题,thinkPHP框架单元测试库tpunit用法示例
本文实例讲述了thinkPHP框架单元测试库tpunit用法.分享给大家供大家参考,具体如下: thinkphp本身并没有提供相应的单元测试支持,所以这里介绍一个可以对tp进行单元测试的库tpunit ...
- php框架利弊,ThinkPHP框架的优缺点是什么
ThinkPHP框架的优缺点是什么 时间:2019-08-26 16:55:53 来源: 作者: Thinkphp的宗旨是简化开发.提高效率.易于扩展,其在对数据库的支持方面已经包括MySQL.M ...
- think php框架案例,ThinkPHP框架设计及扩展详解
ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一些简单的开发示例中来深入了解一下这个框架给我们带来的开发便捷性,以及游刃有余的扩展设计.同时也从源码分析的角度看看框架的一些不足,尽 ...
- tp框架中引入php文件,Laravel框架及ThinkPHP框架超级简单的公共文件引入(保留变量)...
为什么要把两个框架放在一起来说呢?额...因为TP5.1.x与Laravel实在是太像了,本文主要讲述关于大家顶部及底部文件引入的问题. 但是如果顶部和尾部只是单纯的html代码还好说,但是里面通常有 ...
- 测试php框架漏洞,ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法...
作者: seay 下面是摘自thinkphp官方的一个公告,官方直接贴出这些东西是非常不负责的行为,跟上次apache公开的Struts2的代码执行一样的行为,会造成很多用户被黑.建议类似的厂商不要再 ...
- Thinkphp框架初始及安装部署
一.框架概述 1.什么是框架 框架就是一些代码类.方法(函数).变量.常量的集合,这些代码是功能结构性的代码(并非业务代码).业务代码其实就是具体的一些模块的增删改查逻辑代码. 使用框架开发项目,有便 ...
- 教学资源管理软件PHP,应用ThinkPHP框架的教学资源科研管理平台设计研究
谢业斌 摘 要:ThinkPHP属于一种计算机领域的开发解决方案,具有一定的系统整体性,可实现应用开发过程中的各种功能优化与应用.在职业教育专业体系中,主要应用ThinkPHP框架设计搭建教学资源科研 ...
- laravel yii thinkphp 框架对比_thinkPHP--项目
TP简介-我的认识 0.1什么是框架 框架就是一些代码类.方法(函数).变量.常量的集合,这些代码是功能结构性的代码(并非业务代码).业务代码其实就是具体的一些模块的增删改查逻辑代码. 使用框架开发项 ...
最新文章
- 语言运行泰博那契数列_波浪理论的数字基础-斐波那契数列
- 回头看看的时候openeim001
- JAVA对象的值与引用
- 文字排版不可不看的优秀案例合集
- Python+pandas使用重采样技术按时间段查看员工业绩
- [Unity] 在协程中等待指定的毫秒
- Ad hoc queries(即席查询)
- 【CGAL_网格处理】平滑处理
- 新年贺卡php,PS设计2016猴年大吉新年贺卡
- 一文搞懂vim复制粘贴
- 笔记:torch的基本运算
- 谷歌人工智能深度解剖:从HAL的太空漫游到AlphaGo,AI的春天来了
- VS2019配置WinRT
- 质量与效能 | 11月29日TF84
- Python提取PDF文档页面——PyMuPDF使用
- Java 关于中文乱码问题的解决方案与经验【转载】
- 联通NFV规划路线图:数据中心为核心 实现网元虚拟化
- 美国孩子上学真像你以为的那么轻松吗?
- 初次使用github
- 格局是什么意思「简单易懂」
热门文章
- 信息图表是如何炼成的(三):阶层结构与isometric
- 洛谷P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold
- 大型运输行业实战_day07_2_数据字典实现
- 利用SQL Server 2008 R2创建自动备份计划
- js中定义变量加var与不加var的区别?
- 【C语言】字符串与整型数值之间的转换
- 【整理】不安装VS的Web服务器部署
- Tomcat 部署多个项目出现错误
- 使用docker实现半自动化代码自动部署与回滚
- “vmware tools 只能虚拟机中安装”的解决方法