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

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

オブジェクト指向 メンバ関数にメンバ変数を代入する方法

#はじめに
メンバ関数にそのクラス内で作成したメンバ変数を引数にしようとした時に構文エラーがでたため、どのようにしたらいいのかを考えた。

#したこと
TodoValidationクラスでcheckメソッドを作成し、そのメソッドをcontrollerで呼び出そうとしたコードが以下である。

“`php
public function check($this->str)
{
// 空文字チェック
if (empty($this->str)) {
return $_SESSION[‘err_msg’] = ‘入力してください’;
}
}
“`

このメソッドをcontroller側で呼び出そうと以下のコードを書いた。

“`
$toDoValidation->check($this->product_name);
“`

が、フィールドに値を入力してPOST送信してもセッション変数のエラーメッセージは空になっていた。

#原因
メンバ関数の引数にメンバ変数は代入できない決まりがある。
なので

元記事を表示

ページ遷移時にオブジェクトを自動送信する

JavaScriptで次のようなことをやりたい。

1. サーバーからオブジェクト(状態)を取得する。認証付き
2. ページ遷移時、オブジェクトは自動的にサーバーに投げられ保存される

コードで表すと

“`js
const state = await autosave_state(url, id, password)
“`

## 実装コード

JavaScript側。IE非対応

“`js
async function autosave_state(url, id, password){
const r = new FormData()
r.append(‘r’, JSON.stringify({id, password}))
const http = await fetch(url, {method:’POST’, mode:’cors’, credentials:’include’, body:r})
const state = await http.json()

if(!autosave_state[url]){

元記事を表示

30歳未経験でのジョブチェンジ -ふれえむわあく編-

**もうまぢムリ、ザセツしよ・・・**

プログラミングスクールのカリキュラムを学び始め、3週間程度が経っています。
その3週間で、色々な勉強をしました。

・html
・CSS
・Bootstrap
・ターミナル(AWS)
・PHP
・MySQL
・Git/GitHub

そこまで深くやっていないとは思いますが、大体理解は出来ましたし、そこまで詰まることもありませんでした。
簡単なWebアプリケーション作成までのチュートリアルもこなせました。

**ですが、現在勉強しているLaravelが理解出来ません。**

ふれえむわあくってなにそれ?おいしいの?:anguished:
MVCモデルとか、その構造がどうたらこうたらというのは分かる、分かるが・・・!やっぱり分からない・・・!
ファイルフォルダの数と、その中のファイルが多すぎて今何をしているのか分からないのが非常に厳しいです。

**昨日、初めての記事を投稿したのも、こやつからの現実逃避でした。**
私は大学生の時に物理学を専攻していましたが、まだ物理学の方が楽なのではないかと思ってしまいます。

明日はメンターとの面談があるので相

元記事を表示

xdebug インストール

## ダウンロードページ

[:floppy_disk: ダウンロード (xdebug.org)](http://www.xdebug.org/download.php)

### php-cli 向け
“`
PHP 7.4 VC15 (64 bit) (SHA256: ***)
PHP 7.4 VC15 (32 bit) (SHA256: ***)
“`

## apache module 向け
“`
PHP 7.4 VC15 TS (64 bit) (SHA256: ***)
PHP 7.4 VC15 TS (32 bit) (SHA256: ***)
“`

上記からダウンロードしたものを extension_dir にいれる

以下を追記

“`ini:php.ini
[xdebug]
zend_extension=xdebug
;xdebug.coverage_enable=1
;xdebug.default_enable=1
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir=”/tmp”
;xdebug

元記事を表示

Googleサービスアカウント取得の際に発行されるjsonファイルの認証情報を.envに設定。

下記サイトを参考にサービスアカウントを取得した際に
認証キーが入ったjsonファイルをダウンロードします。

https://sukohi.blogspot.com/2017/05/laravel-google.html

“` hoge.json

{
“type”: “xxx”,
“project_id”: “xxx”,
“private_key_id”: “xxx”,
“private_key”: “xxx”,
“client_id”: “xxx”,
“auth_uri”: “xxx”,
“token_uri”: “xxx”,
“auth_provider_x509_cert_url”: “xxx”,
“client_x509_cert_url”: “xxx”
}

“`

GoogleカレンダーAPIにて認証を行う際のコード

