V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JobsLong
V2EX  ›  PHP

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

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

    为什么使用 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   ·   实用小工具   ·   1062 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:20 · PVG 06:20 · LAX 14:20 · JFK 17:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.