使用 Laravel 5.1 构建商业项目程序:简要介绍 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JobsLong
V2EX    PHP

使用 Laravel 5.1 构建商业项目程序:简要介绍

  •  
  •   JobsLong 2016-04-21 11:52:29 +08:00 3849 次点击
    这是一个创建于 3461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么使用 Laravel 5.1 ?

    长期支持

    Laravel 官网网站声明的 Support Policy

    强烈建议在 2018 年之前使用 Laravel 5.1 来构建项目, Laravel 5.1 是 LTS 的发行版本, 发行于 2015 年 6 月,自发布起提供两年时间的 Bug 修复( 2017 年 6 月), 3 年时间的安全修复( 2018 年 6 月)。

    LTS 版本是此项目能提供的最长时间维护版本。一般的发行版本, 只提供 6 个月的 Bug 修复支持, 一年的安全修复支持.

    这是非常重要的,你也不希望你今天开发的应用搭建与一个过时(特别是有安全隐患)的框架之上。

    所以,让我们来拥抱 Laravel 5.1 LTS 版本!

    新的变化

    Laravel 5 是框架最新的版本,相比 Laravel 4 做了很多的变化,但是大多数功能是后向兼容的,你可以根据 Upgrade Guide 进行平滑升级。

    但是 Laravel 的核心理念并没有太多变化(读一读官方文档中的系统架构部分),在 Laravel 5 中依旧有用,但是在实现方式上可能做了很多改变。

    如何在开发项目中快速应用一些新的变化,这篇文章,或者会是一个几篇的合集来展示 Laravel 项目的开发流程。

    示例程序

    示例是学习最好的方式,我们用一个最熟悉的示例,目前我正在敲字的这个程序 PHPhub 为例,当然我们不需要设计的过于复杂。

    我们可以尝试用 Laravel 5.1 来构建一个可以支持 Markdown 格式的博客系统,需要有评论以及后台管理的支持。

    <?php class Idea extends Eloquent { /** * 拥有海阔天空的想法? * * @with Laravel */ public function create() { // 让我们把它做出来 } 

    第一件重要的事: 搭建环境

    你需要有一台对你友好的计算机,我的意思是指你需要一个痛苦比较少的开发环境,无论是 Window 还是 MacOS , Linux 。

    假设你理解虚拟机的概念, Laravel 提供了一个集成了相关开发环境的 box :laravel/homestead,可以理解为一个配置好的虚拟机镜像。

    为什么要用 homestead ?

    Laravel 框架的开发哲学之一是让 PHP 开发有趣而且简单。为了达到这个目的, Laravel 打包好了一个开发环境给应用开发者( Thanks to Vagrant )。你可以在自己起机器上搭载一个虚拟机程序(比如 Virtualbox )来使用这个开发环境, homestead 如何安装和使用。

    所以有了它,你之后和工作伙伴协作的时候就不用再折腾开发环境了,一定要安利给同事。

    个人经验: Homestead & PHPStorm 同时运行的时候,如果再加上自动化编译前端的组件的时候, 4G 内存的机器还是有点吃不消,有时候卡到无法正常工作。

    不过我们还是要看一下,整个开发环境预装的一些 Software 列表:

    • Ubuntu 14.04 系统版本
    • Git 代码版本管理
    • PHP 7.0 Yo !!
    • HHVM 即时编译器
    • Nginx Web Server
    • MySQL 最熟悉不过的数据库
    • MariaDB 数据库,兼容 MySQL
    • Sqlite3 简单易用的数据库
    • Postgres `暂时没有用过的数据库
    • Composer 依赖包管理工具
    • Node (With PM2, Bower, Grunt, and Gulp) 前端构建工具
    • Redis 缓存管理
    • Memcached 缓存管理
    • Beanstalkd 分布式内存队列系统

    所以你可以开始按照英文或[中文的文档](查看这里的中文文档, 在之后的步骤里面我会默认你已经安装好开发环境)开始启动 homestead 的安装了,这是美好开始( Modern PHP )的第一步。如果你有更多兴趣,也可以了解一些这些预装的软件都是做什么的,多接触一些概念总是好的。

    当然在 window 配置环境可能需要多费一些周折,可以读读这篇教程:

    http://laravelcoding.com/blog/laravel-5-beauty-setting-up-a-windows-machine

    Summer: 是的, Laravel 的开发中,使用 Homestead 是必须的,不论你是一个人开发项目,还是团队开发,不管你是新手,还是老手,请使用 Homestead 。可参考 Homestead 的环境部署脚本来实现开发环境和生产环境的统一。

    创建新的项目

    Create Project

    使用浏览器访问应用:

    创建新项目的方式其实有很多, homestead 和 vagrant 工具也有许多可以深入讲解的地方,不过这些就留给大家自己去探索了,可以先看看每个工具的使用文档之类的,具体场景的时候在去搜搜别人是如何解决的。

    有什么细节问题,就在评论里面尖锐的指出来吧,一直觉得从评论中可以学习到更多东西 :)

    Next

    接下来就要开始敲代码了,下篇文章会写一下使用 TDD 的方式构建应用程序。

    声明一下:个人有个缺点,没办法把一件事做完整,所以大家对这个系列也不要抱有太多期待 :
    About Me: Jobslong.com


    广告

    个人经常使用的一个图床工具,有点扛不住流量费用了,各位土豪请随意捐赠一下,谢谢!

    捐赠地址: http://yotuku.cn/

    10 条回复    2016-07-24 19:05:39 +08:00
    WenJimmy
        1
    WenJimmy  
       2016-04-21 14:41:18 +08:00
    持续关注...
    audi
        2
    audi  
       2016-04-21 15:17:16 +08:00 via iPhone
    个人更喜欢 sf2-3
    jonnyRain
        3
    jonnyRain  
       2016-04-21 16:36:05 +08:00
    关注一下
    yhylord
        4
    yhylord  
       2016-04-21 22:23:59 +08:00
    运维小白,能问一下如果一直用非 LTS 版本来写会有什么问题吗?
    yhylord
        5
    yhylord  
       2016-04-21 22:24:28 +08:00
    另外就是 Homestead 为什么一个人在 Linux 环境下开发的时候也是必需的呢?
    Dannytmp
        6
    Dannytmp  
       2016-04-21 22:46:35 +08:00 via Android
    不喜 home stead,有那功夫弄它,还不如直接原生
    JobsLong
        7
    JobsLong  
    OP
       2016-04-23 14:07:11 +08:00
    @yhylord 我主要考虑的是框架层面的安全漏洞问题, LTS 版本修复更及时一点 :)
    JobsLong
        8
    JobsLong  
    OP
       2016-04-23 14:09:52 +08:00
    @Dannytmp 在自己电脑上面搭建环境难道不痛苦嘛?有时候开发需要你在不同的开发环境下进行开发,在本地安装多版本管理工具之类的东西也很不便。我觉得协作的时候,统一开发环境会让整个团队协作更好,不会出现因为开发环境不一致导致的问题,浪费无谓的时间
    JobsLong
        9
    JobsLong  
    OP
       2016-04-23 14:16:14 +08:00
    这边文章更细致的分析了一下:

    http://blog.teamtreehouse.com/using-laravel-homestead-development-environment

    其实 homestead 更容易部署,国内折腾花的比较多的时间,主要是因为不可知力量导致的网路不稳定会带来很多不爽的地方
    mingyun
        10
    mingyun  
       2016-07-24 19:05:39 +08:00
    小小赞助下 http://yotuku.cn/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2760 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 14:31 PVG 22:31 LAX 07:31 JFK 10:31
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86