phpoffice/phpexcel
得られる能力:PHPでエクセルファイルを扱えるようになれます
インストール
$ php-7.0 ~/bin/composer require "phpoffice/phpexcel"
$ php-7.0 ~/bin/composer dump-autoload
使い方
config/app.php に登録 => しない
$Excel = new Excel();
$filepath = 'masters.xlsx';
$datas = $Excel->getExcelData($filepath);
app/Model/Excel.php
class Excel {
function __construct(){
$vendor = dirname(dirname(__DIR__)).'/vendor/phpoffice/phpexcel/';
require_once($vendor.'/Classes/PHPExcel.php');
require_once($vendor.'/Classes/PHPExcel/IOFactory.php');
}
// エクセルを連想配列に変換
public function getExcelData($filepath){
...
}
}
みたいな。
拡張子によるバージョン違い
'xls' => 'Excel5'
'xlsx' => 'Excel2007'
intervention/Image
得られる能力:簡単に画像のリサイズ他編集ができるようになれます
多分 Imagick が必要です。
CPI はデフォで入ってるみたいです。(検証してませんすみません)
⇒ EC2 の Laravel に Imagick をインストールする
インストール
$ php-7.0 ~/bin/composer require "intervention/image"
$ php-7.0 ~/bin/composer dump-autoload
使い方
config/app.php に登録 => する
config/app.php
'providers' => [
...
'Intervention\Image\ImageServiceProvider',
...
'aliases' => [
...
'Image' => 'Intervention\Image\Facades\Image',
...
class Hoge {
function Fuga ($from_fullpath, $to_fullpath) {
$image = \Image::make($from_fullpath);
$image->resize(320, null, function($constraint){
$constraint->aspectRatio();
});
$image->orientate();
$image->save($to_fullpath);
}
}
みたいな。
tecnick.com/tcpdf
得られる能力:簡単に PDF ファイルが作れるようになれます
インストール
【参考】 Laravel5.1でbladeテンプレートを用いてPDFを作る に非常に多く助けて頂きました。
$ php-7.0 ~/bin/composer require "tecnick.com/tcpdf"
$ php-7.0 ~/bin/composer dump-autoload
使い方
config/app.php に登録 => しない
use TCPDF;
class Hoge {
function makeODF(){
$pdf = new TCPDF();
//プリントヘッダー非表示
$pdf->setPrintHeader( false );
//フォント名,フォントスタイル(空文字でレギュラー),フォントサイズ
$pdf->setFont('ipaexg','',14);
//ページを追加
$pdf->addPage();
//viewから起こす(table で組む)
$pdf->writeHTML(
view('pdf.view', compact('customer', 'data', 'facility_names', 'bathings', 'templates'))->render()
);
//第一引数はファイル名、第二引数で挙動を指定(D=ダウンロード)
/**
* $pdf->output('hoge' . '.pdf', 'I');
* I: ブラウザに出力する(既定)、保存時のファイル名が$nameで指定した名前になる。
* D: ブラウザで(強制的に)ダウンロードする。
* F: ローカルファイルとして保存する。
* S: PDFドキュメントの内容を文字列として出力する。
*/
$pdf->output($dirs['fullpath'].'/'.$filename, 'F');
$pdf->output($filename, 'D');
}
}
みたいな。