“` googleCalendarService.php

$client = new \Google_Client();
$client->setApplicationName(

元記事を表示

PHPでDBの外部キー制約を無視する方法

PDO経由でMySQLの外部キー制約を無視する方法です。
データ移行をするときに使いました。

“`php
$pdo = new PDO(‘mysql:host=localhost;charset=utf8’, ‘root’, ”);
$pdo->query(‘SET foreign_key_checks = 0’);
“`

元記事を表示

MAMP Pro5でPHPのバージョン操作する方法

#私のスペック
ウェブエンジニアのバイトを初めて、数ヶ月のへっぽこ。

忘れん坊なので、わかったことを忘れないようにQiitaに残しておくことにします。

#私のMAMP Pro version
![スクリーンショット 2020-01-30 17.38.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524422/74396a6a-4007-180a-1604-c7bee0134401.png)

#私のMAMP Pro5でのPHP version表示はこんな感じ
![スクリーンショット 2020-01-30 17.34.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524422/0a3f3985-309a-137c-57e7-c796c6aff27d.png)

私のイメージとしては、PHP versionの横の上下矢印を押すと今?に入っているPHP versionが表示されて選べるようになるものだと思って

元記事を表示

MAMP ProのDBの欄にある小さいアイコンで表紙されているphpMyAdminが光って表示されない

#私のスペック
ウェブエンジニアのバイトを初めて、数ヶ月のへっぽこ。

忘れん坊なので、わかったことを忘れないようにQiitaに残しておくことにします。

#MAMP Pro使っているときにふと気が付いた
![スクリーンショット 2020-01-30 17.13.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524422/57824094-7ab8-3081-50eb-e4ff3ed0beec.png)
MAMP ProのDBの下にこのようなアイコンがあることを。
![スクリーンショット 2020-01-30 16.16.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524422/cc9117e4-1f0b-65f1-31f6-7f6ec9dc87b5.png)
**今はphpMyAdminが光って表示されていますが、PHPのversionの5.4.45を使っているときはphpMyAdminが光って表示がされ

元記事を表示

PHPの古いバージョンはここにあるぞ

#私
ウェブエンジニアインターンを数ヶ月しかしていない、へっぽこ。

#PHPの主に古いバージョンはどこかphp.net内で探しまくった
忘れそうなので、Qiitaに記事にしておこうと思う。

#PHPのバージョンダウンロード方法
1.まずはphpの公式サイトへ。
https://www.php.net/

2.次にdownloadのページへ。
https://www.php.net/downloads
![スクリーンショット 2020-01-30 16.54.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524422/016d1769-c30e-dbbc-5c0f-693e13fc94c1.png)
PHP 7.4.2なんて最新バージョン、今の私には必要がない。
さて、古いバージョンはどこか・・・・。

3.**Old Archives**って小さく書いてあるところへ。(なかなか見つけられなかったw)
https://www.php.net/downloads ページの一番下までスクロールすれば

元記事を表示

入力フォームでEnterキーを押下した際にsubmitされてしまう現象の解決

入力フォームでinputに打ち込んだ後にEnterキーを押すと、入力チェックなどバリデーションをすっ飛ばしてsubmitされてしまうので、
それを解決するために行った作業の備忘録

#Enterキーでsubmitされてしまう理由

暗黙のsubmitという機能があるためenterキーでsubmitされてしまうらしい。

[参照先](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#implicit-submission)

**要約すると次の通りになるらしい**

・デフォルトのボタンはフォーム内に最初にあらわれるサブミットボタンである。暗黙的なサブミットが行われる場合、これを押したのと同じ扱いになる。このボタンがdisableの場合暗黙的サブミットは行われない。

・送信ボタンが無い場合、formがページに一つなら暗黙的サブミットを行う。formが複数あるページの場合サブミットしない。

・対象になるのは、Text, Search, URL, Telephone, E-mail, Passw

元記事を表示

PHP DateTime の差を小数点以下も含めて合計秒数を表示する

# 環境

– PHP 7.3

# コード

“`php
$d1 = new DateTime(‘2020-01-01 12:00:00.123456’);
$d2 = new DateTime(‘2021-02-03 14:50:06.654321’);

$seconds = $d2->getTimestamp() – $d1->getTimestamp();
$decimal = $d1->diff($d2)->format(‘%f’);
echo $seconds . ‘.’ . $decimal;

