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

PHP関連のことを調べてみた2020年05月28日
目次

PHP 配列に格納された連想配列に要素を追加する

# 目的

– 配列に格納された連想配列に値を追加する際に若干詰まったので方法をまとめる

# 前提情報

– 下記のリンク先で後述するコードの振る舞いを確かめる。
– [https://paiza.io/ja/projects/new](https://paiza.io/ja/projects/new)

# 具体例

– 連想配列が格納された配列`$tests`を定義し、`$tests`の末尾に連想配列を追加する処理を下記に記載する。

“`php
‘aaa’,
‘str_2’ => ‘bbb’,
‘str_3’ => ‘ccc’,
]
];

//追加する連想配列を記載する
$tests[] =
[
‘str_1’ => ‘ddd’,
‘str_2’ =

元記事を表示

SQLで複数テーブルをDELETEする方法

ユーザーアカウント削除時に削除されたアカウントの投稿内容も一緒に削除したい。
そんな時に使用したコードです。

それぞれのテーブルが以下となります。

users
id name
1 鈴木
2 山田
3 佐藤

posts
id user_id message
1 2 こんにちは
2 1   おはよう
3 3   こんばんは

実際のSQL文は以下になります。
DELETE users,posts FROM users LEFT JOIN posts ON users.id = posts.user_id WHERE users.id=?’

コードの読み下し文としては
削除対象のテーブルはusersとposts、usersのidとpostsのuser_idが一致したものを結合。
結合した後のデーターにてusersのidが後程代入された値と同じものを削除して下さい、となる。

元記事を表示

Xamppでポート競合を防ぐ方法

Xamppでポート競合を防ぐ方法をご紹介します。

##作業環境
OS:Windows 10
エディション:HOME
バージョン:2004
Xampp:バージョン7.4.6

※Xamppのインストール方法はこちらで解説しています。
[【環境構築】Windows10にXAMMPをインストールする方法](https://qiita.com/neneta0921/items/46b2b974ecc6075acb3c)

##ポートとは
>ポートはよく「扉(ドア)」に例えられるます。
IPアドレスが住所「家」であれば、ポートは外に出る・外から入る「扉(ドア)」に該当します。

>多くのホームページでインターネットはIPアドレスで通信を行っていると記載されていますが、実際には「IPアドレス+ポート番号」で通信を行っています。

引用元:[用語集 「ポート(PORT)とは?」](https://www.cman.jp/network/term/port/)
##Xamppでポート競合が起こる原因
1つのプログラムにつきポートは1個しか利用できない仕組みとなっているので、Xamppが他のプログラ

元記事を表示

【Git】Gitの使い方を考えてみた

# はじめに

この記事では
バージョン管理システムのGitを
職場で使うことを想定して
Gitの使い方についてまとめた記事です。

ベストプラクティスや間違いがあれば
それなりに良い方法で書き直していきます。

——————————–

# ベテランでもGitが扱えるとは限らないらしい

とある人に聞いたところによると
デキる技術者でも案外、
変更履歴のステージングやアド、コミットができないということらしい。
筆者は去年ぐらいからGitをプライベートで使い始めた一般の誤家庭の人

今度、新人君が配属されるということなので
彼にはちゃんと基本コマンドを覚えてもらいたいというオモイと
ちゃんとコードレビューできる体制と育てる環境を確立するという目標がある。

そうしたオモイや目標を実現させるためにGitの基本コマンドについてまとめてみました。
実際に職場に導入してもいないので
いざ使ってみるとこれもあれも必要となるかもしれないけど
とりあえず基本はおさえようというスタンス。

——————————–

元記事を表示

WindowsでPHPから入力したデータをExcelに出力する

## PHPからデータをExcelに出力する手順
### composerの入手

**`composer`は`PHP`のパッケージ管理ツール**

もっと簡単に言えば、何かパッケージをインストールするときに、それを動かすのに必要な他のパッケージも一緒にインストールしてくれるというもの。

`PHP`から`Excel`にデータを出力するには、`PhpSpreadsheet`というパッケージが必要になる。
それを入手するためにまず、この`composer`をPCで使えるようにする。

[Introduction – Composer](https://getcomposer.org/doc/00-intro.md#installation-windows) から `Composer-Setup.exe`をダウンロードして、実行。
インストールの詳しい手順は[Composerインストール手順(Windows)](https://qiita.com/mikoski01/items/266469535e860312145d) を参考に。
インストール完了後、コマンドプロントで`composer

元記事を表示

高知県のWEB業社はあまりコールバック使わないですか?

### コールバック使っている?
高知県のWEB業社はあまりコールバック使わないですか?
正直な所、WEB業社の零細企業や中小企業で
コールバック使用しているソースコードを見かけたことが有りません。
かなり少ないと感じます。今までコールバック使っているコードを目にしたことがないです。
間接的にワードプレスなどで使用している事はあるかもしれないけれど・・・。
それ以外は見たことがないです(´・ω・`)。
**※高知県に支店を持つ県外企業やソフトウェアやアプリを開発される企業は除く。**

ちなみに下記コードを実行するとこのような結果になります。
http://taoka-toshiaki.com/qiita-no4/

“`php:index.php

元記事を表示

SessionとCookieの使い分け

##はじめに
何をどっちに持たせたら良いかわからなくなったので、備忘録として残します

##Sessionとは
1. はじまりからおわりまでの、一連の行動
1. Webサイトにログインアクセスしてそのサイトから出て行くかブラウザを閉じるまでが1セッション
2. sessionスタート時にsession idを発行し、Cookieへ保存する。このidで通信相手(ユーザ)の判別をする。
1. サーバー側にデータを保存する仕組み、またはそのデータ
2. Cookieより改ざんの可能性が低いので、機密情報を保存したい場合はこっち
1. 会議、会期、学期などを表す英単語

##Cookieとは
1. ブラウザ側にデータを保存する仕組み、またはそのデータ
3. ブラウザでCookieへの保存を拒否した場合保存されない
2. 簡単に盗聴・改ざんできるので、機密情報は保存させない
3. 語源は諸説あるようだが、フォーチュンクッキー(fortune cookie:運勢を書いた紙が入ったクッキー)から来ている等

##おわりに
Sessionもすごい安全って

元記事を表示

Laravel MySQL 既に存在するテーブルにカラムを追加する

# 目的

– rollback時の記載を毎回間違えるのでしっかりとまとめる

# 実施環境

– ハードウェア環境(下記の二つの環境で確認)

| 項目 | 情報 | 備考 |
| — | — | — |
| OS | macOS Catalina(10.15.3) ||
| ハードウェア | MacBook Air (11-inch ,2012) ||
| プロセッサ | 1.7 GHz デュアルコアIntel Core i5 ||
| メモリ | 8 GB 1600 MHz DDR3 ||
| グラフィックス | Intel HD Graphics 4000 1536 MB ||

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro

元記事を表示

【環境構築】Windows10にXAMMPをインストールする方法

XAMMPのインストール方法をご紹介します。画像多めです。

##作業環境
OS:Windows 10
エディション:HOME
バージョン:2004
##XAMPPとは
XAMPPとは
X → Cross platform(MacでもWindowsでもLinuxでも利用できる)
A → Apache(Webサーバー)
M → MariaDB(データベース)
P → PHP(プログラム言語)
P → Perl(プログラム言語)
の略で、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたものです。
つまり、XAMMPを1つをインストールするだけで、アプリを作成する環境が構築できるのです。
PHPはブラウザだけでは動かないので、PHPを動かすために導入しています。
##XAMPPのインストール方法
###①公式サイトからダウンロード
下記の公式サイトにアクセスします。
https://www.apachefriends.org/jp/index.html
![202005262113.png](https://qiita-image-store.s3.ap-no

元記事を表示

システム日時を変更してcurlで証明書検証エラーが出たら–insecureをつける

タイトルの通りです。[結論はこちら](#どうやって解決したか)

# 問題が発生した状況
PHPUnitを利用して、以下のようにexec()でテスト対象のAPIを叩くという内容のテストを作成していました。(デバッグ用のオプションは省略->[こちら](https://qiita.com/ryuichi1208/items/e4e1b27ff7d54a66dcd9)が参考になります)

“`sh
curl -X POST https://[テスト対象APIのURL] -d [POSTするデータ] > [出力先ファイル]
“`

そのテストにおいて、システム日時を変更する必要があったので、

“`sh
date -s “2020-01-01 00:00:00”
“`

とコマンドを実行してコンテナ内のシステム日時を変更する処理を追加しました。
すると、以下のようなエラーが出ました。

“`sh
curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details he

元記事を表示

PHPWordテンプレートに改行を含む文字列をセットする

# やりたいこと
[PHPOffice/PHPWord](https://github.com/PHPOffice/PHPWord) のテンプレートに、改行を含む文字列をセットしたい。

# 解決方法
改行文字を `` に置換してセットする。

“`php
“bar\nbuz\n”,
];

foreach ($rawValues as $key => $value) {
// 改行文字を に置換する
$processedValues[$key] = preg_replace(‘/\n/’, ‘‘,

元記事を表示

誰でもなれる自宅警備員入門(IoT)

記事をご覧くださりありがとうございます!
初めまして。AI/IoT分野のプロフェッショナルを目指して修行中の、のぶたんです。?

今回はESPマイコンやセンサーなどを駆使すると遠隔でリモコン操作したり、お家の様子を監視できるので**みんな自宅警備員になれるゾ**とことについて取り扱っている記事です!

#作った基板①
必要な部品
①赤外線LED←リモコン操作用
②抵抗
③CDSセル←部屋の明るさ監視用
④圧電ブザー←起動音・操作音出力用
![IMG_20200526_162838.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/e46f01ec-f9a3-2bb9-2897-d53ad991c275.jpeg)

#作った基板②
必要な部品
①圧力センサー←ドアの開閉状況監視用
※画像は省略(基板①のようにESPマイコンにセンサーをつないだだけ)
#作った基板③
必要な部品
⑥水温センサー←カメの水槽温度監視用
※画像は省略(基板①のようにESPマイコンにセンサーをつないだだけ)

#実

元記事を表示

ElasticbeanstalkでAmazon Linux 2のプラットフォームブランチを選択するとebextensionsが動かない

AWS BeanstalkでPHPプラットフォームを選択するとき、最新のプラットフォームブランチだとAmazon Linux2を使うようになっている。
Amazon Linuxのときに使っていた、ebextensionsがそのままだと動かなかったのを書き換えたのでメモ。
`/var/app/ondeck`で動いていた部分を変更。

一応ログを見る限り、composer installは自動で走っているみたいなので、00-composerはいらないかもしれないと思う。
ここのコマンドのエラーログは、`/var/log/cfn-init-cmd.log`に出力される

変更前

“`yaml:.ebextensions/*.config
commands:
01-updateComposer:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update

option_settings:
– namespace: aws:elasticbeanstalk:application:env

元記事を表示

Laravel リクエストログの場所

# 目的

– ログの場所を知ったため忘れない様にメモする。

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いて導入 |

# ログの場所

– ロ

元記事を表示

学習記録PHP#3(クラス)

#PHPにおける関数とクラスについて
##クラスの概要
###クラスとは様々な処理を簡単に行うための道具。
PHPの場合は関数とクラスが混在している。
現在、追加されているのはクラスが主流。
###クラスの中身は2つ
プロパティ:何かを記録するもの(変数)
メソッド:何かの処理を行うもの(関数)
###クラス:設計図
設計図の中には変数(プロパティ)と関数(メソッド)が入っている。
###クラスとインスタンス
クラスとは設計図。
インスタンス(本体・実体)/オブジェクト(物体)
クラスを使う際はクラスから作られたインスタンスを使う。
インスタンスは複数作成可。
###インスタンス化
$変数名 = new クラス名();
インスタンス化:クラスから実際に作られたインスタンスを変数に代入すること。
##クラスの使い方

$ins1 = new Personal();
$ins1 -> name = ‘A太郎’;
$ins1 -> age = 20;
->:アロー関数

インスタンスが代入された変数のデータ型はstring型となる。
print(gettype(変数));でチェック。
#

元記事を表示

【初心者向けハンズオン】WindowsにDockerでPHP/MySQL/Apache環境構築(第2回:PHP動かすところまで)

# 概要

 前回の記事はこちら:

 新人もベテランも本当にエンジニアによくある、「開発環境建てるのめんどくさい問題」を解決する糸口を模索していました。そこで行き当たったWindows環境でDockerを使って開発出来るようにする、という着地に対してアプローチしていくハンズオンです。
 1回1時間程度の作業時間でやるルールにして、記事は細切れに書いて行くスタイル。あと参考にさせていただいた記事はこちらです。
 ※https://qiita.com/hirosnow/items/cbe2a90ba1c6921fea1a

# 目標
* PHP/MySQL/Apacheで古き良きWEBアプリケーションの開発環境を作る
* つくった開発環境を他の人に配布できるようにする
* ↑の「配布された人が簡単に開発環境を作れる手順をまとめる」ところまでがゴール

では行ってみましょう。

# 本日の作業内容
## 作業ディレクトリの作成
参考にした記事に従って、「C:\Users\あなたのPCのユーザー名\home」というディレクトリを作成しました。
※参考との相違点①:「\work」になっていると

元記事を表示

【初心者向けハンズオン】WindowsにDockerでPHP/MySQL/Apache環境構築(第1回:DockerDesktopを入れるまで)

# 概要

 新人もベテランも本当にエンジニアによくある、「開発環境建てるのめんどくさい問題」を解決する糸口を模索していました。何しろ、自分と共通の開発環境つくってもらうのがめんどくさくて仕方がない。
 で、そういった課題への解決策としては当然のように「Docker」が提唱されることになるわけです。
「でも自分の開発環境Windowsなんだよなあ」
 とはいえ行けるかどうか半信半疑で調べてみたら、結構参考記事が上がっていたので「よしじゃあこれも備忘つけながらやってみるか」と思い立った次第です。

 同じく例によって、1回1時間程度の作業時間でやるルールにして、記事は細切れに書いて行くスタイル。長くなると読む側もダレるかなあと思ったというのもあります。

# 目標
* PHP/MySQL/Apacheで古き良きWEBアプリケーションの開発環境を作る
* つくった開発環境を他の人に配布できるようにする
* ↑の「配布された人が簡単に開発環境を作れる手順をまとめる」ところまでがゴール

では行ってみましょう。

# 作業内容
## dockerインストール
こちらからインストール → htt

元記事を表示

PhpStorm pstorm コマンドでターミナルからプロジェクトを開く

PhpStorm をインストールすると `pstorm` コマンドも一緒にインストールされていました。(今日知った)

“`shell-session
$ which pstorm
/usr/local/bin/pstorm
“`

“`shell-session
$ pstorm <プロジェクトのパス>
“`

でプロジェクトを開くことができます。
カレントディレクトリのプロジェクトを開く場合は下記のコマンドで開きます。

“`
$ pstorm .
“`

## 参考

– https://pleiades.io/help/phpstorm/working-with-the-ide-features-from-command-line.html

元記事を表示

Mac Laravel 7 Authを用いたユーザ登録 ログイン ログアウトなどの機能を作成する ver 2.0

# 目的

– すでにQiitaに記事として投稿してある[Mac Laravel 7 Authを用いたユーザ登録 ログイン ログアウトなどの機能を作成する](https://qiita.com/miriwo/items/5d4a94e8d2aa06b61530)よりも簡単に機能を実装できる方法を学んだのでまとめる。

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用

元記事を表示

PHP インターフェースの検証

インターフェースとはなんなのか、何も知らないところからスタートします。
公式ドキュメントから引用。
“`
オブジェクトインターフェイスにより、あるクラスが実装する必要があるメソッドの種類を、
これらのメソッドの実装を定義することなく、指定するコードを作成できるようになります。
“`

では、実際に書いていきます。

1.基本

理解するのに時間がかかりました。

“`test_sample.php

“`

“`classTest.php

元記事を表示

OTHERカテゴリの最新記事