定制 s1dd/magus 二次开发

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

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

s1dd/magus

最新稳定版本:v1.0.0-beta

Composer 安装命令:

composer require s1dd/magus

包简介

Import data (with CSV/JSON parsing built-in) into any Laravel Model

README 文档

README

Import CSV and JSON data into Laravel models, with the use of mutators to manipulate data before data is stored in the database.

Installation

Add s1dd/magus to the repositories section of your composer.json.

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/s1dd/magus"
    }
  ]
}

...and as a dependency

{
  ...
  "require": {
    "laravel/framework": "4.2.*",
    "s1dd/magus": "dev-master"
  },
  ...
}

Add the Service Provider to your app/config/app.php:

'providers' => [
  ...
  'S1dd\Magus\MagusServiceProvider',
  ...
];

...and as an alias so that it can be used as a Facade:

'aliases' => [
  ...
  'Magus' => 'S1dd\Magus\MagusFacade',
  ...
];

Configuration

If you would like to add mutators to Magus, publish the configuration, and supply an array whose values are Closures.

$ php artisan config:publish s1dd/magus

The configuration files are at:

app/config/packages/s1dd/magus/config.php
app/config/packages/s1dd/magus/fieldmaps.php

Usage

The only prerequisite is that the configuration must be published, and the model to populate must already exist.

If we wanted to populate a Client model, which contains a name, fname, and lname, and we had a CSV string that houses this data in a different format, i.e.:

First Name,Last Name\rSidd,Sridharan

We would first need to parse the string into an associative array, and then import this array into the database:

$dataString = "First Name,Last Name\rSidd,Sridharan";
$data = Magus::parseString($dataString);

Magus::import('client', $data);

First, Magus checks the user-supplied fieldmaps.php in order to map CSV columns to their respective database columns. Then, Magus resolves the first parameter from the IoC container so it can be used as if it was a model. It then invokes the create method to insert it into the database after the input has been "mutated."

Fieldmaps

As described earlier, fieldmaps.php is simply a mapping from CSV column names to database column names. An example:

return [
  'map' => [
    'Client' => [
      'Name' => 'name',
      'First Name' => 'fname',
      'Last Name' => 'lname'
    ]
  ]
];

Mutators

Mutators are a powerful part of Magus that allow for data manipulation prior to saving. In order to declare a Mutator, open up config.php, and add a key for the model which will be updated. Then, for each field that needs to be manipulated, declare a sub-key that points to a closure. To provide a clearer picture:

return [

  'Client' => [

    'First Name' => function($value) {
      return strtoupper($value);
    },

    'Last Name' => function($value) {
      return strtolower($value);
    },
  ]

]

License

This project is licensed under the MIT license.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-01-22

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固