HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

PHP

Laravelでプロジェクトを作って接続先DBをMariaDBに変えるまでの話

はじめに お仕事でLaravelを使うことになり、いよいよ勉強しないといけないということで取り掛かったのだけど、DBがSQLiteのままで話が進んでいく記事がほとんどで、いろいろ戸惑ったので、最初からDBMSを切り替える手順を検証してメモ。 環境 AlmaLinux 9.4…

Zend FrameworkからLaminasに移行する話(10)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(9)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(8)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(7)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(6)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(5)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(4)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(3)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(2)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

Zend FrameworkからLaminasに移行する話(1)

はじめに お仕事で、Zend Frameworkのバージョンアップをしなければならなくなった・・と思ったら、Zend Frameworkはもうなくて、Laminas Projectに移って新たなフレームワークとして公開されている。 いちから勉強しないといけないじゃん、ということで、必…

PHPでJWTを扱うためのライブラリのサンプルと処理時間計測

はじめに 以下の記事を見ていて、本当に検証に使用したプログラムが載っているんだろうか?とか疑問が生じたのと、現環境でNamshi/JOSEが動かなかったので、別のライブラリ3つほどを使って実測してみたメモ。 ※Namshi/JOSEは、単に楕円曲線をサポートしてい…

Laravel 11環境でLaravel-Snappyを使ってPDF出力をする

はじめに PDFを出力するためのライブラリ「Snappy」をLaravel 11で使えるようにするための手順のメモ。 事前準備 今回は、Windows 11上のVirtualBoxにAlmaLinux 9.3をインストールした環境での手順を示す。 まずはLaravel 11でのプロジェクト作成。 $ cd /va…

短縮URLの展開処理(PHP)の改版

古き良き時代は終わりを告げ、Webサイトへの接続はHTTP over SSL/TLSが当たり前になった。 hhelibex.hatenablog.jp hhelibex.hatenablog.jp そんなわけで、久々に引っ張り出した短縮URL展開プログラムのPHP版が、このままじゃダメだ!という状況になっていた…

fopenに存在しないファイル名を指定したときの挙動

PHP

PHP 5.4.16からPHP 8.1.7にバージョンアップをしようとしたときのこと。

型宣言~float~

PHP

型宣言のfloat編。どこまで許容されるのか検証。 Main.php getMessage() . PHP_EOL; print $e->getTraceAsString() . PHP_EOL; return -1; } } class Hoge { private int $val; p…

型宣言~bool~

PHP

型宣言のbool編。どこまで許容されるのか検証。 Main.php getMessage() . PHP_EOL; print $e->getTraceAsString() . PHP_EOL; return false; } } class Hoge { private int $val; p…

型宣言~string~

PHP

型宣言のstring編。どこまで許容されるのか検証。 Main.php getMessage() . PHP_EOL; print $e->getTraceAsString() . PHP_EOL; return ''; } } class Hoge { private int $val…

型宣言~int~

PHP

型宣言のint編。どこまで許容されるのか検証。 Main.php getMessage() . PHP_EOL; print $e->getTraceAsString() . PHP_EOL; return -1; } } class Hoge { private int $val; public …

type hintingの改善(Type declarations/型宣言)

PHP

だいぶ昔に以下の記事を書いた。 hhelibex.hatenablog.jp それからだいぶ時が経ったものの、PHP 5.xの世界でずっと生きてきたので気付かなかった。 (英語) Type declarations (日本語) 型宣言 これによると、 英語 Type declarations can be added to functi…

オブジェクトの存在しないプロパティを参照したときの挙動

PHP

もしかしてオブジェクトの場合もか?ということで試したメモ。 Main.php a); var_dump($a->b); 実行結果。 $ for php in php56 php70 php71 php72 php73 php74 php80 php81 php82 ; do echo "===${php}===" ; ${php} Main.…

配列の存在しないキーを参照したときの挙動

PHP

PHP 5.4.16で動いているシステムをPHP 8.1.6に移行しようとしてハマったのだが、Smarty 2.xでは、error_reportingの値を書き換えてE_NOTICEを勝手に抑制していたことが発覚した今日この頃。 PHP 8.1.6にしてみるとどうにもWarningが止まらない。Smartyの未定…

オブジェクトに対するarray_key_exists関数呼び出しの代替策について

PHP

array_key_exists関数の第二パラメータにオブジェクトを渡すとエラーになるようになってから久しいが、PHP 5.4.16で動くシステムを最低でもPHP 7.3以降に上げなければならなくなったためにぶつかった壁の調査。 以下のようなコードをPHP 5.6.40/7.4.29/8.1.6…

CSVファイルの扱いに関する挙動の比較(2)

前回、以下の記事を書いた。 hhelibex.hatenablog.jp その中で、「自身が書き出したCSVファイルを読み込むとエラーになる」可能性が出たので、実際に検証してみた。 なお、今回は、PHPについては7.4.0以降を対象とする。 事前準備 fgetcsv/fputcsv (PHP (7.4…

CSVファイルの扱いに関する挙動の比較

CSVファイルの読み書きに関する挙動をまとめたメモ。 はじめに 検証に使うCSVファイル fgetcsv/fputcsv (PHP) Super CSV (Java) Super CSV Annotation (Java) OrangeSignal CSV (Java) opencsv (Java) まとめ 参考 おまけ(Excelで開く) はじめに まず、復…

RFC4180に従わないfgetcsv/str_getcsvの独自仕様

PHP

「バックスラッシュを削除するとうまくいく」。そんな問い合わせを受けて調べてみたら、驚愕の事実が発覚。その調査メモ。 CSVファイル さすがにオリジナルを載せるわけにはいかないので、簡略化したCSVファイルを示す。文字エンコーディングはWindows-31J。…

PHPでPOSTする

PHP

大昔に書いた記事にウソがあったので、それを訂正しつつ、PHPでPOSTするためのコードを何通りか書いてみるテスト。 hhelibex.hatenablog.jp 下準備 以下のようなAPIを用意しておく。HTMLコードを吐き出す仕様になっているのは気にしない。 post-api.php <dl> $v</dl>…

カーソルの使用方法

もうZend Framework 1(ZF1)の話はいいやって感じだけど一応メモ。 ZF1を使ってDBへのアクセスを実現するには、通常はZend_Db_Table_Abstractクラスを継承したモデルクラスを作って実現すると思うじゃないですか。 select(); …

Zend Framework 1+PostgreSQL

ある時、Zend Framework 1系+PostgreSQLで組まれたシステムのPostgreSQLバージョンアップを行う機会があったのだけど、PostgreSQL 12以降には上げられないことが判明して、PostgreSQL 11で妥協したことがあった。 CentOS 6のサポート期限も近づいているし、…

yumでCentOSに標準以外のPHP実行環境を構築する

CentOSの標準リポジトリのみに依存していると、PHPのバージョンがどんどんEOLになっていって悲しいので、yumで任意のバージョンをインストールして使用するための手順のメモ。 ちなみに、標準リポジトリを使用する場合はCentOS 6ではPHP 5.3.3、CentOS 7では…