CakePHPでPDF出力

Wkhtmltopdfがインストールされている前提。

CakePHPから利用するにあたってKnpLabs/snappyをcomposerでインストール。

コンポーネント化しておく。

Configure::read(‘command.wkhtmltopdf’); はwkhtmltopdfのパスを指定。

コントローラー

HTMLの描画はCakePHPで行い、出力されたHTMLをコンポーネント経由で渡しPDFとして出力する。

EC2を想定しています。

依存パッケージのインストール、日本語フォントインストール

$ sudo yum install xorg-x11-fonts-75dpi.noarch
$ sudo yum install ipa-gothic-fonts.noarch ipa-mincho-fonts.noarch

ダウンロードしてrpmをインストール

$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm
$ sudo yum install wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm

LinuxとWindowsでフォントサイズを合わせる

disable-smart-shrinking を指定することで自動調整されなくなる。

PHP5.6 から PHP7 への移行

セキュリティサポートは延長され2年程続くが、アクティブサポートは終了している。
PHPのリリース日とサポート期限

PHP 5.6.x から PHP 7.0.x への移行

余程の変態コーディングをしていなければ、大事にはならない模様。
一部削除された関数があるので要チェック。
ereg()、split()は削除されたがmb_ereg()、mb_split()は残っていたりする為。

また、エラーレベルが変わった関係でAjaxレスポンスにエラーメッセージが混入して、Jsonパースエラーみたいな例があったり。
自前のコードはどうにでも出来るがComposer経由でインストールしているライブラリのが面倒。
(PHP7に対応しているバージョンがあればそちらを指定)

AmazonのMWSライブラリの一部が軒並みダメ。

PHP Fatal error: Redefinition of parameter $quotaMax in FBAInboundServiceMWS\Model\ResponseHeaderMetadata.php on line 31

引数名の重複を修正
システムのソースに混ぜるのは嫌だったので、GitHubに修正版を登録。ライセンスで再配布を許可しているため、同じような目的でforkされているのが散見される。
Composerからのインストール後で入れ替えが効くようZIPから展開させている。

公式の期限では後2年となり、移行期間として十分だろう。
7.1からパフォーマンスが上がっているのも嬉しい。
IDEなどを利用して、日頃から@deprecatedに気を配れば移行の負担も軽減される。

Page 1 of 1912345Next »...Last »