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

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

Web監視システムを作ってみた

# パブロフの犬
今月うっかりSSL証明書の更新を忘れていて,4日間Webサイトが止まった.
次はすぐに知ることができるように,Web監視システムを作っておく.

# 設計と技術選定

作るうえで重要なのは設計と技術選定だ.

①Webページが稼働しているかどうかを確認し②結果をSlackに通知する仕組み.

シーケンシャルな図にまとめると、まあこんなところだろう.

![イメージ.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1067041/0ea5b95b-cbc8-bac4-0c4e-e1cf6de418bd.png)

技術はJSとPHPを選ぶ.なお各種サーバは設定済み.

– JavaScript
– Node.js … JSライブラリ管理
– yarn … JSライブラリ管理
– Selenium … テストフレームワーク
– Mocha … テスト管理

元記事を表示

PHP の DAO とは

## 勉強前イメージ

読むときは正直よくわからんで見てた。
クラスとかまとまってるイメージ?

## 調査

### PHP の DAO とは

Data Access Object の略で、デザインパターンの一種になります。
データベースでアクセスする際のロジックを集約したクラスのことです。
業務ロジックとデータを取得するのを分離するために考えられました。
要するにデータベースへのアクセスはDAOを使用して行われています。

また、DAOのクラスはテーブルごとに作成するようです。
そのためSQLを変更する際はDAO見たら一覧で確認することができますが
複数クラスから参照されている場合影響範囲の調査が難しいところがあります。

## 勉強後イメージ

DAOを変えるだけで変更できるのは楽よね。
DBに接続する際はDAOを書かないといけないのか。

## 参考

