承接 sham/load-parameters-laravel 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

sham/load-parameters-laravel

Composer 安装命令:

composer require sham/load-parameters-laravel

包简介

Carga los parámetros enviados por PUT, POST o GET; y los valida según las reglas asignadas.

README 文档

README

Carga los parámetros enviados por PUT, POST o GET; y los valida según las reglas asignadas en el proyecto.

Esta librería lo primero que hace es cargar los datos enviados a la url, después les asigna un nuevo nombre a cada variable (en caso se haya especificado) y finalmente se valida los datos con el Validador de Laravel. Si todo los datos son correctos, retorna los inputs enviados en un array, sino retornará los errores encontrados.

La librería maneja tres aspectos importantes:

  • Rules: que es un array de reglas que se usará para validar los campos, estan reglas también pueden ser las reglas personalizadas
  • Messages: Son los mensajes que se mostrarán en caso de error.
  • Params: Esta es una variable nueva para la librería, ya que con ella podemos especificar el nombre de una variable para ser enviada por POST GET o PUT, pero nosotros la utilizaremos con otro nombre, es decir, tenemos nuestro paramétro usuario enviado por POST, sin embargo en nuestra tabla o nuestra aplicación necesitamos que se llame user, es por eso que se usa esto, para cambiar de nombre a la variable, así el cliente cuando envíe los datos le saldrá un error con la variable usuario, pero nosotros la utilizaremos como user. Esto sería más usado en API REST ya que el nombre del dato enviado no siempre coincide con la varible que manejamos (en REST nombre_usuario en la aplicación nombreUsuario).

Instalación

La instalación actual es sólo por composer

composer require sham/load-parameters-laravel dev-master

Uso

Actualmente hay tres formas de uso de la librería:

Método 1:

La primera forma de utilizar la librería es usando una clase con los métodos necesarios (rules, messages, params) puede ser una clase Form Validator de Laravel

...
use Sham\LoadParameters\Load;

class MyController extends Controller {

	public function myMethod(Request $request)
	{
		$load = new Load(new App\Http\Requests\MyFormRequest());

		if(!$load->validate($request, 'post')){
			$load->setTypeError(Load::ERROR_ARRAY);
			var_dump($load->getErrors());
		}else{
			extract($load->getInputs());
			echo "welcome $user";
		}
	}
...

La clase MyFormRequest debe tener por lo menos el método rules(); params() y messages() son opcionales.

class MyFormRequest extends FormRequest {

	public function rules()
    {
    	return [
			'user' => 'required',
			'pass' => 'required|min:6',
    	];
    }
...

La forma de llamarlo sería:

curl -d "user=myuser" -d "pass=mipass"  "http://myurl.com/my-function"

y retornaría welcome myuser

Método 2:

La siguiente forma es añadiendo un array con las reglas, mensajes y parámetros a usar:

...
use Sham\LoadParameters\Load;

class MyController extends Controller {

	public function myMethod(Request $request)
	{
		$load = new Load();
		//obligatorio
		$load->setRules([
			'user' => 'required',
			'pass' => 'required|min:6',
		]);
		//opcional
		$load->setParams([
			//variable en tu proyecto => nombre de parametro de envio
			'user' => 'usuario',
			'pass' => 'contrasena',
		]);
        //opcional
		$load->setMessages([
			'user.required' => 'usuario es requerido', 
			'pass.required' => 'contrasena es requerido', 
			'pass.min' => 'Debe ingresar al menos 6 caracteres', 
		]);

		if(!$load->validate($request, 'post')){
			$load->setTypeError(Load::ERROR_ARRAY);
			var_dump($load->getErrors());
		}else{
			extract($load->getInputs());
			echo "welcome $user";
		}
	}
...

La forma de llamarlo sería:

curl -d "usuario=myuser" -d "contrasena=mipass"  "http://myurl.com/my-function"

y retornaría welcome myuser

Método 3:

Si son varios los métodos en tu proyecto y no quieres llenarte de más lineas en tu controlador, puedes usar una clase en la cual tengas todas las reglas de validación por método, para ello primero debes crear una clase en donde creas conveniente y extender de Sham\LoadParameters\MultiAttributes:

...
use Sham\LoadParameters\MultiAttributes;

class MyParameters extends MultiAttributes
{
    public function multiParams()
    {
    	return [
    		'myMethodFirst' => [
    			'user' => 'usuario',
    			'pass' => 'contrasena',
    		]
    	];
    }

    public function multiRules()
    {
    	return [
    		'myMethodFirst' => [
    			'user' => 'required',
    			'pass' => 'required|min:6',
    		],
    		'myMethodSecond' => [
    			'name' => 'required',
    		]
    	];
    }

    public function multiMessages()
    {
    	return [
    		'myMethodFirst' => [
    			'user.required' => 'usuario es requerido', 
				'pass.required' => 'contrasena es requerido', 
				'pass.min' => 'Debe ingresar al menos 6 caracteres', 
    		],
    		'myMethodSecond' => [
    			'name' => 'el nombre es required',
    		]
    	];
    }
...

Después en tu controlador:

use Sham\LoadParameters\Load;

class MyController extends Controller {

	public function myMethod1(Request $request)
	{
		$load = new Load(new \path\to\MyParameters());
		$load->loadMultiAttributes('myMethod1');

		if(!$load->validate($request, 'post')){
			$load->setTypeError(Load::ERROR_ARRAY);
			var_dump($load->getErrors());
		}else{
			extract($load->getInputs());
			echo "welcome $user";
		}
	}
	
	public function myMethod2(Request $request)
	{
		$load = new Load(new \path\to\MyParameters());
		$load->loadMultiAttributes(__FUNCTION__);

		if(!$load->validate($request, 'post')){
			$load->setTypeError(Load::ERROR_ARRAY);
			var_dump($load->getErrors());
		}else{
			extract($load->getInputs());
			echo $user;
		}
	}
...

La forma de llamarlo sería al metodo 1:

curl -d "usuario=myuser" -d "contrasena=mipass"  "http://myurl.com/my-function-1"

y al metodo 2:

curl -d "name=my name"  "http://myurl.com/my-function-2"

sham/load-parameters-laravel 适用场景与选型建议

sham/load-parameters-laravel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 24 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 02 月 23 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 sham/load-parameters-laravel 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-02-23