PHP関連のことを調べてみた2020年09月08日

PHP関連のことを調べてみた2020年09月08日

Laravel オリジナルの設定ファイルを作成してコントローラで呼び出す

# 目的

– Laravelの設定ファイルへの追記方法と設定ファイルの読み込み方法をまとめる
– ※本説明でいう設定ファイルとは.envファイルではなく、`アプリ名ディレクトリ/config`直下にあるファイルを指す

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2GHzクアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHPバージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravelバージョン | 7.0.8 | commposerを用いてこち

元記事を表示

数値バリデートがめんどくさい

“`PHP
$id = intval($_REQUEST[‘id’] ?? 0);
“`

元記事を表示

phpで365日+曜日を出力する

今日の日付を出力するには下記のように記述する。

“`day.php

“`

“n“は月を取得する
“j“は日付けを取得する
“D“は曜日を英語の曜日(頭3文字)を取得する

timezoneの設定をしていなければ、直接記述することで変更できる。

“`day.php

“`

ここで、1日後の日付+曜日を取得するにはどうすれば良いか考える。

“`day.php

“`

これで1日後の日付+曜日を取得できた。

※“strtotime“とは“String to Timestamp“の略で
文字列をTimestamp型に変換できるファンクションのこと。

“+1day“なら1日後
“-1day“なら1日前
“+365day“なら1年後

とする

元記事を表示

fitbitのapi連携と集中力判定(PHP,Javascript)

#記事の概要

作成したポートフォリオの解説です。以下をまとめています。

– 背景
– 主な機能
– 開発手順
– 工夫点
– 課題

#背景
「ポモドーロ・テクニック」という時間管理術が話題になっており、そのためのアプリなどもあるが、実際に集中しているかどうかを判断するのは単純なポモドーロタイマーだけでは難しい。
今回は心拍数と集中力の関係に着目し、集中力を判定するアプリを作成しました。

#スペック

言語
PHP 7.4.2
javascript
DBMS
MySQL 5.7.26
開発環境
MacOS Catalina 10.15.5
MAMP 5.7
ライブラリ
jquery
フレームワーク
Bootstrap 4.2
バージョン管理
Git 2.24.3
元記事を表示

AWSを使ったWordPress環境構築(単一構成)

### 事前準備
EC2インスタンスを作成

### SSH接続

~~~bash
$ssh -i .ssh/key.pem ec2-user@public_ip
~~~

※key.pemはssh_key

※public_ipはインスタンスのpublic_ip

### Apacheのインストール

* Apachのインストール・起動

~~~bash
$ sudo yum install -y httpd
$ sudo systemctl start httpd
~~~

## MySQL5.7のインストール

MySQL Yum RepositoryからMySQL5.7をインストールする。

* Yumリポジトリの情報のインストール

~~~bash
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
~~~

* MySQL8.0リポジトリを無効にし、MySQL5.7リポジトリを有効にする

~~~bash
$ sudo yum-c

元記事を表示

PHPのソースコードからクラス図を自動生成

#PHUMLでPHPのクラス図を画像で作成する
PHPSTORMにはクラス図を作成してくれる機能がついているそうですがお家環境にはPHPSTORM入っていないのでクラス図を自動生成してくれるツールを探していてphumlというツールを発見しました。
環境はUbuntu18.04LTSです。

##インストール
https://github.com/jakobwesthoff/phuml
からダウンロードして適当な場所に展開しましょう。
僕は~/.localにphumlとして展開しました。
これで実行できるようになりました。

“`
$php ~/.local/phuml/src/app/phuml
phUML Version 0.2 (Jakob Westhoff )
Usage: phuml [-h|-l] [OPTIONS] [PROCESSOR OPTIONS] …

Commands:
-h Display this help text
-l

元記事を表示

【Laravel】バッチ処理、Cronのタスクスケジュール実行まで

今日も張り切って備忘録。
バッチの理解を深める為、簡単な処理を実装してみた。

## 環境
PHP 7.3.8
Laravel 6.18.35

## バッチ処理を書く
Userテーブルに登録されているユーザー数を取得するバッチを作成する。
まずコマンドクラスを生成する。

“`
php artisan make:command UserCount
“`
コマンドを実行すると、ファイルがapp/Console/Commands/の直下に作成される。

“`php:UserCountCommand.php

元記事を表示

PHP_UMLの–helpをgoogle翻訳で翻訳

オブジェクト指向の勉強をしたくなりました。PHPを普段使っているのですが、ツールがあまり見つからずPHPSTORMなら自動生成してくれるみたいだけど、お家の環境にはないのでググったところPHP_UMLというツールを発見。
しかし使い方がわからない&英語わからないので翻訳することにしました。

##↓もっと便利なツールを見つけて記事にしました。
クラス図を作成するもっと便利なツールみつけて記事にしました。
https://qiita.com/tdera/items/1a0dc91d37a89c22d4ba
コチラのほうが参考になるかもです。。

