yhbyun/snowman

Laravel 4 仓库模式生成器

V0.1.1 2014-05-21 09:59 UTC

This package is auto-updated.

Last update: 2024-09-12 19:19:36 UTC


README

Build Status

这个Laravel包提供了一系列生成器,以加速您的开发过程。这些生成器包括

  • snowman:baserepo
  • snowman:baserepointerface
  • snowman:model
  • snowman:presenter
  • snowman:repo
  • snowman:repointerface
  • snowman:reposerviceprovider
  • snowman:resource
  • snowman:scaffold

要求

  • PHP 5.4+
  • Laravel 4.2

安装

首先通过Composer安装此包。编辑您的项目 composer.json 文件以要求 yhbyun/snowman

"require-dev": {
	"yhbyun/snowman": "dev-master"
}

接下来,在终端更新Composer

composer update --dev

此操作完成后,最后一步是添加服务提供者。打开 app/config/app.php,并在提供者数组中添加一个新项。

'Yhbyun\Snowman\SnowmanServiceProvider'

就这样!您已经准备就绪。从终端运行 artisan 命令以查看新的 snowman 命令。

php artisan

用法

脚手架

snowman:scaffold 命令会为您做很多事情

  • 生成应用文件夹
  • 生成基础仓库
  • 生成基础仓库接口
  • 生成仓库服务提供者

示例

php artisan snowman:scaffold acme

此单个命令将为您提供以下脚手架代码

  • 应用文件夹

    • app/Acme
    • app/Acme/Presenters
    • app/Acme/Providers
    • app/Acme/Repos
    • app/Acme/Repos/Eloquent
  • app/Acme/Providers/RepoServiceProvider.php

  • app/Acme/Repos/BaseRepoInterface.php

  • app/Acme/Repos/Eloquent/BaseRepo.php

资源

snowman:resource 命令会为您做很多事情

  • 生成模型
  • 生成模型仓库
  • 生成模型仓库接口
  • 生成模型展示器
  • RepoServiceProvider.php 中添加绑定

示例

php artisan snowman:resource acme post

此单个命令将执行以下工作

  • app/Acme/Presenters/PostPresenter.php
  • app/Acme/Providers/RepoServiceProvider.php : 添加绑定
  • app/Acme/Repos/PostRepoInterface.php
  • app/Acme/Repos/Eloquent/PostRepo.php
  • app/Acme/Post.php

配置

您可能想修改模板 - 生成的文件的格式。为了允许这样做,您需要发布生成器在幕后会引用的模板。

php artisan snowman:publish-templates

这将把所有模板复制到您的 app/templates 目录。您可以按需修改这些模板。如果您希望使用不同的目录

php artisan snowman:publish-templates --path=app/foo/bar/templates

当您运行 snowman:publish-templates 命令时,它还会将配置发布到 app/config/packages/yhbyun/snowman/config/config.php。此文件看起来可能像这样

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Where the templates for the generators are stored...
    |--------------------------------------------------------------------------
    |
    */
    'model_template_path' => '/Users/yhbyun/my-project/app/templates/model.txt',
    'repo_template_path' => '/Users/yhbyun/my-project/app/templates/repo.txt',
    'repo_interface_template_path' => '/Users/yhbyun/my-project/app/templates/repo_interface.txt',
    'baserepo_template_path' => '/Users/yhbyun/my-project/app/templates/baserepo.txt',
    'baserepo_interface_template_path' => '/Users/yhbyun/my-project/app/templates/baserepo_interface.txt',
    'presenter_template_path' => '/Users/yhbyun/my-project/app/templates/presenter.txt',
    'reposerviceprovider_template_path' => '/Users/yhbyun/my-project/app/templates/reposerviceprovider.txt',


    /*
    |--------------------------------------------------------------------------
    | Where the generated files will be saved...
    |--------------------------------------------------------------------------
    |
    */

    'target_parant_path'	=> app_path(),
];

此外,当您在此文件中时,请注意,您还可以更新每个生成器的默认目标目录。

Laravel 4 生成器

此包基于 Jeffrey Way的生成器,这是一个在Laravel中不可或缺的包。