Skip to content

Commit

Permalink
Merge pull request #29 from intraordinaire/feature/phpspreadsheet
Browse files Browse the repository at this point in the history
Update laravel-excel dependency in order to be php 7+ compliant
  • Loading branch information
mfrancois authored Feb 4, 2019
2 parents 49d50b4 + 7118337 commit c2310db
Show file tree
Hide file tree
Showing 20 changed files with 217 additions and 297 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"distilleries/form-builder": "2.12.*",
"distilleries/permission-util": "1.9.*",
"forxer/Gravatar": "~1.2",
"maatwebsite/excel": "2.1.*"
"maatwebsite/excel": "3.1.*"
},
"require-dev": {
"orchestra/database": "3.7.*",
Expand Down
6 changes: 0 additions & 6 deletions src/Distilleries/Expendable/Contracts/CsvExporterContract.php

This file was deleted.

6 changes: 0 additions & 6 deletions src/Distilleries/Expendable/Contracts/CsvImporterContract.php

This file was deleted.

This file was deleted.

7 changes: 7 additions & 0 deletions src/Distilleries/Expendable/Contracts/ExportContract.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php
namespace Distilleries\Expendable\Contracts;

interface ExportContract {

public function export($fileName);
}
7 changes: 7 additions & 0 deletions src/Distilleries/Expendable/Contracts/ImportContract.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php
namespace Distilleries\Expendable\Contracts;

interface ImportContract {

public function importFromFile($filepath);
}
6 changes: 0 additions & 6 deletions src/Distilleries/Expendable/Contracts/XlsImporterContract.php

This file was deleted.

52 changes: 2 additions & 50 deletions src/Distilleries/Expendable/ExpendableServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@

namespace Distilleries\Expendable;

use Distilleries\Expendable\Exporter\CsvExporter;
use Distilleries\Expendable\Exporter\ExcelExporter;
use Distilleries\Expendable\Exporter\PdfExporter;
use Distilleries\Expendable\Importer\CsvImporter;
use Distilleries\Expendable\Importer\XlsImporter;
use Distilleries\Expendable\Layouts\LayoutManager;
use Distilleries\Expendable\Models\User;
use Distilleries\Expendable\States\StateDisplayer;
Expand Down Expand Up @@ -77,44 +72,7 @@ public function register()

$this->alias();
$this->registerCommands();
$this->registerImporters();
$this->registerExporters();
}


protected function registerImporters()
{
$this->app->singleton('CsvImporterContract', function()
{
return new CsvImporter;
});

$this->app->singleton('XlsImporterContract', function()
{
return new XlsImporter;
});

$this->app->singleton('XlsxImporterContract', function()
{
return new XlsImporter;
});
}

protected function registerExporters()
{

$this->app->singleton('Distilleries\Expendable\Contracts\CsvExporterContract', function()
{
return new CsvExporter;
});
$this->app->singleton('Distilleries\Expendable\Contracts\ExcelExporterContract', function()
{
return new ExcelExporter;
});


}


protected function registerCommands()
{
Expand All @@ -135,14 +93,8 @@ public function provides()
return [
'Distilleries\Expendable\Contracts\StateDisplayerContract',
'Distilleries\Expendable\Contracts\LayoutManagerContract',
'Distilleries\MailerSaver\Contracts\MailModelContract',
'CsvImporterContract',
'XlsImporterContract',
'XlsxImporterContract',
'Distilleries\Expendable\Contracts\CsvExporterContract',
'Distilleries\Expendable\Contracts\ExcelExporterContract',
'Distilleries\Expendable\Contracts\PdfExporterContract',
'Distilleries\Expendable\Contracts\PdfExporterContract',
'Distilleries\Expendable\Contracts\ImportContract',
'Distilleries\Expendable\Contracts\ExportContract',
];
}

Expand Down
24 changes: 0 additions & 24 deletions src/Distilleries/Expendable/Exporter/CsvExporter.php

This file was deleted.

54 changes: 0 additions & 54 deletions src/Distilleries/Expendable/Exporter/ExcelExporter.php

This file was deleted.

81 changes: 81 additions & 0 deletions src/Distilleries/Expendable/Exports/BaseExport.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php
namespace Distilleries\Expendable\Exports;

use Carbon\Carbon;
use Distilleries\Expendable\Contracts\ExportContract;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;

class BaseExport implements FromQuery, WithHeadings, ExportContract
{
use Exportable;

/**
* @var \Distilleries\Expendable\Models\BaseModel
*/
private $model;

/**
* @var Carbon
*/
private $start;

/**
* @var Carbon
*/
private $end;

public function __construct($model, $data)
{
$this->setModel($model);
$this->setRange($data);
}

public function export($fileName)
{
return $this->download($fileName);
}

/**
* @return \Illuminate\Database\Query\Builder
*/
public function query()
{
return $this->model->betweenCreate($this->start, $this->end);
}

/**
* @param mixed $model
* @return $this
*/
public function setModel($model)
{
$this->model = $model;

return $this;
}

/**
* @param array $data
* @return $this
*/
public function setRange($data)
{
foreach ($data['range'] as $key => $date)
{
Carbon::parse($date);
$this->$key = Carbon::parse($date);
}

return $this;
}

/**
* @inheritdoc
*/
public function headings(): array
{
return \Illuminate\Support\Facades\Schema::getColumnListing($this->model->getTable());
}
}
4 changes: 2 additions & 2 deletions src/Distilleries/Expendable/Helpers/StaticLabel.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ public static function status($id = null)
public static function typeExport($id = null)
{
$items = [
'Distilleries\Expendable\Contracts\ExcelExporterContract' => trans('expendable::label.excel'),
'Distilleries\Expendable\Contracts\CsvExporterContract' => trans('expendable::label.csv')
'xls' => trans('expendable::label.excel'),
'csv' => trans('expendable::label.csv')
];

return self::getLabel($items, $id);
Expand Down
14 changes: 0 additions & 14 deletions src/Distilleries/Expendable/Importer/CsvImporter.php

This file was deleted.

16 changes: 0 additions & 16 deletions src/Distilleries/Expendable/Importer/XlsImporter.php

This file was deleted.

51 changes: 51 additions & 0 deletions src/Distilleries/Expendable/Imports/BaseImport.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php
namespace Distilleries\Expendable\Imports;

use Distilleries\Expendable\Contracts\ImportContract;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class BaseImport implements ToModel, WithHeadingRow, ImportContract
{
use Importable;

/**
* @var \Distilleries\Expendable\Models\BaseModel
*/
private $model;

public function __construct($model)
{
$this->setModel($model);
}

public function importFromFile($filepath)
{
return $this->import($filepath);
}

/**
* @inheritdoc
*/
public function model(array $row)
{
$data = [];
foreach($this->model->getFillable() as $value)
{
$data[$value] = $row[$value];
}
return new $this->model($data);
}

/**
* @param mixed $model
* @return $this
*/
public function setModel($model)
{
$this->model = $model;

return $this;
}
}
Loading

0 comments on commit c2310db

Please sign in to comment.