美文网首页laravel@IT·互联网
Laravel学习分享(1) :入门篇

Laravel学习分享(1) :入门篇

作者: 江江江江江江大东 | 来源:发表于2016-08-15 18:57 被阅读1981次

前言

笔者是从今年开始接触Laravel框架的,在阅读了Lavarel的开发文档后,自己也写了一些小样例,同时也参与了基于Lavarel的项目开发。在对Laravel了解熟悉的过程中,渐渐无法自拔的迷恋上这个框架,他的某些设计和实现着实惹人喜爱。

在此推荐还不了解此框架的php爱好者可以去Laravel官网学习下,下面我将分享一点自己学习的心得和启发,希望可以和感兴趣的朋友多交流学习。

Lavarel样例分享

本篇虽然是Laravel的入门介绍,但此处并不会详细介绍Laravel中的概念。因为这些概念在官方文档上都有十分详细的说明,个人建议感兴趣的朋友可以一边阅读文档,一边调试样例程序。这里分享个git上的基于laravel5.1 版本的项目样例,朋友们可以clone到本地,参照文档搭建Lavarel的开发环境,然后就可以基于文档和样例学习调试Lavarel框架啦。

个人心得和启发

下面将和大家分享我接触Laravel框架后的心得,希望可以给这方面经验不足的朋友一点帮助和启发,也希望大神看到后可以指出分享中的不足之处,共同学习和进步。

  • 首先不得不提的是Lavarel服务容器的实现,它是一个管理类依赖和执行依赖注入的强大工具。最近依赖注入和控制反转的概念持续火热,感兴趣的朋友可以看下这篇来自segmentfault社区的文章:PHP程序员如何理解IoC/DI,以及其他相关文章。其主要思想就是将被调用类的依赖注入到调用类中,Lavarel通过构造方法或set方法实现注入,我们可以动态的绑定接口到实现。依赖注入突出的优点在于降低了代码的耦合,我们不用自己手动去new一个被调用的类,容器将在我们需要的时候将它初始化。

关于容器以及依赖注入我这里不再给出代码样例说明,推荐的地址有更详细的解释。但是这的确是很进步的思想,相较于使用时就new一个类的传统实现而言,这个想法是很创新的。推荐大家去了解和熟悉这样的思想以及探索Lavarel对它的应用。虽然传统的方法也没有什么致命的问题,但是当你熟悉以及习惯这样的实现后,自然会发现它的美妙之处。

  • Laravel中的Eloquent ORM对于数据库的操作也十分迷人。Lavarel中提供了与数据表交互的模型,替代基于完整sql的操作。简单定义模型后(确定表名,主键以及此表是否需要打上时间戳),就可以方便的实现对表的操作。下面我们看两个基于这些查询构造器的查询样例:

    $flights = App\Flight::where('active', 1)
                   ->orderBy('name', 'desc')
                   ->take(10)
                   ->get();
    

    这个语句表明需要查询表中active值为1的数据(在参数'active',1之间可以添加'>','<'等操作符,默认为=),根据name字段倒序排序,获取前10条数据。当我们在熟悉了这样的使用后很可能会爱上这样的操作,它不仅将我们的查询需求展示的非常清晰,而且也非常便于修改。这里设计的关键词也非常贴心,比如where,很容易对应到我们sql中的where查询,orderBy对应order by,take(10)表示我们获取10条数据,这样的关键词对应可以加快我们对它的掌握。

    对于更新的操作也是一目了然:

    App\Flight::where('active', 1)
       ->where('destination', 'San Diego')
       ->update(['delayed' => 1]);
    

    当然,这样的操作也不是完美的,肯定也是存在使用这种方式比较繁琐的sql操作。Laravel中自然也提供了基于完整sql的查询方式,如:

    $users = DB::select('select * from users where active = ?', [1]);
    

    有一点想提醒大家注意下,Laravel中查询数据库返回的每一个数据项是实例而不是数组,可以通过toArray(),转化为数组继续操作。

  • Lavarel提供了强大的Monolog日志库,支持debug、info、notice、warning、error等多种日志级别(用RFC 5424标准)。在开发中记录错误日志是非常非常必要的,此前我们开发个别项目的时候不够重视日志,只在重要的地方设置监控点投递redis,但是这基本无法满足我们的调试和排错需求。有些线上问题无法快速定位到问题所在,甚至需要回滚代码,代价比较严重。

    我们使用Laravel的时候,体会到它强大的日志功能,以及详细的日志带来的好处:可以快速定位到问题产生的位置并且在90%情况下直接找到发生问题的原因。所以希望大家在开发的过程中一定要养成记录日志的习惯。其中在开发阶段可以设置日志模式为debug,详细的调试。在线上则可以设置为error,记录错误日志的同时也避免产生过多的日志记录造成日志服务器的压力。

  • Laravel框架也是典型的mvc模式,相信大部分人对这个模式都很熟悉。这里我想分享一个小细节,就是在Laravel中,我们可以让控制器负责交互数据,model用于配置数据交互模型,单独再抽离一个层用于业务逻辑处理,这样可以使业务流程和逻辑更加清晰。

写在最后

本次主要分享的是Lavarel使用过程中的一些心得。在这里真心希望感兴趣的朋友可以熟悉下这个框架,一起交流学习。我会继续整理和分享关于Lavarel以及其他方面的学习心得,希望可以和大家一起进步。

相关文章

  • Laravel学习分享(1) :入门篇

    前言 笔者是从今年开始接触Laravel框架的,在阅读了Lavarel的开发文档后,自己也写了一些小样例,同时也参...

  • laravel学习-1

    1. 安装composer 看这里 https://laravel.com/docs/5.2#installing...

  • 数据分析入门篇

    昨天学习了数据分析课程,算是小白的入门篇,所以做了初步整理,作为自己学习的输出,也分享给有需求的朋友们。 1、数据...

  • Laravel基础学习1

    作为新手,第一次接触到Laravel框架,感觉到Laravel的简洁与强大! 作为Laravel入门学习之路,查看...

  • Laravel学习笔记(1)

    先从环境搭建开始,ide采用phpstorm,操作系统 max os 项目初始化 命令行中 zhuanxu@zhu...

  • laravel学习笔记1

    建立项目:composer create-project laravel/laravel xcblog compo...

  • 2018-09-06-Laravel学习

    Laravel学习图谱Laravel 社区 微服务指南

  • 一天入门Python(Keras)深度学习情感挖掘

    1)入门篇:达观数据干货分享丨情感分析架构演进https://www.csdn.net/article/a/201...

  • 单片机小白学步(1) 单片机的前世今生

    从本文开始进入单片机入门篇的学习。入门篇主要介绍各种单片机基础知识概念。 入门篇阅读建议:根据个人已经掌握的知识,...

  • laravel文件目录树

    正在学习laravel框架,整理了下laravel的文件目录树,希望对同样正在学习laravel的童鞋产生一些帮助。

网友评论

本文标题:Laravel学习分享(1) :入门篇

本文链接:https://www.haomeiwen.com/subject/ermusttx.html