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

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

GMO-PG リンクタイプPlusでクレジットカード決済した時の結果通知プログラムの処理

# 概要

GMO-PGでクレジットカード決済をする際、接続方式として`リンクタイプPlus`で実現した場合、
お客様がGMOの決済サイトへ遷移してから クレジットカード情報入力 -> 確認画面で確認 -> 完了画面で「サイトに戻る」ボタンを押下
というオペレーションが必要になってきます。

ここで、「サイトに戻る」ボタンを押下しなかったり、GMOの決済サイトへ遷移してからクレジットカード情報を忘れたため入力せずに離脱(ブラウザを閉じる,タブを閉じるなど)した場合、その処理が完了したかどうかを検知する必要があります。

そのため、GMOには`結果通知プログラム`というものが用意されており、そのプログラムを利用することで、対象の注文に対して結果をシステム側で判別できる仕組みがあります。

全然詳しくは載っていませんが、以下サイトにQAが載っています。
https://faq.gmo-pg.com/service/detail.aspx?id=1050&a=102&isCrawler=1

# 結果通知プログラムを受け取るプログラム

全体的なサンプルプログラムはGitHubにあります。

元記事を表示

Laravel8 CRUD処理を使った投稿アプリを作成する その0 説明編

# 本記事の目的

– Laravel8を用いたCRUD処理をもった投稿アプリを作成する方法をチュートリアル形式で紹介する説明を行う。

# チュートリアルの最終目標

– Laravel8を使って投稿アプリを完成させる。
– 画像の投稿もカバーしメンテナンス性を考えたDBアクセス処理の分割なども実装する。

# おことわり

– 最終目標の達成後も記事投稿が続く可能性あり。
– 最終目標は変更になる可能性がある。

# 実施環境

– 筆者の実施環境を記載する。
– ハードウェア環境

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

– ソフトウェア環

元記事を表示

VPSを借りる [PHP] #3