– [DAOの悪夢 – PHPでデータベースを扱う(1)](http://blog.tojiru.net/article/273342235.html)
– [【PHP】DAOとはなにか](https://forse.hate

元記事を表示

VaccImage SQLを如何にHTML側に反映させるか

今回は、部署の入力ページについて。
患者さん、職員、職員家族などの分類のみならず。
外来なのか、入院ならどこの病棟なのか、どこの部署の所属職員なのか。
`分類`というものが必須です。
そこで、下記を作りました。

“`
CREATE TABLE departments (

dpts_symbol VARCHAR(120) NOT NULL,
dpts_name VARCHAR(120) NOT NULL,
PRIMARY KEY(dpts_symbol)

);
“`

簡単ですね。
部署のシンボルをプライマリーキーにしました。
患者登録のページから、当然ながら患者のみならず職員について、部署を入れないといけませんよね。
部署については、下記SQLにあります。

“`

select * from departments;
+————-+———–+
| dpts_symbol | dpts_name |
+————-+———–+
| gairai | 外来 |
| k

元記事を表示

LaravelでのAmazonSES/SMTP設定

# 経緯
LaravelからAmazon SESへの接続がタイムアウトしたりエラーになって試行錯誤したときのメモです。
環境は下記の通り。SESはAPI経由でもよいですが、ひとまずSMTPで設定してみることにしました。

– 基盤構成: EC2 → Amazon SES
– PHPフレームワーク: Laravel 8.x

# 試行錯誤してるときに出たエラーたち
いずれもポートの設定などを誤っているために出力されていたものです。

“`
(Swift_IoException(code: 0): Connection to tcp://email-smtp.ap-northeast-1.amazonaws.com:465 Timed Out at /***********************/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:166
“`

“`
ERROR: Expected response code 220 but got code “”, with me

元記事を表示

テスト投稿

#Markdownの練習

“`php:php


“`
[KEILOG](https://keislog.com/)

元記事を表示

画像のアップロード 参考サイト

https://webukatu.com/wordpress/blog/20969/

https://gray-code.com/php/save-the-upload-file/

https://gray-code.com/php/get-kind-of-file/

https://mugenweb-note.com/web/php/php_image_resize

https://uxmilk.jp/14317

https://hirokun-notepad.com/210517-tumiage/

https://gray-code.com/php/make-the-board-vol19/

https://gray-code.com/php/make-the-board-vol20/

https://freeks-japan.blog/php/4/16/

https://yu-nix.com/blog/2020/9/24/php-file-get-contents/

PHPでmove_uploaded_file関数を使う方法【初心者向け】

https

元記事を表示

switch文とif文の違い 参考サイト

すぐに理解できる!PHPでswitch文を使う方法【初心者向け】

##switch文とif文の使い分け方
switch 文を使うか、if文を使うかを迷ったときには、条件がどうなっているかで使い分けます。

###if 文に向いている条件
変数の値がある特定の値よりも大きいかったり小さいさかったりなど、条件に幅がある時
条件に変数が複数使われている時
複数の条件が組み合わされている時
分岐する処理が2つしかない時

###switch 文に向いている条件
変数がある値になる時に処理を分ける。しかも、その値が3つ以上と多くの種類になっている時

https://blog.codecamp.jp/programming-php-switch-or-if

元記事を表示

ファイル読み込み時 PHP の include と require の使い分け

参考サイト

https://uxmilk.jp/15560

###◎include文とrequire文の違い

「ファイル読み込み失敗したときにエラーで終了するか警告で継続するか」という点。

どちらも対象ファイルを読み込みますが、この時ファイルが存在しない、関数で構文エラーなどが起こった場合、それぞれ以下のような挙動となります。

* require:致命的なエラー(Fatal)となり処理を停止
* include:警告(Warning)となり処理は継続

###◎includeとrequire 使い分けの判断基準

どちらが良いかは、実装する内容によって適切な対応が異なると思います。以下に使い分けの例を挙げてみます。

####例:コア部分や後の処理に影響する場合はrequire

例えば、バッチ処理など致命傷なエラーにより後続処理の影響が発生する場合には、処理を中断させたいのでrequireを使用します。

#### 例:画面処理などの場合はinclude

画面表示などで表示処理のための計算処理でエラーとなるような場合は、requireだと画面が全く表示されなくなるのを避

元記事を表示

件数をカウントしたいときの方法 php sql

参考サイト

https://qiita.com/mpyw/items/b00b72c5c95aac573b71

上記サイトの参考箇所

https://qiita.com/mpyw/items/b00b72c5c95aac573b71#select-%E3%81%A7%E8%A9%B2%E5%BD%93%E3%81%97%E3%81%9F%E8%A1%8C%E6%95%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B

基本的に,以下の方法に従います.

* 件数だけでなく結果セットも一緒に欲しい場合, `PDOStatement::fetchAll` メソッドで一気に配列として取得し,それに対してPHPの `count` 関数を使う.

* 件数だけが欲しい場合は, `SELECT COUNT(*) WHERE …` といったクエリを発行し,その結果を `PDOStatement::fetchColumn` メソッドで得る.

これらの方法が最も推奨されますが,他の方法が無いわけではありません.以下に補足説明を示します.但しこ

元記事を表示

配列処理 for foreach while 使い分け

###参考サイト

配列処理の使い方-for?foreach?それともwhile?-

## 基本
for、foreach、whileのどれを使っても配列処理はできますが、それぞれの長所を生かした書き方をすると直感的にわかりやすくあとで見返したときに可読性が良くなる。その結果バグが混入しにくくなる。

###◎for文

####for文の得意なこと
for文は「繰り返し回数が定まっているとき」が得意

####for文の苦手なこと
回数が一定に決まらない処理

###◎foreach文

####foreach文の得意なこと
foreach文は「連想配列の処理が得意(絶対的な強さを誇る)」です。

####foreach文の苦手なこと
指定回数を繰り返す必要があるときや、空の配列を指定数作りたいとき、そもそものデータが配列ではないときは使えません。
また、処理を開始するときに分解したいデータが配列でない場合はNoticeが発生します。
(Noticeの発生を防ぐために条件文を追加すると安全)

###◎while文

####while文の得意なこと
whi

元記事を表示

PhpMetrics実行時に出力される指標の定義、数字の見方について調べてみたメモ

こういうやつです。

~~~
LOC
Lines of code 13930
Logical lines of code 7666
Comment lines of code 6264
Average volume 73.08
Average comment weight 40.21
Average intelligent content 40.21
Logical lines of code by class 20
Logical lines of code by method 10

Object oriented programming
Classes

元記事を表示

reason: Address already in use でPHPのサーバーに接続できない

###手順

1.使用しているPID番号(プロセスID)を確認

“`
ps ax | grep php
“`

ターミナルで上記のように入力すると、現在しているポートが表示される。

“`
[vagrant@localhost My_php]$ ps ax | grep php
8241 pts/0 S+ 0:01 php -S 192.168.33.10:8000
“`

※一番左の数字が「PID番号」なので、上記の例だと「8241」

2.既に解放しているプロセスを終了する

“`
kill PID番号
“`

3.再度、php -S 192.168.33.10:8000 を実行

###参考サイト

https://qiita.com/tetsu-upstr/items/5a5eac186dc4ff0a883e

元記事を表示

laravel validation、第2引数を使ってのメッセージ設定

【環境】
windows10 64bit
php 7.4.27
laravel 8

こんにちは、今回はこんなケースです。

まずは画像を見てもらいましょう。
![case1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1203654/75fd21a5-0890-9751-bf9a-c05fa8a48b0f.png)

こんな感じで設定を行って、
__➀ プレーヤまたはコンピュータのどちらにもチェックが入ってない場合にエラー
➁ 名前の欄が未記入ならエラー__ 
という内容を、laravelのvalidationを使って表示させようとするという内容です。

完成図はこんな感じ
↓   ↓   ↓   ↓
![case2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1203654/5bf868dd-b408-5693-0110-89a613b7dd9e.png)

最初はこんなもん簡単にできるやろうと思ったが意外な

元記事を表示

Laravel 超初心者講座~ディレクトリ構造について~

Laravelの超初心者向けの内容です。
本記事は、普段LaravelやVue.jsを使っているWeb系エンジニアが「Laravelをこれから触ってみたい!」、「まずは簡単な掲示板を作れるようになりたい」と考えている方へ向けまとめた記事です。
とにかくわかりやすく短時間で読めることに重点を置いているため、細かい説明等は割愛していきますのでご了承ください。

Laravelの全体像を掴んでいただくため、ディレクトリ構造(フォルダの構成)について解説していきます。

## Laravelのディレクトリ構造
まずLaravelアプリケーションのディレクトリ構造は下記のようになっています。
下記ディレクトリについて、1つ1つざっくりと解説していきます。

“`
application
-app
-bootstrap
-config
-database
-public
-resources
-routes
-storage
-tests
-vendor
-.env
“`
#### app ディレクトリ
`アプリケーションの柱!最重要!`
このディレクトリは、「コントロ

元記事を表示

【PHP】認証と認可のちがいとJWTの検証について

Web APIを扱う場合、認証/認可についてある程度理解していないと正しく扱うことができません。
[弊社](https://www.milogos.co.jp/)の非エンジニアから質問されたことをきっかけに、自分自身の整理も兼ねてまとめておきます。
少しだけLINEログインと絡めて説明します。

# 認証/認可とは

– 認証 Authentication
– それが誰であるかを確認すること。
– 認可 Authorization
– 何らかの情報に対するアクセス権限を確認すること。

例えると、認証は「証明書による本人確認」、認可は「チケット(切符)の発行」です。
2つを分離して考えると、認証は本人確認であってそれによって何が行えるということはなく、認可は権限があるというだけでそれを使うのが誰かには関与しません。

![0d3470eb-063c-4220-91ac-890d8952b897.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141823/fa8ba5e6-502f-0

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事