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

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

M1 Macにphp7系の環境を整える

# 概要

新しくM1のMacを購入したのだが、前に作っていたphp7系のコードを動かそうとして苦戦したのでメモ。

## 参考資料

https://tanakano-aster.com/note/m1-mac-php72/
この人の記事を参考に、自分はphp7.4を動かすようにしました。

## やり方

下記のページのコマンドをコピーしてターミナルで実行
https://brew.sh/

“`sh
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)
“`

brewアップデート

“`sh
brew update
“`
php7.4があるか確認

“`sh
brew search php
“`
php7.4をインストール

“`sh
brew install php@7.4
“`
php7.4を紐付ける

“`shell
brew link php@7.4
“`

いまのphpをunlinkするかオーバーライドしろって言

元記事を表示

5分でPHPUnitをGitHub Actionsで動くようにする

5分は誇張ですが…
サクッとPHPUnitをGitHub Actionsで動かす際のメモ

### Step1 PHPUnitを動かす
[PHPUnitのGetting Started](https://phpunit.de/getting-started/phpunit-9.html)を参考にして

#### composerでPHPUnit追加

“`shell-session
composer require –dev phpunit/phpunit ^9
“`

#### composer.jsonにautoloadの設定を追加

“`json:composer.json
{
“autoload”: {
“classmap”: [
“src/”
]
},
“require-dev”: {
“phpunit/phpunit”: “^9”
}
}
“`

#### テスト対象とテストコードを準備
[Getting Started](https://phpunit.de/

元記事を表示

[PHP]ドット付きや数字始まりのプロパティにアクセスする方法

“`
echo $obj->{‘name.kana’};
echo $obj->{‘1_name’};
“`

### 参考

[PHP] 先頭が数字の変数やプロパティにアクセスする方法

元記事を表示

未経験者が「グラフ画像の読取り効率化」アプリを開発した話【Laravel / Vue.js / Docker / AWS】

##1. はじめに

本記事は**実務未経験者**が**ポートフォリオ**として個人開発した**Webアプリ**や**学習過程**などをご紹介します。
未経験からエンジニア転職を目指す方々のお役に立てれば嬉しいです。

##2. 簡単な自己紹介

– 未経験からWebエンジニアへの転職を目指しています(2021年の半ばから学習開始)。
– 前職は電機メーカーでハードウェアエンジニア (現在無職)。
– 大阪に住んでいる20代後半。
– 妻と子供 (もうすぐ1才) の3人暮らし。

[twitterアカウント](https://twitter.com/hinanam3)

##3. 開発したアプリ 「 PLOTemo 」 とは ?

アプリを簡単に説明すると、
**「グラフ画像のプロットデータ読み取りを効率化 & メモ管理」**ができるアプリです。

「?」ってなっている方も多いと思います。
前職絡みの課題を解決するニッチなアプリとなっております。

名前の由来はプロット(plot) + メモ(memo) で PLOTeme

元記事を表示

LaravelのMail送信処理を深堀りする!

ある日Laravelでメール送信の実装をしようと思った時のこと、Laravelの公式ドキュメントを見て簡単に実装できることを知りました(以下のような書き方で実装可能です)。

“`php
Mail::send(/*引数省略*/); // Mailファサードのみで送信
Mail::to($user)->send($mailable); // Mailableクラスを使用してメールを送信
“`

「すごい便利!」と思ったのですが、簡単すぎてなんかいまいち理解しきれていない。まあライブラリなので完全に理解する必要はないのですが、ちょっと気になるなともやもやが起きました笑

ということで、そんなもやもやを解消するために、Mailファサードについて深堀りをしようと思います。
同じもやもやを抱えてしまった方、一緒にもやもやを解消していきましょう!(「おっと、この部分は違うぞ!」と思った方はコメントで教えてください)

**著者の環境**

– Laravel 8.78.1
– PHP 8.0.8
– MailerはAmazon SESを使用

## Mailファサードについて
まずはMail

元記事を表示

Laravel radio ボタンを保持させる

# はじめに
Laravel 初学者の私が学習した内容をアウトプットしていく記事になります。
冗長している点や軽い書き方などあれば御指南お願いいたします。。。:bow_tone5:

# Laravel radio ボタンを保持させる
前提:boolean カラムのデータを Radio ボタンで切り替えを実装する。
## 実際のコード
“`php:edit.php

is_published) ? ‘checked’ : ”}}>
GitHubでcloneしたLaravelプロジェクトをDockerを使ってローカル環境構築するまでの手順

#はじめに
GitHubでcloneしたLaravelプロジェクトをDockerで環境構築したい人に向けて簡潔に手順を解説します

5分程度で終わります
#1.リモートリポジトリをローカルにcloneしてbuildする
“`
#GitHubからcloneする
$ git clone {リポジトリURL(https://〜.git}

# イメージを作成
$ docker-compose build

#cloneしたディレクトリに移動してbuild
$ docker-compose up -d
“`
#2.パッケージのインストール
・Dockerコンテナ内に入って以下のコードを実行

“`
$ docker-compose exec {サービス名} bash
$ composer install
“`
#3.APP_KEYの作成
“`
$ chmod 777 -R storage/
$ cp .env.example .env
$ php artisan key:generate
“`
#4.localhostでウェルカムページを確認
[localhost](localho

元記事を表示

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 にアクセスします。

:::note info
「[

元記事を表示

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を閉

元記事を表示

OTHERカテゴリの最新記事