—-

これを使って既存フレームワークの解析をしていきたいです。

#PHP_UML
結構古いツールみたいです。。でもちゃんと動いてくれればOK。
https://pear.php.net/package/PHP_UML

##-o directory
出力ディレクトリパス、またはファイル名(提供されない場合、XMIコードは画面に印刷)

##-f format, –format=format
出力フォーマット: “xmi”(デフォルト)、

元記事を表示

セッションハイジャック対策

#はじめに

最近、セキュリティの勉強をよくすることが多くなったのでそのことについて記事にして皆さんに分かりやすく教えることが出来たらと思い記事にさせて頂きます。今回は、セッションハイジャックについて説明させて頂きます。

#目次

1. セッションハイジャックとは
2. セッションハイジャック種類
3. セッションハイジャック対策
4. さいごに

# セッションハイジャックとは
まず、最初にWebはスタートレスに出来ているのでECサイトやログイン機能があるサイトでは、さっきこのサーバーに来た人物はAさんだと判断することが出来ません。そのために、考案されたのがセッションという機能です。(実際には、Cookieといった機能が最初に出来たのですが、セキュリティのことを考えてセッションが開発されました)AさんにはこのセッションID、BさんにはこのセッションIDと割り振ることで判断しています。

実際にPHPでセッションIDを見たい場合は、このように表示することで確認することが出来ます。

“`php

元記事を表示

Twitterでかっこよくソースコードを表示するCarbonを君は知っているか。

こんにちは、現在フリーのweb制作者として活動していますしょーごと申します。

さてみなさん、`ソースコードのハイライトは見ていて気持ちが良いですよね。`

VSCodeのコードハイライトだと、class名が緑色になるのが好きだったりします。

![スクリーンショット 2020-09-07 20.47.45.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472701/f46661a3-794b-c78c-b139-8176cc054f7c.jpeg)

これに慣れてしまうと、もう質素なメモ帳など使えなくなりますよね。

しかし、Twitterにはエディター機能はないので、ツイートしたくても**そのままソースコードを貼り付けると、すごく味気なくなります**(文字数制限もきつい)

![スクリーンショット 2020-09-07 20.51.48.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472701/05d9eb69-f

元記事を表示

Laravelでuniqueの対象から自分自身の値を外す

## 問題
– ユーザー情報の編集や更新をするフォームを作ってバリデーションを設けた
– ユーザー名メールアドレスに`unique`を適用した
– `unique`の対象以外の情報を変更したいのに、`unique`に引っかかってしまって、その先に進めない

### 例

この職種の`DELETE_FLAG`を変更したいのに、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218398/4133ed85-cd7e-562a-8ca9-67fb01577635.png)

`unique`が適用されている`職種名`のエラーが出てきてしまう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218398/7e27c02d-a9c9-66d6-a800-5cae3d62f2c9.png)

### コード
現在のコード、バリデーションはこのような状態

“`Works/EditCheckCont

元記事を表示

【PHP】unset、isset、header

PHPについて学習内容を備忘録としてまとめます。

#unset
定義した変数の割り当てを削除する関数。不要になった配列を削除することも可能です。
例えば、配列で要素を削除したい場合にこのように記述します。

“`php
$ary = array(0,1,2,3,4);
unset($array[3]);

“`
上記のように定義すると4番目の要素『3』を削除することができます。

#isset
引数に変数にすることができ、変数に値がセットされている場合にtrueを返します。
もし値がセットされていない場合にはfalseを返します。

たとえば下記のようなコードのような分岐処理を行うことができます。

“`php
if(isset(x)){
xに値がセットされている場合
}
else
{
xに値がセットされていない場合
}

“`
セッションに値がポストした際に指定のパスに飛ばすなどの動作をすることも可能になります。

#header
HTTPヘッダを送信する関数になります。
ある処理を終えた後に指定のパスに飛ばしたい時などに使用されます。

下記のように定義すると指定

元記事を表示

【Laravel】foreachで回したセレクトボックスの初期値を変数で設定する

## 概要

例えばキャラクターAの職業を変更したいと仮定する。編集ボタンを押すとキャラクターAの情報が表示され、職業はセレクトボックスで選択できる。セレクトボックスの中身は `foreach` を使って、コントローラから持ってきた職業一覧である `$jobs` の中身を表示するが、その初期値をキャラクターAの変更前の職業である `戦士` にしたい。

## リレーション

– **charactersテーブル**と**jobsテーブル**がある。
– charactersテーブルには `jobs_id` というインデックスがあり、リレーションを組んでいる。
– jobsテーブルの `name` カラムには職業が入っている。魔術師とか竜騎士とか(まあなんでもいい)。セレクトボックスにはこの職業が羅列されることになる

## セレクトボックス

基本として、これでセレクトボックスに『jobsテーブルに入っている職業』が羅列される。

“`php:edit.blade.php

OTHERカテゴリの最新記事