// 34483806.530865
“`

# 2020.01.30 追記

Carbonを使うとスマートに書けることを教えていただきました!

元記事を表示

PHPでお問い合わせフォームを作る その4 セッションを使ってみる

#はじめに
これまで3回に渡ってPHPを使った「お問い合わせフォームを作る」を投稿してきました。
[その1](https://qiita.com/hotate_chan/items/b8ac6b270eac50b0b8e2) [その2](https://qiita.com/hotate_chan/items/dc95f9880f6a1dfa3490) [その3](https://qiita.com/hotate_chan/items/64c3a50b1eb490ccfc71)
その中で色々な方々に「こうした方がいい」というコメントをありがたく頂きました。
その中でもテンプレート読み込みは htmlファイルは`require`の方がいい、というコメントを活用させて、今までの造りとは違う形でこの**その4**を書こうと思います(テンプレートの読みは文字列読み込みではなくファイル読み込みに変更します~~朝令暮改~~)。

やりたい事は、データの受け渡しにおいて**セッション**を使う事です。
それでは始めましょう。

##セッション??
そもそもセッションて何?
ざっくりと絵で説明します。ざ

元記事を表示

Docker(PHP+Laravel+PostgreSQL)で環境構築後にphp artisan migrateで失敗した時の対処

Docker上で下記の環境を整えた後にコンテナ起動後、`php artisan migrate`をした際に以下に記載する2パターンのエラーに遭遇した際の対処をここに記す。

– 「could not find driver」
– 「configure: error: Cannot find libpq-fe.h.」

## 環境
– php:7.3-fpm-alpine
– nginx 1.17.8
– PostgreSQL 12.1
– Laravel 6.12.0

## エラーその1 「could not find driver」

“`
$ docker-compose up -d –build
$ docker-compose exec app ash
$ php artisan migrate

Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = public and

元記事を表示

超使いやすい掲示板を作りたい

Qiitaをいつものように見ていたら、次のような記事を見つけた。

超使いやすい掲示板を無料かつ一時間で作ってみた (「東大生用のBBS」と「京大マップ掲示板」の避難所を作成しました)
https://qiita.com/utokyobbs/items/ab15ae39698475e0bac7

この記事を読んでて気が付いたのだが、ここで使ってる掲示板は昔に俺が作ったやつだった。
6年も前に作ったプログラム。もう放棄したもので、今となっては黒歴史的な恥ずかしさ。

自分の作品集として「掲示板」は必要なポートフォリオ。
それがあれでは納得がいかないと常々思っていましたが、最近になって一念発起して、新しい掲示板を作り始めた。

その成果がこれ。

![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70356/ae61ce11-e85d-259f-cc80-ea36bc0deec6.png)

知っている人なら一目瞭然ですが「かちゅ~しゃ」です。

(自分にとって)超使いやすい掲示板を考えると、使い

元記事を表示

30歳未経験でのジョブチェンジ -自己紹介編-

昨年末に退職し、現在Web業界での転職を目指してプログラミングの勉強をしています。
そんな私が転職までの活動の記録をつけることにしました。

1.前職でのお話
装置メーカーでのサービスエンジニアの仕事をしていました。
簡単にいえば、製品のサポート役です。
仕事内容、給与・待遇に不満はありましたが、労働環境は良かったです。
残業も殆どなく、周囲の人間関係も良好でした。
特に昼食はボリュームがあり、品数も豊富でとても美味しかったです。
世間でいうところのホワイトカラーだったと思います。

2.転職を志したきっかけ
30歳を目前にして10年後や20年後に現在の仕事に従事している自分を思い浮かべたときです。
「このままここで技術を培っても、ここでしか働いていけないな。」と思ったのです。
エンジニアとして、その環境でしか生きていけないのは勿体ないと思いました。

そんなときに昔見た動画を思い出しました。
40歳ぐらいのアメリカ?のおばちゃんがスピーチをしていました。
自己投資をしながら歩むべき道を決め、30歳からそれをスタートできるように人生設計をするといった内容のものです。
今がそのときだと思

元記事を表示

VSCode + Azure WebApp + PHP で開発してみる

