定制 remoblaser/resourceful 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

remoblaser/resourceful

最新稳定版本:1.0.1

Composer 安装命令:

composer require remoblaser/resourceful

包简介

Create Migration, Seed, Request, Controller, Model and Views for your resource

README 文档

README

Build Status

Table of Contents

Laravel Resourceful

Resourceful let's you create a full Resource withing seconds! Create a Resource with all the CRUD methods on every layer. Use the artisan command and let it create a Migration, Seed, Request, Controller, Model and Views for your Resource! You're now able to exclude certain parts with --exclude. See the example!

NOTE!

This is a first draft, feel free to create pull requests. Might have a lot of bugs so be careful with the usage! Will continue working on it, tests are yet to come.

Usage

Install through composer

`composer require remoblaser/resourceful --dev``

Add Service Provider

You probably don't want this on your production server, so instead of adding it to the config/app.ch we add it in app/Providers/AppServiceProvider.php. here's a example: Since we're using Jeffrey Way's / Laracats's Generators, we also need to register his ServiceProvider. Here's a example:

public function register()
{
    if ($this->app->environment() == 'local') {
        $this->app->register('Remoblaser\Resourceful\ResourcefulServiceProvider');
        $this->app->register('Laracasts\Generators\GeneratorsServiceProvider');
    }
}

Run it!

Now you can use the command. I've extracted everything in single commands so you're able to use the make:resource:controller command if you would like to create only the Controllers the resourceful way. The make:resource:views command is seperate too, so feel free to use this one aswell. With the route:extend command, you're able to extend your routes.php file with a resource controller. The new command route:bind binds a route to your model. With the -b option, you can do this automatically when generating a resource. If you want to see all the options, use make:resource -h.

Example

I would like to have a News Resource. I want to have all the CRUD functionality for it. So instead of creating all the Stuff by hand, i can use php artisan make:resource news to generate all the necessary stuff or just use single parts:

$> php artisan make:resource news
Model created successfully.
Created Migration: 2015_04_17_083658_create_news_table
Seed created successfully.
Request created successfully.
Controller created successfully.
Views created successfully.
Routes successfully extended.

With the --exclude option you're able to exclude the Controller, Migration, Seed, Model and/or Views. If you would like to generate everything except for the Views and the Seed, you can just use --exclude=views,seed.

You're able to submit a --commands option and choose which Actions/Commands you would like to have, commands need to be seperated with a ",". The following commands are available: create, store, show, index, edit, update, destroy

Generated Controller

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\News;
use App\Http\Requests\NewsRequest;

use Illuminate\Http\Request;

class NewsController extends Controller {

	/**
	 * Display a listing of the resource.
	 *
	 * @return Response
	 */
	public function index()
	{
	    $news = News::all();
		return view('news.index', compact('news'));
	}

	/**
	 * Show the form for creating a new resource.
	 *
	 * @return Response
	 */
	public function create()
	{
		return view('news.create');
	}

	/**
	 * Store a newly created resource in storage.
	 *
	 * @param  NewsRequest $request
	 * @return Response
	 */
	public function store(NewsRequest $request)
	{
		News::create($request->all());

		return redirect('/news');
	}

	/**
	 * Display the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		$news = News::find($id);

		return view('news.show', compact('news'));
	}

	/**
	 * Show the form for editing the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		$news = News::find($id);

        return view('news.edit', compact('news'));
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @param  NewsRequest $request
	 * @return Response
	 */
	public function update(NewsRequest $request ,$id)
	{
        $news = News::find($id);
        $news->update($request->all());

        return redirect('/news');
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		$news = News::find($id);
		$news->destroy();

		return redirect('/news');
	}

}

Generated Views

Make sure to include Illuminate/HTML, since the Views are built with it.

create.blade.php

@extends('app')

@section('content')
    {!! Form::open(['route' => 'news.store'], 'method' => 'post']) !!}
        @include('news.partials.form', ['buttonText' => 'Create news'])
    {!! Form::close() !!}

    {{-- @include('errors.validation') --}}
@stop

edit.blade.php

@extends('app')

@section('content')
    {!! Form::open(['route' => ['news.update', $news->id]], 'method' => 'post']) !!}
        @include('news.partials.form', ['buttonText' => 'Update news'])
    {!! Form::close() !!}

    {{-- @include('errors.validation') --}}
@stop

index.blade.php

@extends('app')

@section('content')
    @foreach($newss as $news)
        {!! var_dump($news)) !!}
    @endforeach
@stop

show.blade.php

@extends('app')

@section('content')
    {!! var_dump($news) !!}
@stop

Info

If you like my work, i would appreciate it if you would spread it! Thank you! You can contact me through Twitter

remoblaser/resourceful 适用场景与选型建议

remoblaser/resourceful 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 287 次下载、GitHub Stars 达 62, 最近一次更新时间为 2015 年 04 月 17 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「generator」 「laravel」 「resource」 「artisan」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 remoblaser/resourceful 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 remoblaser/resourceful 我们能提供哪些服务?
定制开发 / 二次开发

基于 remoblaser/resourceful 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 287
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 63
  • 点击次数: 22
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 62
  • Watchers: 6
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-04-17