利用 Generators 快速构建 Laravel 应用

说明#

Laravel4 最吸引我的地方,就是其快速构建 App 的能力,其快速构架也得益于 Generators 这个 Package.

Generators 是一个代码生成器,允许你在执行一行命令的情况下快速生成代码文件,借鉴于 Ruby On Rails 的 rails generate 命令,见这里.

Jeffrey Way 的 Laravel-4-Generators , 很长一段时间在 http://packalyst.com/ 下载量排名第一,算是 Laravel 开发的时候最基本的 Package 了,见下图.

安装#

1. 编辑 composer.json 文件,加入 require package#

"require-dev": {
    "way/generators": "2.*"
}

2. 接下来,命令行下运行#

composer update --dev

3. 编辑 app/config/app.php 文件,加入 providers#

'Way\Generators\GeneratorsServiceProvider'

4. 这时候在命令行下运行#

php artisan

可以看到多了以下的命令

至此安装成功.

命令介绍#

  • generate:model --> 生成 model 文件;
  • generate:view --> 生成 view 文件,分别是 create, show, edit, delete ;
  • generate:controller --> 生成 restful controller;
  • generate:seed --> 数据库假数据填充文件;
  • generate:migration --> 数据库表结构描述文件;
  • generate:pivot --> 数据库关联表生成;
  • generate:resource --> 生成一堆文件,model + controller + view + seed + migration;
  • generate:scaffold --> 我最喜欢的命令,生成最多的代码,和 resource 类似的生成一堆文件,不同的是会在这些文件里面加入内容.

关于每个命令的使用,官方文档写的很清楚,这里就不继续讲了. 详细使用方法见这里.

generate:scaffold 脚手架一个应用#

这里演示下 generate:scaffold 能做的事情,以 phphubtopics 功能为例子:

php artisan generate:scaffold topic --fields="title:string, \
body:text, author:string, user_id:integer, node_id:integer,\
is_excellent:boolean, is_block:boolean, reply_count:integer, \
view_court:integer, favorite_count:integer, vote_count:integer"

执行上面命令得到下图:

下图是此次创建的文件列表:

咱们在看下 TopicsController.php 文件,基于 Restful Controller 的模版

代码已被折叠,点此展开

Generators 已经成为我每一个 Laravel 项目里面必备的 Package, 因为 ta 让我如此高效. :beer:

最后奉上 Jeff 的视频介绍 http://pan.baidu.com/s/1dD5XZHn


欢迎关注 LaravelTips, 这是一个专注于为 Laravel 开发者服务,致力于帮助开发者更好的掌握 Laravel 框架,提升开发效率的微信公众号.

摈弃世俗浮躁,追求技术精湛
本帖已被设为精华帖!
Summer
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。