PHP関連のことを調べてみた2022年01月25日

PHP関連のことを調べてみた2022年01月25日

Laravel に任意の favicon を追加する

# はじめに
以前、Laravel で作成した Web アプリケーションに favicon を追加する方法を Laravel 公式ドキュメントから参照しようとしましたが、記載がなく調べました。その備忘録としてまとめさせていただきます。

# 環境
OS: Ubuntu-20.04 (Windows 10 の WSL2 上に設置)
PHP: 8.0.10
Laravel: 8.61.0

# 事前準備
検証のために、favicon を事前に2つ作成しておきます。favicon の作成自体はフリーのサイトを用いて、PNG や JPEG を ICO 形式に変換することで可能です。

今回私は Favicon ジェネレーター様を用いました。
https://favicon-generator.mintsu-dev.com/

また、変換対象の画像としては、いらすとや様の地球儀とノートパソコンの画像を用いました。
地球儀の画像
https://www.irasutoya.com/2013/02/blog-post_3995.html

ノートパソコンの画像
https://www.irasuto

元記事を表示

blastengineを使ってPHPでメールを送信する

[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

今回はblastengineを使ってPHPでメール送信を行うまでの流れを解説します。

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/b07d7d9d-6150-d5f9-1bb7-b13846c8ddfc.jpeg)

## 送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。

“`
txt @ v=spf1 includ

元記事を表示

PHP jQuery Raty 使用した際の備忘録

##はじめに
今回の内容は
PHPで簡単なレビューサイト作成する際に星評価機能を実装するために
jQueryのプラグインを使用した際に表示画面と編集、投稿画面の時に苦労したので
後で見返せるように記述していきたいと思います。
初めて投稿するので至らないところがあると思いますがよろしくお願いします。

##表示画面

一覧画面などでforeach文を使い各評価毎に表示する方法

“`PHP:PHP





「PHPフレームワークLaravel入門 第2版」のユニットテストをLaravel 8で行う

##はじめに
Lravel 8になり、「PHPフレームワークLaravel入門 第2版」(いわゆる青本)のユニットテストの解説部分のコードが大幅に変更されました。
そこで、本の内容に沿いながら、Laravel 8でのユニットテストの記述方法を紹介したいと思います。

##テスト用データベースの準備
touchコマンドやDB Browserを利用して、databaseフォルダ内にdatabase_test.sqliteを作成します。

#####リスト7-36
変更はありません。

プロジェクトフォルダ内のphpunit.xmlを開き、``タグ内に以下を追記します。

“`xml:phpunit.xml

“`

##ダミーレコードの用意
###Userファクトリ
#####リスト7-37
デフォルトで用意されているdatabase\factories\UserFactory.phpの内容がクラスベースになっています。
UserFactory.php

元記事を表示

[PHP] XAMPPのPHPエラーログを出力する(時刻付き)

#1.ログフォルダを作成する
C:\xampp\php\logs\配下に”php_error.log”を作成します。

#2.php.iniファイルを開く
C:\xampp\php\ 配下にあるphp.iniファイルを開きます。

#3.以下の設定を変更する。
**・log_errors=On**
 →もしOffの設定がされている場合、Onにします。
**・error_log = php_errors.log**
 →php_error.logのコメントがされている場合コメントを外します。

**・タイムゾーンを東京にする**
;date.timezone=Europe/Berlin
date.timezone=Asia/Tokyo
 →ログに時刻を表示する場合、上記の設定にします。

#4.xamppを再起動する。
xamppよりapacheを再起動します。


#テストプログラムで確認する。

以下のtest.phpをC:\xampp\htdocs配下に作成します。
そしてhttp://localhost/test.php にアクセスします。

