PHP文章精选
文章平均质量分 90
程序员小助手
渐进式编程:最一线的项目实战,最硬核的技术博客。
展开
-
3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月
引言鉴于上一章标题引起一些开发同学的巨大兴趣,本文我们接着此种行文方式继续我们的“Laravel宇宙”系列文章。我们在前一些章节,相继使用迁移创建了数据库结构,使用seeder为数据库填充了假数据,现在我们要对数据进行操作了。哪些操作?增删改查!本文先不说模型,说说直接的查询构造器,说说怎么把数据筛选出来,这用的应该是最多的了。代码时间说起柔顺,你想起来什么?是撸代码,没错,就是它。大家看看下面这个代码写法柔顺不柔顺:$users = DB::select(['table' => '原创 2020-10-30 18:01:50 · 283 阅读 · 0 评论 -
3分钟短文:看傻眼!Laravel给数据库造假竟成工具链
引言上一章我们了解了使用laravel迁移功能创建数据库表,把DBA的工作挪到开发端,这样把岗位都省出来了。但是只有光秃秃的数据库表,有个壳子没有数据确实没啥用。本文为大家讲讲laravel怎么给数据库造假数据,堂而皇之地假装生产。本文使用的构建方式都是写脏数据,乱数据,无实质意义的数据,只对应用程序和数据库有用,别的嘛用没有!代码时间就好比说种地要有种子,有了种子就可以长出庄稼和粮食;子子孙孙无穷尽也。数据库也一样,数据库表就好比是地,种地我们得有种子,才能在命令行这样使用:php art原创 2020-10-29 21:00:22 · 923 阅读 · 1 评论 -
3分钟短文:一看就是干货!Laravel迁移数据库!
引言书接上回。我们讲完了路由,又顺带讲了中间件;接着又讲了控制器,还把路由的数据发到控制器,并且渲染到视图页面。更深入的是,把视图文件的模板也说明白了。MVC - CVM - VMC,到底缺了哪一个呢?M!M = Model,是模型层,是与数据库直接对接的那一层设计。我们都知道一切应用的基础,是数据库。数据库也是IT工业的珠穆朗玛峰,看当今天下,多少大中小微企业,哪个不是被数据库卡着脖子。所以美国要是哪天让Oracle,Microsoft等公司限制出口数据库产品,我们国内的数据库能不能顶上,还未可知原创 2020-10-28 20:41:47 · 259 阅读 · 0 评论 -
3分钟短文:胆儿真肥!Laravel在命令行问用户要数据!
引言上一章我教会大家如何在3分钟的时间,通过laravel跻身geek之列(听一下就好[捂嘴.jpg])。实现了一个简单的命令行,和一个复杂的发送邮件通知的功能。可是细心的读者你发现了没有,使用自定义的命令行,全程我们没有输入一个参数,没有一个数据,这,这,这,太不寻常了吧!linux下的命令,没有一个是不带参数自己玩儿的!所以本文教你改造命令行,做一个标准的应用程序。事前询问首先我们要区分获取参数的两种方式,一种是在输入命令行时直接给定的,还有一种是在程序运行过程中,等待用户输入信息之后才能继原创 2020-10-27 22:25:27 · 151 阅读 · 0 评论 -
3分钟短文:Laravel写个命令行,你就是下一个Geek!
引言习惯了在windows下敲敲点点的同学,习惯了没有窗口视图就无从下手的同学,来到linux第一个面临的问题就是,core发行版根本不提供gui,太费空间,太费资源,要啥窗口?所以电影里看到很多懂的,不懂的,懂的装不懂的,不懂的装懂的那么演员们,都在奋力敲击键盘,一串串荧幕输出像火箭似的飞速狂奔。这大概只有拷贝文件,或者debug时才能有的盛举吧。没错儿,在linux下,你是PC小白也好,是行业大神也罢,都得敲那么两下子,这叫——“专业”。本文给那些想写个命令行程序,体验一把geek范的同学一次原创 2020-10-26 21:11:08 · 194 阅读 · 0 评论 -
3分钟短文:Laravel表单验证的“指挥中心”:FormRequest
引言上一章我们学习到,Laravel控制器内引入 ValidatesRequests trait,从而使得继承了基类控制器的类拥有了验证器的所有方法。但是无论在控制器内进行验证,还是前置到路由器内验证,都会加重这些区域的代码重量,特别是对于复杂的验证逻辑,甚至使得控制器或者路由功能不那么纯粹。那么有没有什么好的设计方法,把数据验证独立出来,统一管理,重复利用,不要写那么多臃肿的代码呢?这就是本文我们重点要介绍的 FormRequest 表单请求类。代码时间声明一个表单请求类,使用命令行脚手架可以原创 2020-10-25 19:57:58 · 466 阅读 · 1 评论 -
3分钟短文:Laravel的“南天门”,过滤掉七七八八的数据
引言上一章我们教会大家如何从用户表单内正确地获取数据,可是没有讲,获取到的数据到底有啥用,或者说,有的用户提交的数据压根儿就没正经填,那些错乱无效的数据,如果直接放到数据库,纯粹是对数据库的污染。所以本文就来说说应用程序最重要的一环,验证数据。代码时间获取数据的途径除了早前介绍的在路由地址内通过位置参数绑定的方式,还有上一章介绍的表单提交的方式,还有一些比如在get请求内附加查询参数进行传送的,不管形式是什么,我们需要将其统一口径,将其规划为规范的数据格式,然后只用把数据发给验证器。如果你对原创 2020-10-24 21:09:23 · 267 阅读 · 0 评论 -
3分钟短文:Laravel应用跟用户打交道,就从拿到他们的数据开始!
引言本来讲完路由和控制器,应该接着讲一讲视图的,但是鉴于视图的功能实在太枯燥,况且是前端页面,免不了写一些js和css。而laravel是偏重后端的,所以为了给后端的开发同学缓冲的时间,我们跳过视图,先来说说用户数据的获取和处理,这几乎是任何应用必备之功能。用户数据同时又是危险的!本文不会教你规避危险!代码时间我们在讲路由规划的时候,说了如何使用url的位置参数绑定的方式进行导向,其实那也是一种获取用户输入数据的方式,只不过,传入的位置参数一般都人畜无害,公开访问,任你来来往往。如果是单个用户原创 2020-10-23 20:35:07 · 225 阅读 · 0 评论 -
3分钟短文:Laravel路由加模型等于?
引言上一章我们用3分钟时间光速入门了laravel控制的用法,本章不准备说控制器了,说一说另外俩模块,就是路由Route和模型Model,这俩直接加起来,会有什么奇思妙想的发生呢?请大家接着往下看。代码时间还是最早我们讲的那种方式,在路由地址上通过位置参数绑定,我们可以获取到用户输入的数据。只不过,为了与模型文件对应起来,可以直接在路由处理方法的闭包内调用模型方法,并组装数据返回。比如传入id数值,返回查询后的结果:Route::get('conferences/{id}', function原创 2020-10-22 21:31:09 · 173 阅读 · 0 评论 -
3分钟短文:Laravel控制器用法光速入门
引言上一章我们介绍了laravel路由注册中的“花拳绣腿”,样样都是那么优雅而实用。路由传递过来的参数,在经过中间件验证和导向之后,应该去控制器接受处理了。本文用最简单的示例,让你明白laravel中控制器是干什么的,以及怎么用。代码时间在开始介绍之前,我们先看一下MVC设计模式的一个概要图:Model就是模型,是数据库交互部分;View就是视图,是渲染数据的页面。我们本期介绍的就是中间的连接部分—— controller 控制器。首先使用命令行脚手架创建一个控制器文件:php artis原创 2020-10-21 22:14:37 · 260 阅读 · 0 评论 -
3分钟短文:Laravel路子真野啊!路由昵称前缀中间件
引言上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据,本文我们继续深入Route功能,学习一些提升生产力的方法,在现实场景中也非常实用。“昵称”如果你的应用程序路由条目可以达到300到500条,光是管理这些路由地址不重复,或者是浏览某些部分的路由,都将是一件非常考验脑力的事儿。有没有想过,能不能给路由起个名字,方便记忆,不用想着路由定义的多复杂,咱们直接用别名访问?laravel为我们考虑到了,比如路由这样写:Route::get('membe原创 2020-10-20 21:43:30 · 429 阅读 · 1 评论 -
# 3分钟短文:Laravel路由注册,你必须掌握的“动词”!
引言无论是web页面还是API接口,我们都绕不开的是路由地址,网络资源定位也只能依赖于路由地址,它是衔接网络请求与应用程序的桥梁。本期为大家说一说用laravel注册路由的那些必知必会的方法。代码时间遵循编程惯例,首先实现一个 hello world 的示例。在路由文件 routes/web.php 内注册一个get请求的路径:// routes/web.phpRoute::get('/', function () { return 'Hello, World!';});web服务器配原创 2020-10-19 21:27:15 · 217 阅读 · 0 评论 -
3分钟短文:太爽了,用Laravel写API接口!
引言我们一直在讲,通过路由传达到控制器,处理好数据并渲染到视图,但是对于现代的应用,前后端分离的情况下,后端写个接口就完事儿了。本期为大家说一说用laravel写restful风格的API,看看能有多简单。以路由开端写API接口,与传统的渲染前端模板页面有什么区别?少了视图,只需要准备好数据,并按照规则格式化,返回就可以了。laravel默认的api接口路由在 routes/api.php 文件内定义,默认的情况下预定义了一个资源类型的api接口,代码如下:Route::middlewar原创 2020-10-18 22:07:50 · 1188 阅读 · 0 评论 -
3分钟短文:任命管理员,给Laravel普通用户提权
引言系统内使用User表记录用户的属性,各自维护用户自身的关联数据。有一些前端页面也会需要分别根据身份展示不同级别的内容。本期为大家说一说给普通用户提权为 管理员。数据准备我们希望在users表内指定用户的身份,比如任命为管理员,则可以展示更多的数据资源。我们在users表内追加一个字段 is_admin 用于标记用户的管理员身份,使用命令创建迁移文件:php artisan make:migration add_is_admin_to_user_table --table=users首原创 2020-10-17 23:19:13 · 147 阅读 · 0 评论 -
3分钟短文:为了你少跳坑,Laravel写好了用户授权
引言为了留存用户,我们会想尽办法获取用户的注册,并将其留在应用内。laravel开发好了一部分用户注册和登陆的代码,如果图省事不要二次开发的,拿来用就可以了。而如果要深度定制用户权限的开发者,也非常有必要了解用户和授权相关的内容。本期为大家说一说用户注册和登陆的功能。users数据表用户的数据和信息必然在数据库内,所以laravel自带了User模型,在 app/User.php 文件内,内部代码声明了必要的部分:namespace App;use Illuminate\Notifica原创 2020-10-16 20:48:22 · 429 阅读 · 2 评论 -
3分钟短文:Laravel是怎么发出一封电子邮件的?
引言上一章我们为发电子邮件准备了贴心的表单,完善的数据验证,那么本篇我们讲解如何在laravel内发送一封电子邮件。电子邮件非常方便,大家切勿滥用。代码时间laravel集成了热门且功能强大的SwiftMailer库,为我们封装了发送邮件所需要的底层逻辑,所以我们只需关注发送的逻辑,如何准备电子邮件的内容即可。laravel配置文件 config/mail.php 内默认的 smtp 参数:'smtp' => [ 'transport' => 'smtp', 'h原创 2020-10-15 23:16:58 · 256 阅读 · 0 评论 -
3分钟短文:用Laravel发一封“漂洋过海”的电子邮件
引言电子邮件从其诞生以来就大大地提升了人们的效率,传统的绿色的邮箱那种送信方式,已经被传输在光缆上的一束束通讯信息取代。电子邮件同时带来了垃圾信息的侵扰,随着国内社交类APP的普及,电子邮箱渐渐地趋于专业化。本期先不讲如何发邮件,我们先准备一个表单,把邮件需要的数据准备好。创建Form表单首先使用命令行创建一个restful风格的控制器:php artisan make:controller ContactController接着在 routes/web.php 路由文件内注册资源类路由原创 2020-10-14 18:03:22 · 357 阅读 · 1 评论 -
3分钟短文:说说Laravel模型中还算常用的2个“关系”
引言上一章我们介绍了比较简单的laravel模型关联关系中的一对一,介绍了关联操作方法。太难的概念理解起来都费劲,更不用说写代码了,所以对于太难的那些关联关系,且不论其效率如何,我们都不先做介绍。本期说一说2个比较常用的关联模型。belongsTo 关系正好像对于一个词语,找到对应的反义词,或者说有一个图片,找到其镜像图片这样的。有作用力,就有反作用力。一对一关系模型中,A有一个B,则反过来,B属于一个A。这就是首先要介绍的 belongsTo 关系。在模型Profile中添加对应到Us原创 2020-10-13 16:46:23 · 308 阅读 · 0 评论 -
3分钟短文:说说Laravel模型关联关系最单纯的“一对一”
引言关系型数据库提供了非常好用的数据关联绑定模式,使用SQL语句可以方便地进行关联数据查询和操作。如果所有关联关系放到数据库层面操作,势必非常不便。所以,laravel模型提供了关联关系,本文就来梳理梳理那些用法。代码时间我们不要PPT似的念稿子,罗列出所有的关系模型,那样不直观也不是高效学习的方式。还是从示例触发,看看关联关系到底解决的是什么问题,以及如何使用。首先是数据库的准备,假设有如下两个表的字段对应关系:使用命令行创建一个Profile模型,并同时创建迁移文件:php art原创 2020-10-12 10:32:11 · 332 阅读 · 0 评论 -
3分钟短文:Laravel把数据验证的手伸向“请求体”
引言上一章讲述了表单数据验证,从前端页面接收用户的输入信息,通过POST方法提交数据到相应路由地址,并使用Request请求体的validate方法,默认传入**request()->input()**的参数,并调用传入的验证规则,从而实现数据的初步筛选。把数据验证,验证规则,和控制器的逻辑处理代码混合在一起,是不是有点怪怪的?我们说,一个中间层只做一件事情,这样才能松耦合,提高鲁棒性。所以有了这篇文章,教你把数据验证提炼出来。代码时间laravel在请求相关的业务逻辑上设计的很灵活,原创 2020-10-11 22:39:37 · 173 阅读 · 0 评论 -
3分钟短文:十年窖藏,Laravel告诉你表单验证的“正确姿势”
引言上一章我讲到了使用FormBuilder让后端开发者快速构建前端表单页面,而为了示例,直接在store方法内把表单数据一股脑存到了数据库。这!很!危!险!本文教你正确地验证用户表单提交的数据,那就是十余年坚定好用的Laravel验证器。往期回顾开始之初,我把上一节代码再贴出来,看一看原始的模样:public function store(Request $request){ $event = Event::create([$request->input()]);原创 2020-10-10 11:26:57 · 173 阅读 · 0 评论 -
3分钟短文:Laravel Form,让你不再写 HTML 的好“库”
引言作为后端工程师的你,是不是面对一堆JS,CSS感觉无比抓狂。如果能摆脱大量的冗余的HTML代码块,那该多好啊。laravel作为扩展性极强的框架,自然是为广大后端开发者赋能。本文我们讲一个简单且常用的表单类 Form。代码时间还记得我们之前文章提到的,laravel快速注册restful api方式路由方法的方式吗?Route::resource('events', 'EventsController');在那个章节,我们并没有手动实现路由对应的控制器方法,仅仅搭建了简单的代码框架。原创 2020-10-09 10:40:55 · 175 阅读 · 0 评论 -
3分钟短文:Laravel说要用软删除,可不要真删
引言我们不止一次在系列文章中讲到模型的“软删除”功能,因为现实场景中为了保证数据可追溯,我们几乎不会对数据库进行物理删除。删除数据有可能会造成数据一致性的破坏,进而导致业务逻辑无法跑通。所以,软删除的概念,极为重要。本文我们仍然不厌其烦地讲解软删除的功能。物理删除其实就是真实地把数据从数据库条目清除,laravel模型提供了开箱即用的方法。比如下面这样使用:$event = Event::find(12);$event->delete();首先使用primary key查询出需要的条原创 2020-10-08 21:44:02 · 533 阅读 · 0 评论 -
3分钟短文:Laravel模型创建数据条目的2个语法糖
引言经过之前章节对于路由,控制器等知识做了很多的储备,接着我们开始与数据库交互,摆脱繁复且难以维护的SQL操作,laravel提供了MVC的M模型功能。本期我们开始讲模型中,如何插入新条目,或者更新既有条目。代码时间我们在构建一个hello world页面的时候,已经介绍了如何使用laravel的命令行脚手架创建新的模型文件,以及通过迁移功能创建数据库表。这样就把数据操作衔接起来了。一般地,使用面向对象的方式创建一条新的数据,可以这样来写:$event = new Event;$event-原创 2020-10-07 22:08:11 · 242 阅读 · 1 评论 -
3分钟短文:Laravel slug,让你的url地址更“好记”
引言网络资源访问,路由是多么重要不消多言了。而友好的url地址更是能让人一目了然,增加用户的好感。同时对于爬虫也是好的示例,搜索引擎可以友好地展开工作了。本文就来讲讲,如何在laravel中构造友好的url路由。啥是slug?在早期的互联网时代,为了在页面之间传递数据,复杂的交互一般都会使用cookie等本地缓存,但是浏览器版本的约束,使得服务器端交互仍然需要即时访问。所以各种各样的url地址,带参数跳转的,表单提交的,混为一谈,制作出符合统一规范的路由很不容易。比如下面的路由,访问一个地址,并原创 2020-10-05 22:30:02 · 463 阅读 · 1 评论 -
3分钟短文:Laravel模型作用域,为你“节省”更多代码
引言原则上代码写一次,处处是引用,不需要大量的冗余代码,这是一种趋势,也是提高代码健壮性的努力方向。laravel模型为我们提供了一层数据库操作层,将数据交互独立出来。但是久而久之,随着项目的需求不断扩大,最常用的查询操作,同样会有大量的冗余代码。本文就来讲讲,连模型的自我瘦身,缩减模型的代码。全局作用域假设有些数据库查询操作,无论是在控制器内,或者在模板文件内,或者命令行方法内,都有重复的使用需求,要是在模型内有一个公用的方法,默认就加上这些筛选条件,就可以显著减少代码量了。比如有一个查询原创 2020-10-04 15:11:16 · 169 阅读 · 0 评论 -
3分钟短文:无私分享!Laravel模型使用2个小技巧
引言上一节我们详细讲解了模型的访问器功能,可以轻易扩展模型的属性访问,灵活又标准地增强了模型的读取数据的能力。本文我们接着往下讲,说说模型的修改器,以及模型的职责。修改器有没有这样一种用法:使用表单获取一个字段的输入,使用加密算法,或者摘要方式对字段处理后存入数据库,这在数据库密码字段是常用的处理手段。如果写操作在程序内到处都是,零散地分布在业务代码的各个地方,我们总不至于每次都要写一次相同的代码吧?相同的业务逻辑,提取出来,抽象出来,只写一次,这才是高效代码的王道。laravel这个注重原创 2020-10-03 23:32:05 · 135 阅读 · 0 评论 -
3分钟短文:Laravel模型读数据的那个“障眼法”
引言通过前几篇文章视图和路由的介绍,我们通过模型对象操作数据库表。laravel模型的精巧设计使得我们操作数据层逻辑更加得心应手。本文我们来说说模型在读写数据中所使用的技巧。日期时间格式化先从最常用的地方着手,比如在迁移文件内使用的 timestamps方法,就是在表内生成 created_at和updated_at两个 datetime 类型的字段,用于标记该记录的创建时间和更新时间。laravel框架继承了广泛使用稳定可靠的 Carbon 类库用于操作日期时间。为了测试方便,我们不需要写额外原创 2020-10-02 21:53:20 · 501 阅读 · 0 评论 -
3分钟短文:有面子!Laravel教你简单写出专业的RestfulAPI
引言在我们连接了数据库,并且使用迁移功能创建了数据库表结构,使用Seeder为数据库初步填充了一些伪数据。有了这些准备工作,我们可以考虑做一个资源接口功能,对外提供数据支持了。代码时间有没有感觉自己设计的API接口和数据跟别的大厂提供的文档数据结构不太一样,看上去不是那么专业,或者说不是那么标准?我们和大厂还差几个年级?laravel提供了简单的标准方式,可以让我们遵循最佳实践写出专业的url。比如对于资源,使用restful风格声明一下的url路由地址:第一列是http请求方法,第二原创 2020-10-01 10:16:02 · 348 阅读 · 0 评论 -
3分钟短文:造假!Laravel为数据库填充伪数据
引言在数据库创建之初,并没有什么数据,开发人员手动填充的数据,要等到很久才能有完整的一致性数据。如果能填充一些伪数据,那会是不错的体验。本文就来说说使用假数据填充数据库。代码时间为数据库填充数据,首先在命令行运行以下指令:php artisan db:seed没有输出,看上去像是什么都没有发生。其实是有的,我们在目录 database/seeds/DatabaseSeeder.php 可以看到新创建的文件。文件内容如下图:什么代码都没有,只是继承了 Seeder 类,并实现了 run原创 2020-09-30 20:53:45 · 188 阅读 · 0 评论 -
3分钟短文:书接上回,Laravel数据库迁移的那些个小技巧
引言使用laravel的数据库迁移功能进行表的创建,和迁移回滚之后,我们继续说说在设计中表结构的更改之后的处理。以及如何为数据库填充一些伪数据作为测试。数据约束上一章说到数据库迁移回滚,可以手动控制回滚到哪一批次的迁移位置。比如我们创建的 events 表,如果在迁移文件内添加字段,代码如下:我们在数据库表中间的位置添加了一个 venue 字段。然后使用迁移指令php artisan migrate就可以应用这些改变了。很多时候,并不是说我们创建了表,并且指定了字段名,和字段数据类型原创 2020-09-29 09:59:53 · 180 阅读 · 0 评论 -
3分钟短文:素未谋面,Laravel数据库模型初阶入门
引言没有模型的框架是没有灵活的!每个框架都会针对数据库进行深度设计,以便快捷地进行SQL的增删改查,把重复的劳动抽象出来,提高应用开发效率。本期就来讲讲laravel的模型初阶用法。代码时间模型是在代码中抽象一层,把数据库操作提取出来。laravel支持常用的数据库产品,我们以MySQL为例。首先在配置文件内,配置参数对数据库连接。在配置文件 config/database.php 内,默认的配置如下:包括数据库连接名,数据库地址,端口,用户名和密码,数据库名等等信息,就完成了初始化配置原创 2020-09-28 11:40:12 · 249 阅读 · 0 评论 -
3分钟短文:Laravel模板重用,构造你的页面布局
引言编写代码的时候,我们总是追求写的最少,做的最多。能重用的就要重用,避免后期更改一处修改,处处修改的困境。而对于模板文件内的HTML内容,也完全可以如此构造。本期就来说说模板的页面布局。单区块布局很显然,我们不想每写一个页面,都要把logo,导航栏,尾部声明都重新写一遍,那样页面多了起来之后,改一次头部文件,或者更换logo,或者修改网站的声明,都要把所有页面重新修改一次。维护起来简直是灾难!所以laravel blade模板提供了 layout 布局。在目录 resources/vi原创 2020-09-27 07:06:15 · 381 阅读 · 0 评论 -
3分钟短文:Laravel模板,也支持一般编程语言的语法结构了
引言从控制器内组装好的数据渲染到视图文件,上一章我们演示了简单的单变量数值访问。laravel的模板系统,还提供了很多常用的编程语言的语法结构,其实是PHP的变体,可以让编程人员更好地掌控HTML输出。本期就来说说模板内的程序结构的高阶用法。转义 or 不转义首先是单变量的值,我们在控制器内有可能并没有为该变量赋值,或者并未声明和传递该变量,在模板内直接引用,会抛出 变量未定义 的异常,造成无法渲染。laravel给了一个简洁的判空的方式,就是 or 语法,很直观,代码用起来如下:Wel原创 2020-09-26 10:09:26 · 267 阅读 · 0 评论 -
3分钟短文:可能是Laravel模板最直白的用法了,没有之一
引言上一期我们通过分配路由地址,在url中接收位置参数并传递给控制器方法,并且在控制器内简单地打印输出接收的参数。本期我们尝试着使用laravel的模板功能,把控制器内组装好的数据渲染到视图模板文件,并做展示。代码时间我们把目光还暂时放在控制器的方法内,接着前一章的 EventsController@show 方法。接收到路由传递的 $id 变量后,我们将其附加到视图渲染函数,并发送到模板文件。代码是这样的:public function show($id){ return v原创 2020-09-25 09:53:48 · 301 阅读 · 0 评论 -
3分钟短文:说说Laravel页面会话,Session数据保持的巧妙用法
3分钟短文:说说Laravel页面会话之间的数据保存Session用法引言代码时间使用技巧写在最后引言我们知HTTP请求是没有状态的,两个请求之间没有直接的关联关系。但大多数情况下,我们需要保持用户的会话间数据的连续性,这时,为了数据安全起见,有必要在服务器上临时存储一些上下文数据了。这就是 session 设计的目的。代码时间在laravel中可以使用系统提供的Session类方便地操作会话数据,而且其存储介质也是抽象出来的,可以无缝衔接,只是驱动更换一下罢了。框架内Session支持原创 2020-09-19 11:17:41 · 307 阅读 · 0 评论 -
3分钟短文:说说Laravel通用缓存Cache的使用技巧
引言前一期我们介绍了存储用户会话数据到服务器,并通过框架提供的Session类进行数据读写操作的方法。但是有些数据,如数据库集合,API接口等等,对于全局的用户来说是无差别的,这时候我们需要全局缓存以便提供给所有的用户使用。本期就来说说Cache缓存。代码时间laravel在设计上做了很巧妙的构思,将缓存相关的类,设计得有插接件的感觉。所以,你看到Session Cache Cookie 这些缓存数据类,基本上除了底层的驱动,数据结构,过期特性等等,都集成了系统数组类Arr的操作方法。所原创 2020-09-20 09:04:15 · 850 阅读 · 0 评论 -
3分钟短文:使用Laravel为静态页面加点“料”
引言上一期我们使用laravel提供的开箱即用的路由,控制器,以及模板功能,简单地实现了路由到控制器到模板的分发。不过那都是静态的网页,我们还没有通过接收用户输入,动态地返回不同的数据页。本期我们为静态页面加点“料”。代码时间动态数据需要接收用户输入,不同的输入值,经过程序处理,给出不同的相应页面,或者数据。所以第一步就是从构造动态化的路由开始。假设我们构造的主路由在 events 下,想要查看编号42的那个事件,路由这样传入:http://example.dev/events/42原创 2020-09-24 09:43:03 · 176 阅读 · 0 评论 -
3分钟短文:使用Laravel实现一个最简单的web静态页面
引言使用laravel实现一个最简单的动态页面,牵涉到laravel的路由注册方式,控制器书写方式,以及blade静态模板的使用。虽然功能很小,却是一个精简版的hello world。下面开始我们的编程之旅。创建laravel应用首先我们通过命令行安装laravel应用。为了方便创建,先全局安装 laravel installer,在命令行中运行下面的指令:composer global require laravel/installer安装成功后,laravel 二进制文件就会注册到环原创 2020-09-23 09:37:32 · 750 阅读 · 0 评论 -
3分钟短文:刀刃向内,Laravel缓存测试简单入门
引言程序员很难发现自己写的bug,这是一条难破的槛。所以要写测试,要让自己的程序给别人测试,思路不同,实现方法不同,才能发现业务逻辑中的不合理和bug。laravel集成了PHPunit测试框架可方便书写测试用例。本文就来个抛砖引玉式的简介。代码时间laravel应用安装完毕之后,在 vendor/bin/ 目录内已经内置了 phpunit 文件,在windows平台下,使用 phpunit.bat 文件。打开命令行工具,进入到laravel工作根目录,运行命令:./vendor/bin/原创 2020-09-22 17:49:28 · 185 阅读 · 0 评论