【Laravel】Laravel8 (laravel/ui)でのマルチ認証実装方法メモ
はじめに Laravel8で一般ログインと管理ログインを分けるために、マルチ認証を実装した方法を記載します。 概要 ユーザーは、 一般ユーザー側を users 管理者側を admin_users URLは、 一般ユーザー側(users) ログイン画面 /login ホーム画面 /home 管理側(admin_users) ログイン画面 /admin/login ホーム画面 /admin/home...
View Article【Laravel】「email」のバリデーションルールの注意
初めに Laravelではデフォルトで様々なバリデーションルールを準備してくれており、生PHPと比べてかなり簡単にバリデーションを設定することができます。 しかし、デフォルトのものには実は注意が必要と言う事をお話しして行きます。 その中で、今回は 『email』のバリデーションルールについて紹介します。 問題点...
View Article【Declined】PHP8に入ることのできなかった機能たち
PHP8では大量のRFCが受理され、多くの文法の拡充が行われました。 光あるなら陰もまたあり、すなわち華々しく活躍するRFCの傍らには、却下され消えゆくRFCもまた存在するということです。 ということでPHP8に入り込むことを目指したものの却下されたRFCを見てみることにしましょう。 採用されたRFCと却下されたRFCを見比べることで、PHPの今後の方向性とかがわかるかもしれませんよ。...
View Article11: 演算子
演算子 演算子(Operator:オペレーター)とは、与えられた変数やリテラルに対して、あらかじめ決められた処理を行うための記号。 右辺の値を左辺の変数に代入するための「=」演算子や、乗算を行うための「*」演算子など。 演算子によって処理される変数/リテラルのことをオペランド(Operand:被演算子)と呼ぶ。 $x=5+4 青: オペランド(被演算子) 赤: オペレーター(演算子)...
View Article単体系の複数形のdocとタイプヒンティング戻り値の設定で補完できるようにしてプログラミングを快適にするTips
IDEはInteliJを使っているが、ファイルに下線が表示されるのがものすごく気になる。 設定で下線表示されないようにレベルを落とせばいいんだろうけど、それはしたくない。 できるだけおれおれ的なことはせず、グローバルにピュアな状態でアタックしていきたい。 Laravelになるが題材として取得系のデータ操作に限定し、単体系と複数形を用意した。 以下、Repositoryクラスを例に変移を見ていく。...
View ArticleAWS EC2 AmazonLinux2 extrasを使ってPHP8をインストールする
概要 EC2のAmazonLinux2インスタンスにamazon-linux-extrasを用いてPHP8.0を入れる方法をまとめる。 前提 若干古いが下記の方法を応用してAmazon Linux2インスタンスを立てた AWS EC2 をMacで使ってみよう! コマンドは特筆しない限り前のコマンドと同じディレクトリで実行しているものとする 方法...
View Article11: 浮動小数点数の演算に注意, 代入演算子
浮動小数点数の演算に注意 浮動小数点数を含んだ演算子は、時として意図した結果を得られない場合がある。 たとえば↓ <?php print floor((0.1 + 0.7) * 10); //結果: 7 floorは、少数点数を切り捨てるための関数。 この場合、(0.1 + 0.7) * 10で8なので、切り捨てても結果は8となるはずだが結果は7である。...
View Article12: 値による代入と参照による代入
値による代入と参照による代入 これまで、変数とは「値を格納するための入れ物」と説明してきたが、少しだけ嘘が混ざっている。笑 値を格納するのは、厳密にはコンピューター上に用意されたメモリの役割である。 メモリには、それぞれの場所を表す番号(アドレス)が振られている。 しかし、コードに意味のない番号を記述するのでは、見た目もわかりにくいし、タイプミスの原因にもなる。...
View ArticlePHP8のコンテナでdocker stopしてるのにSIGTERMが送られていない事象について
概要 PHP8のDockerコンテナに対して docker stop や docker-compose stop をしてもSIGTERMが送られず phpスクリプトに記載のシグナル制御がうまく動かなかった。 原因 利用したDocker ImageにてSTOPSIGNALによりデフォルトのSIGTERMから別のシグナルに変更されていたため。 詳細 Docker Image docker-compose...
View ArticlemacのPHPのバージョンを8.1にアップデートする
PHPを8.1にバージョンアップしたい 先月Laravel9がリリースされ、PHPのバージョンが8.0以上必要になりました。 ついでに8.1からはEnum型なども導入され、いろいろ変化してるみたいですね。 macOSにはもともとphpが入っていますが、手元の環境では7系だったのでHomebrewを用いてインストールしたいと思います。 バージョン確認 デフォルトではv7.3が入っていました。 %...
View ArticlePHP で計算すると起こるわかりにくい現象
これは何? 64bit 環境では、PHP の整数型が 64bit であることを知って驚いたので、そこに起因する不思議なことを見ていく。 基本的な動き PHP は、整数型の値を整数型の値で割ると、整数じゃなくなることがある。 PHP8 <?php $a=10; $b=8; printf( "%f/%f=%f\n", $a, $b, $a/$b); #=>...
View Article13: 比較演算子, 厳密な等価演算子
比較演算子 左辺と右辺の値を比較し、その結果をtrue/falseとして返す。(下記) 比較演算子は、if, while, do〜whileのような条件分岐/繰り返し命令で条件式を表すために利用する。 主な比較演算子 演算 概要 用例 == 左辺と右辺の値が等しい場合はtrue 7 == 7 →true === 左辺と右辺の値が等しく、かつ、同じデータ型である場合はtrue 7 === ‘7’...
View Article【Laravel】withとwhereHasを同時に実行するscopeを実装
対象読者 以下の基本的な知識がある人 リレーション APIリソース with、whereHasメソッド 実行環境 PHP 8.0.15 Laravel 8.83.1 定番のUser, Postモデルを例に解説していきます。 各モデルのリレーションメソッドは定義済みとします。 通常の書き方 id = 1のユーザー のユーザーの今日以降の投稿 上記データを同時に取得したいとします。...
View ArticlepukiwikiプラグインをRectorPHPでphp8.1へ静的に自動修正させてみた
はじめに そろそろ、pukiwiki 1.5.4がリリースされる予定らしく、php8ではJITコンパイラーが実装され、処理が高速になるそうなのでpukiwikiプラグインをすべてphp8で動くようにRectorPHPで自動修正させようと思います。 ただ、あくまで静的解析して修正するのでもちろんファイルによっては手動で修正しなければならないこともあります。 Windowsで動作させてます。...
View ArticlePHP8.0にアップグレードしたらメールヘッダがおかしくなった話
タイトルの通り,PHP7.4からPHP8.0にアップグレードするとmail()で送られるメールの本文にメールヘッダの一部が表示されてしまいます。 mail From - Sun Mar xx xx:xx:xx 2022 Delivered-To: hoge@foo.jp Received: ............................ Date:...
View Article【PHP8.2】false疑似型およびnull型が単独で使えるようになる
PHP8.0において実装されたunion型の導入過程において、false疑似型およびnull型が導入されました。 これらはunion型の一部としてのみ有効な型であり、単独で使用することはできません。 しかし、これを単独で使えるようにしようというRFCが提出されました。 投票期間は2022/03/12から2022/03/26であり、賛成38反対0の全会一致で可決されました。...
View Article[php] filter_input って便利
filter_input 使ってみた PHP5系で書かれたコードってPHP8にすると結構、変数の未定義や値が空って事でエラー出ちゃいますよね。 こんな時、isset の様なチェックをしてくれて、更…
View Articleamazonlinux2 imagickをインストール
imagick入らんがや sudo yum install php81-php-imagick エラー 依存性解決を終了しました。 エラー: パッケージ: ImageMagick6-libs-6.9…
View ArticleCentOS Stream8にLaravel9(PHP8、Nginx、MariaDB)をインストールする
記事一覧 ConoHa VPSにCentOS Stream8をインストールしVSCodeでSSH接続できるようにする - Qiita CentOS Stream8にNginx、PHPをインストール…
View ArticleM1 Macにphpenvでphp 8.0を入れてみた
かなり苦労したのでメモとして残しておく。 ```bash $ brew install autoconf \ bzip2 \ krb5 \ libedit \ libiconv \ libjpeg \ libpng …
View Article