### 事前準備
あらかじめ下記をインストールしたWindows10 で行っています
・Visual Studio Code
(Extension として Remote Development をインストール
・Docker DeskTop for Windows

サンプルリポジトリも任意のフォルダにダウンロードしておく

“`
git clone https://github.com/Microsoft/vscode-remote-try-php
“`

### 早速初めて見る
(1)Remote Developmentのメニューボタンをクリック
  (左下でちょっとワカリニクイ)
![webapp+php_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/48359124-5bb1-5b0b-d833-c922f15d0398.png)

(2)「Remote-Containers: Open Folder in Container …」を選択
 ※今回は新規にフォルダ

元記事を表示

このPHPがテンプレートエンジンのくせに慎重すぎる (中篇)

## この記事について

みなさんここまでついてこられていらっしゃいますでしょうか。この記事は[このPHPがテンプレートエンジンのくせに慎重すぎる (前篇)]の続きなので、先に読んで、できれば実際に準備してから来てください。

一気に後篇を書いてしまおうとも思ったのですが、前回は徹夜して書いたので本日は著しく眠いので「Psalmの続き」と「型宣言」と「Phan」の話を書いて私は寝ます。

[このPHPがテンプレートエンジンのくせに慎重すぎる (前篇)]: https://qiita.com/tadsan/items/bf61520eb2d455e0e8b4

## Psalm/Psalter (前回の続き)

さて、PsalterはPsalm同梱の修正ツールです。`./vendor/bin/psalter –issues=all`で実行するとプロジェクト内のファイルが書き換えられます。

Psalterに限らず、今後ソースコードを自動で書き換えるツールがありますので、実行前にGitでコミットしておいてください。

“`diff
diff –git a/src/Hello.php

元記事を表示

CakePHPからGoに移行してクリーンアーキテクチャ目指し2年経った話

# TL;DR
– 8年近く稼働していたPHPのシステムをGoでリプレースしようと試みた経緯と経過報告。
– Goを書きたいエンジニアは絶賛募集中だよ:smiley:

# 自己紹介
– twitter: [Go里?‍♂️](https://twitter.com/bumcru0310)
– 2015/10からHowtelevisionにジョイン
– Go/PHP/JS/EngineeringManager

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62143/2e555b29-37c9-fea2-cffb-92114e93328f.png)

# 開発合宿に自転車で行く図 :bicyclist:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62143/82932c58-04ab-a42b-4722-cc9dfb4c7377.png)

# 副業

元記事を表示

サーバーまとめ②Nginx編

#はじめに
前回はApacheを使ったサーバーの構築に関する記事を作成しました。そちらをご覧になっていない方はそちらもご覧ください。

NginxはApacheと同じくサーバーを構築するためのアプリの1つです。Apacheに比べてアクセス数が増えても処理が重くならないという長所があるのが特徴です。

**※両社の比較を細かく行っている方の記事が参考になると思いますのでそちらを見ていただくと理解が深まると思います。**

#使用環境
前回と同じです。

#参考文献
CentOS7.1でnginxを用いたウェブサーバの構築
https://qiita.com/tomy0610/items/0884c77f1ac52957fa96

サーバーまとめ②Apache編
https://qiita.com/FangJoker7714/items/0e92a161d1a5dc90276c

#Nginxのインストール
まずは、Nginxのインストールを行っていきたいと思います。下記コマンドを入力してください。

“`
sudo yum install nginx
“`

**※環境によってはこ

元記事を表示

phpでカレンダーを作る(初心者用)

##はじめに
インターンでlaravelを使うことが多く、一刻も早く理解するべくまずはphpを勉強だ!と思ってカレンダーを作りました。
初心者でphpを勉強する人の参考になれば幸いです。
htmlとphpの基本的な書き方。ループ処理などの文法がある程度わかっていれば余裕でわかると思います!

参考にしたサイトhttps://php1st.com/1001

##準備
phpはサーバーサイドの言語なのでローカル環境で動かすことができません。
とはいえ、いちいちサーバーにあげて確認するというのも手間がかかってしまいますので、
まずはローカル環境でもphpの動作確認ができるソフトウェアをダウンロードしていきましょう。

今回はxamppというWebアプリケーション開発に必要なソフトウェアをまとめたものがあるのでこちらをインストールしていきます。

自分はmacを使っているので下記のサイトがわかりやすかったです。参考にしてください。

Mac用のXAMPPをインストール。ローカル開発環境の準備と簡単な使い方

windowsの方はこちらのサイトがわかりやすいと思います。
https://

元記事を表示

OTHERカテゴリの最新記事