#PHP
[※How to Install PHP on CentOS 8](https://linuxize.com/post/how-to-install-php-on-centos-8/)

“`sh
DOMAIN=yourdomain

sudo dnf install @php php-opcache php-gd

php -v

sudo systemctl enable –now php-fpm

sudo cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.origin
sudo sed -i -e “s/^user = apache/user = nginx/g” /etc/php-fpm.d/www.conf
sudo sed -i -e “s/^group = apache/group = nginx/g” /etc/php-fpm.d/www.conf
diff -u /etc/php-fpm.d/www.conf.origin /etc/php-fpm.d/www.conf

sudo chown

元記事を表示

Laravel5.5でModelとControllerを分離する

FatControllerでModelが綺麗な方へ。。。
LaravelでControllerからModelに処理を移す解説をしている記事が少なかったので解説してみました。

“$this->“を復習したい方は以前の記事を先に見てください
https://qiita.com/satorunooshie/items/45fb85ea6c14cad2ac58
その他参考になる記事はこちらに貼っておきます
FatControllerについて
https://qiita.com/nunulk/items/6ed409345efb6ee4f660
FatModelについて
https://qiita.com/nunulk/items/dd27591b4a7a8a464a1a

#目次
[簡単な説明](#簡単な説明)
[リレーション](#リレーション)
[ThreadController](#threadcontroller)
[Thread.php](#threadphp)
[ThreadController解説](#threadcontroller解説)
[多次元配列部分の補足](#多次元

元記事を表示

php datetime

https://www.flatflag.nir87.com/date-473

元記事を表示

PHP ~web開発編~

はじめに、
一通り基礎的な事を学び終えたので今日からPHPでweb開発に関する学習をしていきます。
復習も含めて初歩的な事も記事にしてアウトプットしていきたいと思う。

# PHPの埋め込み
[解説]
16行目

**の部分のPHPの記述をする事で使える様になります。
17行目
echoした結果を埋め込む時は省略ができます。
echoとphpの記述を削除して=に変える事で出力可能です。
18行目
こちらは定義した変数を埋め込んでいるだけです。
![スクリーンショット 2020-10-03 17.03.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663122/35d1b833-38ea-85eb-660a-0c120387e20c.png)
# htmlspecialchars()
下記のコードを実行すると、javascriptのalertが出てしまいます。
これを防ぐ為に< > ‘などをhtmlspecialchars()を使いただの文字列にします。
![スクリーンショ

元記事を表示

CodeIgniter3でSessionを使うときに Failed to initialize storage module: user(path:**)にハマった

# 概要

タイトルにあるように、CodeIgniter3でSessionを使うときに以下のエラーが発生してハマったので、
原因と解決方法について記録を残します。

ネットで検索すると`$config[‘sess_save_path’]`の設定をするんだよ。とか、
そのパスには777の権限にしておくんだよ。みたいな記事があるんですが、それだけでは解決しなかったので迷いました。

“`php
Message: session_start(): Failed to initialize storage module: user (path: /var/www/html/codeigniter3/application/cache)

Filename: Session/Session.php

Line Number: 143
“`

# よくある解決策

`config.php`の設定で`sess_save_path`の確認をした?というのがあります。

– パスが存在するか?
– パスに対して書き込み権限があるか?

“`php:application/config/config

元記事を表示

【初心者向け】LaravelでClass not foundが出た際の名前空間の確認方法

####名前空間の記述ミスの探し方を書いた記事です。

##はじめに
現在[「PHPフレームワークLaravel入門 第2版」](https://www.amazon.co.jp/dp/4798060992/ref=cm_sw_em_r_mt_dp_u98DFbW09VXJC)でLaravelを学んでいます。

Eloquentのモデルのスコープクラスを作成・使用の際に発生したClass not foundエラーの解決で得られたものを自身の振り返りも兼ねて記事にしてみました。

コードの中でClass名を書くと、Laravelはどのようにuseやnamespace部分(名前空間)を見に行くのか、その繋がりを図を用いて紹介したいと思います。

書いたコードの繋がりが分かれば理解しやすい!

タイプミスや名前の指定ミスを調べる際の確認箇所としてお役立ていただけたら幸いです。

おかしなところがありましたらご指摘ください。

##Class not foundが出たコード

“`App\Person.php

元記事を表示

Laravel CRUD処理を使った投稿アプリを作成する その11 DB問い合わせ処理をServiceに分割する 番外編

# 目的

– 作成したLaravelアプリDB問い合わせ処理部分をServiceに分割する方法をまとめる

# 実施環境

– ハードウェア環境

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

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qiita.com/mir

元記事を表示

【Laravel】CollectionのsortByとsortByDescメソッド

##はじめに
今回もLaravelのCollectionのメソッドについてまとめたいと思います。

##sortByとsortByDescメソッドでキーを指定して並べ替える

・sortByメソッドで昇順に並び替える

“`php:
$collection = collect([
[‘id’ => 1, ‘name’ => ‘山田’, ‘age’ => 18],
[‘id’ => 2, ‘name’ => ‘佐藤’, ‘age’ => 38],
[‘id’ => 3, ‘name’ => ‘小林’, ‘age’ => 25],
]);

$sorted = $collection->sortBy(‘age’);

print_r($sorted->toArray());
“`

実行結果は下記になります。

“`
Array
(
[0] => Array
(
[id] => 1
[name] => 山田
[age] => 18
)

[2

元記事を表示

【Laravel】簡単実装、楽天APIで商品検索してみる

PHPで実装する記事はあまりなかったので、備忘録として残しておきます。
今回は楽天APIを叩いて、商品検索が出来る機能を実装します。AmazonやDMMはアフェリエイトアカウントで審査があるので、思い立って直ぐ作るなら楽天がオススメです。

laravel知識がある前提になります。API実装部分以外は簡略化してます、ご了承下さい。

## 環境
PHP 7.3.8
Laravel 6.18.35
cURL

## まずは実装前の下準備
[Rakuten Developers](https://webservice.rakuten.co.jp/)で、アプリIDを取得しましょう。
今回叩きに行く[楽天市場商品検索API](https://webservice.rakuten.co.jp/api/ichibaitemsearch/)は入力パラメーターにアプリIDを渡せばOKなので、トークンやアフィリエイトIDは不要です。

![スクリーンショット 2020-10-02 22.19.53.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

【Web制作&開発者向け】「Git超入門&EC-CUBE最新情報!」 | EC-CUBE名古屋 vol.76

# 今回は文字が多いので Qiita スライドモードでお送りします

—-

## 自己紹介

– 名前: 大河内健太郎(@nanasess) 年齢: 43才
– 出身: 愛知県西尾市一色町
– 在住: 大阪市(四天王寺の近く)
– 前職:寿司屋の板前
– 資格: 調理師・ふぐ処理師
– EC-CUBE コミッター・公式エバンジェリスト
– 最近のマイブーム: Civilization® VI

—-

元記事を表示

PHP配列処理大全

競技プログラミングで配列を操作することが多いので内部関数をまとめました。
#目次
[配列の結合](#配列の結合)
[+演算子で結合する際の注意](#演算子で結合する際の注意)
[文字列を配列にする](#文字列を配列にする)
[配列を文字列にする](#配列を文字列にする)
[配列に値が存在するか確認する](#配列に値が存在するか確認する)
[配列の並べ替え](#配列の並べ替え)
[配列を逆順にする](#配列を逆順にする)
[配列の先頭に値を追加する](#配列の先頭に値を追加する)
[配列の末尾に値を追加する](#配列の末尾に値を追加する)
[配列の指定箇所に値を追加する](#配列の指定箇所に値を追加する)
[配列の指定箇所を取り除く](#配列の指定箇所を取り除く)
[配列の指定箇所を置き換える](#配列の指定箇所を置き換える)
[配列の一部を取り出す](#配列の一部を取り出す)
[配列の値を別の変数に代入する](#配列の値を別の変数に代入する)
[配列から条件に合うデータだけを抜き出して配列にする](#配列から条件に合うデータだけを抜き出して配列にする)
[配列を一括処理する](#配列を

元記事を表示

OSS上のPHP – MySQLアプリケーションデータのバックアップ

このブログ記事では、**PHP – MySQL**アプリケーションのバックアップを取ること、バックアップをアリババクラウドのオブジェクトストレージサービスに保存することに焦点を当てています。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/backing-up-php-mysql-application-data-on-oss_595556)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#序章
アプリケーションのバックアップは、システム管理者にとって最大の課題でした。クラウド技術の進化により、人々はシステムのスナップショットを使用してバックアップとして使用することができます。しかし、バックアッププロセスをより簡単にするために、いくつかの調整やツールを使用した他の多くの方法があります。

このブログ記事では、PHP – MySQLアプリケーションのバックアップを取ることに焦点を当て、OSS(アリババクラウド[オブジェクトストレージサービス

元記事を表示

PHPで時間計算

勤務時間など算出したいときに「PHP 時間 計算」と調べていたのですが、検索上位に出てくるのがどうしても「日時の計算」で出てきてしまうのた、自身の備忘として。

#Code
例えば10:00から18:00まで仕事をしたときの勤務時間を算出。

“`php:time_diff.php

“`

これで$WorkTimeをechoしてあげれば「8」と表示されるはずです。
小数点以下第一位まで出したい場合は

“`
echo format_number($WorkTime, 1);
“`

としてあげれば良いです。

#計算詳細
計算内容を見ていきます。

strtotimeは英文形式の日付をUnixタイムスタンプに変換します。
(ひとまずdateでその日の年月日を取得している

元記事を表示

PHP開発環境を理解しながら構築! ①

#はじめに
###動機
 未経験でエンジニアとなり、PHPの環境構築で言われるがままに導入したソフトウェアなどをあれって何だったんだ…。とそのままにしてしまっていた。
なので本記事は自分なりにそれぞれまとめながらPHPの開発環境構築を忘れないために書いた備忘録です。
###やること
 ・Visual Studio Codeのインストール
 ・XAMPPをインストール
###環境
 Windows10 64bitを使用

#XAMPPでのPHP環境構築
##①Visual Studio Codeのインストール
###Visual Studio Codeとは?
 Visual Studio CodeとはMicrosoft社が出している、プログラミングを行う際に使う「エディタ」と呼ばれるソフトウェアの一つ。プログラミングを行う際に便利な機能が多く用意されています。略して「VSCode」とも呼ばれます。
 無償で誰でも使うことができて、多くのOSに対応している・拡張機能が多数用意されていて使いやすいようにカスタマイズができるのが特徴です。
###注意事項
 似ている名前で「Visual Stu

元記事を表示

DockerでPHP7.4+Apache+MySQLの環境構築しようと思ったら詰まりまくった【Windows & Mac】

#”はじめに”
今回はDockerをつかって**Laravel+Apache+MySQLの開発環境**を構築したいと思います。
初心者プログラマーを含めたチームで個人開発を行うため、基本的に導入方法や手順などは視覚的にわかりやすく、簡単なものを採用する方針です。

#”Dockerの導入”
早速本題であるDockerの導入をしていきましょう。

##Hyper-vの有効か(Windowsのみ
Dockerのインストール前にHyper-vという仮想化機能を有効化する必要があります。
この機能はWindows Pro系にしか導入されていないみたいで、その他の場合はVirtualBoxなどほかの仮想化技術の導入をする必要があります。

**①Windowsボタン右の「ここに入力して検索」部分に”Windowsの機能の有効化または無効化”と入力**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758471/9d7a7ca5-f7cb-1b6c-a0f7-d2ea30cb7cb8.png)

元記事を表示

OGP画像を動的に変更させる

ページをシェアする時にOGP画像を変更させたいという要望があったので、やってみました!

##実装方法

動的に変更させたいページのurlにパラメーター付きでアクセスした場合にOGP画像を変更させます。
といっても、head内のog:urlとog:imageのcontentの値を変更させるだけです…

1. パラメーター付きのurlにアクセス
2. urlのパラメーターの値を取得
3. head内のog:urlとog:imageのcontentの値にurlのパラメーターを挿入

### パラメーターなしのurlにアクセスした場合

“`html



“`

### パラメーター付きのurlにアクセスした場合

“`html

OTHERカテゴリの最新記事