~~~php
[test.ph

元記事を表示

Laravel8でLINEログインを実装する

# はじめに
Laravel8でLINEログインの実装を行ったので備忘録として残しておきます。

# 環境
PHP 7.4.27
Laravel 8.78.1

#事前準備
LINEログインの機能を使用するには[LINE Developersコンソール](https://developers.line.biz/console/)でプロバイダー及びLINEログインのチャネルを作成しておく必要があります。

下記のドキュメントを参考に作成していきますが詳細は割愛します。

https://developers.line.biz/ja/docs/line-login/getting-started/

チャネルを作成することでチャネルID、チャネルシークレットを取得できます。
コールバックURLも忘れずに設定しておきましょう。

#実装
LINEログインの実装部分に焦点を当てているためLaravelプロジェクトの作成や通常のログインなどの認証関連のパッケージの導入は省略しています。

### Laravel Socialiteをインストール
今回はLaravelの公式パッケージであるLara

元記事を表示

PHPのビルトイン関数

#本記事の概要
本記事は筆者の備忘録的な位置付けで作成したものとなっております。
私でもわかるよう丁寧に(独特な)表現になっておりますことご了承ください。
また、以下のサイトで気軽に関数を試すこともできますので、ぜひ試しながら遊んでみてください。
https://paiza.io/projects/mL8PaRyCwNERG3TGBOTwAQ

#phpとは
html,cssなどで作成する静的webページと異なり、`動的なwebページを作成する`ことができる。
動的なWebページとはアクセスしたタイミングや状況によって表示内容が変わるページ。
JavaScriptがクライアント側の処理をするのと異なり、webサーバー側の処理をすることができる。
#ビルトイン関数とは
phpに用意されている関数。
これとは他に、自身で定義することができるユーザー定義関数がある。

# 公式サイト
php.netで確認できる。
英語で出てくるので、調べる際は`文字列 関数 site:php.net`と調べると日本語で出てくるのでおすすめ。

#関数

|目的|関数|注意点|
|—|—|—|
|

元記事を表示

PHPExcelを動かしてみた

後継のPHPSpreadsheetの登場により、すでにメンテナンス対象外で、アーカイブされているPHPExcel。
ですが、PHPの動作環境上やむを得ず使用することになり、試しに動かしてみたので、覚え書きしておきます。

## 環境

* OS: Amazon Linux2
* PHP: 5.4.16

→ 本記事では、EC2インスタンスは準備済を想定。PHPのインストールから行います

## 事前準備

EC2インスタンスにSSH接続して、以下を実行。

### PHP5系のインストール

[Remi’s RPM repository – Configuration wizard | rpms.remirepo.net](https://rpms.remirepo.net/wizard/)
にアクセスして、以下の通り設定。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/9b928c90-5fea-0fe4-da6c-9a4f33325aa1.png)

PHPのバー

元記事を表示

-bash: php: command not found 解決方法

##初めに
作成中のポートフォリオでPHPのバージョンを確認したいと思い、`php -v`をターミナルで叩いたところ、`-bash: php: command not found`と表示されてバージョン確認できなかったので、その解決方法についてご紹介していきます。

##エラー原因
“`
アプリディレクトリ $ php -v
-bash: php: command not found
“`
`-bash: php: command not found`で「そんなコマンド無いよ!」と指摘された時は、パスが通ってないことが原因です。
なので、`.bash_profile`ファイルにパスを通す設定をしてあげることで解決できます!

##1.パスを通す

###`.bash_profile`の確認
先ずそもそも自身のホームディレクトリに`.bash_profile`が存在しているのか確認してみます。

“`
アプリディレクトリ $ cd #ホームディレクトリに戻る

ホームディレクトリ $ ls #ホームディレクトリ下に配置されているファイルを確認
Applications OneD

元記事を表示

【正規表現】PHPで郵便番号をIF文で条件定義

“`php:test.php

“`

説明

①preg_match — 正規表現によるマッチングを行う
https://www.php.net/manual/ja/function.preg-match.php

②/\A ←ここまでの意味・・・文字列の先頭を意味します。

③\d{3} ←これの意味・・・「d」が数字指定、{3}数。数字で3文字入力しなさい。

④[-] ←これの意味・・・郵便番号のハイフンです。ハイフン無し入力をユーザーにした正規表現を記述したい場合はこれは不要です。

⑤\d{4} ←これの意味・・・「d」が数字指定、{4}数。数字で4文字入力しなさい。

⑥\z/ ←これの意味・・・文字列の末尾を意味します。

“`php:test.php

元記事を表示

PHPExcelとPhpSpreadsheetの比較

PHPでのExcel操作に関し、PHPExcelとPhpSpreadsheetを比較したので覚え書き。

## 概要

### 共通点

– いずれも[PHPOffice](https://github.com/PHPOffice)シリーズのひとつ
– スプレッドシートファイルフォーマットの読み込み/書き込みができるライブラリ

### [PHPExcel](https://github.com/PHPOffice/PHPExcel)

– 2015年に最終バージョン1.8.1をリリースした後、2017年非推奨 → 2019年にアーカイブされた

### [PhpSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet)

– PHPExcelの後継で、互換性はなく、品質がよくなっている
– 名前にSpreadsheetとあるが、Excelファイルの操作も可能

## 比較

表でその違いを比較してみました。

| | PHPExcel | PhpSpreadsheet |
| —- | —- | —- |
|

元記事を表示

【PHP】 publicやprivateやアクセス修飾子ってなんぞや?疑問を解消してくれる記事

使い分ける際の判断基準を簡潔に。

①値を変えたらだめなもの
②値を変えてもOKなもの

クラス(class)とは、言わば『設計書』。
繰り返し使う処理をまとめたものです。

内部的に使う処理は「private」にして値を固定にして、外部からは変更できないようにします。
(店で売っている商品の価格を消費者は自由に変えられない。)

外部的に変更したい処理は「public」にして値を変動できるようにして、外部から変更できるようにします。
(寿司の価格はprivateだけど、「刺身醤油とわさび」は自由に持って帰ってイイよ。個数は消費者に委ねるよ。って状態にする)

Publicとは?

クラス内外問わず、どこからでもアクセス可能

purotectedとは?

そのクラスと子クラス(継承先のクラス)からのみアクセス可能

privateとは?

そのクラス内でのみアクセス可能

元記事を表示

WSL2(Ubuntu)でPHP + Apache環境を構築する②

WSL2(Ubuntu)を使用して、Windows上にLinuxの仮想環境を構築し、PHP + Apacheの開発環境を整えます。
本稿は2部構成となっております。WSL2・Ubuntuのインストールは第1部で解説していますので、未読の方はこちらからお読みください。

https://qiita.com/Michi1090/items/2ff58970fd95c0b366c7

# VScodeのインストール

##拡張機能のインストール

まず、**Windows側**でVScodeを開きます。
Marketplaceで`Remoto Development`と検索し、該当の拡張機能をインストールします。これは簡単に言うと、WSL上でVScodeを使用できるようにするための機能です。
![2022-01-18 (14).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2485055/d13f74f1-c342-4098-7a0e-174b10729541.png)
インストールできたら、VScodeを閉

元記事を表示

VirtualBox+CentOS7+Apach2.4+PHP8.0+MySQL8.0 の開発環境構築をする

# はじめに
この記事ではVirtualBoxを使用して、LAMP環境(Linux,Apache,PHP,MySql)を構築します。

VirtualBoxを使用した、CentOSの環境構築については以下の記事を参考にしてください。
[VirtualBox(Windows10)にCentOS7環境を構築し、TeraTermでssh接続をする](https://qiita.com/fumo_fumo/items/c079d688e33a9752398c)

# 環境
– VirtualBox:6.0
– ホストOS:Windows10
– ゲストOS:CentOS 7.9
– Apache:2.4.6
– PHP:8.0.15
– Mysql:8.0.27

# 1.初期設定
全パッケージのバージョンを最新のものに更新する。

“`
# yum -y update
“`
SELinuxを無効にし、設定を反映させるために再起動する。

“`
# vi /etc/selinux/config
SELINUX=disabled

# reboot
“`
# 2.Apacheのインストー

元記事を表示

IntelliJ IDEAのPHP x Dockerプロジェクト設定

## この記事の概要

IntelliJ IDEAでPHP x Dockerプロジェクトを作成した時のメモ。

## この記事で触れないこと

それぞれについての詳細。(IntelliJ IDEA、PHP、Docker)

## 環境

– Windows 10 Pro 21H1
– Docker Desktop 4.4.3
– IntelliJ IDEA 2021.3.1
– PHP 8.0

## 環境構築

### 1. IntelliJ IDEAをインストール

[ダウンロード IntelliJ IDEA](https://www.jetbrains.com/ja-jp/idea/download/)

**Ultimate版**をインストールする。
後述のPHPプラグインはUltimate版しかサポートしておらず、Community版では使用できないらしい。

:::note warn
30日間の無料体験か、購入しての利用になる。
:::

### 2. プラグインをインストール

PHP x Dockerプロジェクトに必要なプラグインをインストールする。

– PHP

元記事を表示

Laravelのリレーションごちゃごちゃになりがちな件

## どういうことか

laravelのリレーション、migrateファイルに書くだけならそこまで難しいことはないけど、
実際にmodelやbladeでhasOneとか使ってそれらしく書こうとすると
結構ごちゃごちゃになりがち(私だけかもしれないが)

Laravelのドキュメントは丁寧で分かりやすいが
実際のDBが載せられていないからちょっとイメージしづらくて、
「あれこれどっち何を書いたら?」ってなってしまったので、
実際の実装例を載せながら、備忘録として残しておく。

## 環境

laravel 8.17.0
mysql

## 前提

以下のような2つのテーブルがある。

**アイドル名テーブル**

アイドルの名前と、そのイメージ写真のファイル名が格納されたテーブル。
本来はいろいろな情報が格納されているがここは一旦分かりやすさ重視で簡略化。

| id | name | age | img_path |
|:———–:|————|————|————|
| 1| アイドルA| 19| a.png|
| 2| アイ

元記事を表示

EC-CUBE+Docker+xdebug+VSCode環境を作る

EC-CUBE4の解析を行うのが難しいのでデバッグ機能を実装してみた。多分、EC-CUBEに限らず、Docker/VSCodeで開発してる人は参考になると思う。

:::note info
Windows環境でやるていで記載していきます。
:::

<参考>
[・Docker+EC-CUBEの環境を構築する](https://qiita.com/Kouhei-Ichikawa-wq/items/3212094e57a9fc8d53dc)
[・VSCodeからDockerにつなぐ](https://qiita.com/Kouhei-Ichikawa-wq/items/d43c2cbc098072bab25e)

#手順
適当な場所にフォルダを作成する(日本語が入ってないところがいいかも)
(例)C:\temp配下に『aaa』というフォルダを作成する

####コマンドプロンプト作業

“`:適当に作成したフォルダに移動する
cd C:\temp\aaa
“`

“`:EC-CUBEを落とす
git clone -b 4.0.5 https://github.com/EC-CUBE/

元記事を表示

新規または変更したファイルのみphpStanを実行する

## 使いそうなシチュエーション
・静的解析したいファイルが多すぎるとき
・将来phpStanを導入したいと考えているとき
・新規作成ファイルなど部分的にphpStanのレベルを上げたいとき

## コマンド
“`shell
# git diffした内容をphpstanで実行する
git diff master –name-only | grep ‘.php’ | xargs vendor/bin/phpstan analyse -l max

# diff-filterオプションで新規作成ファイルのみに絞り込みして実行できる
git diff master –diff-filter=A –name-only | grep ‘.php’ | xargs vendor/bin/phpstan analyse -l max
“`

エイリアスを通しとくと便利そう

“`shell
# ~/.bashrc または ~/.zshrc
alias stan-diff=”git diff master –name-only | grep ‘.php’ | xargs vendor/

元記事を表示

docker-compose を用いて M1 Mac 等 ARM 系 CPU で動作する Apache, MariaDB, PHP の開発環境構築

# 目的

M1 Mac で PHP, MySQL もしくは MariaDB が動作する開発環境を作成する。
但し下記を満たすこと。
1. Mac 環境を汚さないように仮想環境を用いる
2. 動作速度が許容範囲内

# 結果

試行錯誤の結果、仮想マシン環境ソフトウェア Parallels Desktop で Fedora 35 Server の仮想環境を構築し、https://github.com/kotanbo/docker-lamp-for-arm を docker-compose で起動するようにした。

理想としては Docker Desktop で構築したかったが、動作速度が遅く許容できなかったため、Linux の仮想環境内で Docker を利用することとした。

当初は MySQL で構築していたが、ある程度大きいダンプファイルをインポートすると下記エラーとなって落ちるので MariaDB を選択した。

“`text
2022-01-16T03:04:41.549704+09:00 0 [ERROR] [MY-013183] [InnoDB] Assertion f

元記事を表示

VaccImageのバイアル計算について

VaccImageについては、

[VaccImage](https://github.com/YohYasushi/VaccImage “VaccImage”)

に記載のとおりです。
ワクチンのバイアル管理を目的としたWebアプリです。Ver1.0.1までは本当にひどいスパゲッティCodeだったんですが、Ver2.0.0ではSQLを駆使し、随分と見通しがよいCodeになりました。
今回はVaccImageについて初回のQiita投稿ということで、バイアル計算について取り上げてみます。

他の先生方がどうしているか知りたいのですが、

元記事を表示

OTHERカテゴリの最新記事