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

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

paygent決済システム導入(PHP編1)

#趣向
PHPでpaygent決済システム導入を導入機会が
あったためゆらりと述べていこうと思います。

#環境
PHP: 7.0.3
※PHP7系なら大丈夫です。

#はじめに
このページではpaygentのモジュールの動作確認が完了するまで説明します。

#1.試験環境接続キットを入手する
![スクリーンショット 2021-08-30 10.22.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/843952/fb378fc0-7754-e960-0102-dde69e5d550e.png)
![スクリーンショット 2021-08-30 10.24.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/843952/7cb2c450-a6d0-54d2-ffcf-820aa0bfc528.png)
まずは画像の通り、試験環境ボタンを押下し、自身の試験環境を設定します。
設定したら3日程度で試験環境接続キッド.zipを

元記事を表示

【個人開発】ネットで調べ物するたびに、タイトルとアドレスをメモれるツールを作って10年以上使っている話

たいした技術力はないのですが、個人開発の簡単なサンプルとして紹介したいと思います。

## Webコピ太郎とは

[Webコピ太郎](https://www.catch.jp/program/copy-taro/)は、いま見ているWebページのタイトルとアドレスを取り出すだけのツールです。

1. メモっておきたいWebページを見ているとき、このツールを呼びだす
2. ページのタイトルとアドレスを取り出して、テキストボックスに表示
3. クリップボードにコピー

![copy-taro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86880/cb0eae92-8887-d3eb-5a05-92abc890bf19.png)

## なぜ、こんなツールを作ったのか

ネットで調べ物をする度に、役立ちそうなページのアドレスとタイトルをコピペして、テキストファイルにメモするなんてありませんか?

たくさんの参考ページをメモろうとすると、何度もタイトルとアドレスをコピーするのでたいへん面倒くさい。

でも、メ

元記事を表示

PHPでFizzBuzz

###概要
FizzBuzz問題を解く機会があったので、PHPで書いてみました。

## ルール
1〜100までで
3で割り切れる時は、「Fizz」を表示。
5で割り切れる時は、「Buzz」を表示。
3と5で割り切れる時は、「FizzBuzz」を表示。
その他は、数字を表示する。

## コード
“`index.php

“`
## 結果
“`
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19

元記事を表示

WordPressでカスタム投稿の新着順にユーザー一覧を作成する

`get_users`を使えば、ユーザーの一覧を取得できます。
[関数リファレンス/get users
](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_users)

ユーザーID、登録日でソートすることはできけど、カスタム投稿の新着順にソートするできないみたい。

検索してみても、同じようなことをしてるサイトが見つからなかったけど、やってみたらできたので、それのメモ。

## 完成形

まずは完成形を。

“`
‘ID’,
‘order’ => ‘ASC’,
];
$users = get_users($args);

foreach ($users as $user){
$uid = $user->ID;
$usernicename = $user->use

元記事を表示

【初心者向け】バリデーションについて〜Laravel〜

今回は、バリデーションの概要と設定方法、エラーメッセージの表示方法について説明します。
#バリデーションとは
バリデーションとは、ユーザーが入力した情報がその仕様や文法などに照らして適切な形式で記述されているかをチェックするための仕組みです。
たとえば、数字で入力してもらいたい年齢欄に名前を漢字で入力されたらサービスの提供を適切に行えなくなってしまいますよね。
それを防ぐためにバリデーションを利用します。

#バリデーションの設定方法
コントローラーのアクション内に以下のように記述すれば、バリデーションを設定することができます。

“`php:〇〇Controller.php
$rules([
‘連想キー(カラム名)’ => ‘バリデーションルール’,
]);
$this->validate($request, $rules);
“`

複数のバリデーションルールを設定したいときは、「|」を使って繋げて記述します(例:’required | max:500’)。

バリデーションは、送信された情報が要求した形式に合致していなかったらフォーム画面が再表示される仕様になっている

元記事を表示

composer require -w tymon/jwt-authがエラー

#趣向
composer require -w tymon/jwt-auth を使用するとエラーが出てしまい
jwt-authをインストールすることができなかった。
Laravel: 8.40
PHP: 8.0

#エラー
下記のエラーがでてしまう。

“`
Your requirements could not be resolved to an installable set of packages.

Problem 1
– Root composer.json requires tymon/jwt-auth ^0.5.12 -> satisfiable by tymon/jwt-auth[0.5.12].
– tymon/jwt-auth 0.5.12 requires illuminate/support ~5.0 -> found illuminate/support[v5.0.0, …, 5.8.x-dev] but these were not loaded, likely because it conflicts with another r

元記事を表示

【MAMP】PHPのPath設定(.zprofile)

まず、ルートディレクトリに移動します。

“$ cd“

下記を記述してパスを通します。
php7.3.27の部分は、自分の使っているMAMPのPHPのバージョンに変更して下さい。
“$ export PATH=/Applications/MAMP/bin/php/php7.3.27/bin:$PATH“

最後に、下記コマンドを打ち込み設定を反映を反映させます。
“$ source ~/.zprofile“

PHPのバージョン変更が反映されているか確認してみましょう。
“$ php -v“

元記事を表示

Cookie にSession 情報保存されない?そう、デフォの api.php ならね。

#はじめに

Laravel 6で開発してて詰まったことあったので備忘録で残しておきます。

# やりたかったこと

## Session 情報をcookie に保存したかった。

下記のようなコードを書いた。

“`php:api.php
Route::post(“set_token”, “Controller@setToken”);
Route::get(“fetch_token”, “Controller@getToken”);
“`

“`php:Controller
public function setToken(Request $request){
session()->put(‘token’, $token);
}

public function getToken(){
$token = session()->get(‘token’);
return response()->json([‘token’ => $token]);
}
“`

シンプルなセッション情報の保存と、別リクエストでのその情報の利用です。

でもな

元記事を表示

Logファイルの権限エラーの解決方法(Laravel)

プログラミング初心者です
##環境
Laravel 5.8
PHP 7.3.29
AWS EC2 にてデプロイ

##問題
データ処理送信を行う際、loggerメソッドでlogを記載しようとしたが、当日のLogファイルのPermision Deniedつまり権限エラーが出てしまいました。
“`$ php artisan“`実行時も同様のエラーが出ました。
以下エラー例文です。

“`
UnexpectedValueException : The stream or file
“/test/laravel/storage/logs/laravel-2021-01-01.log” could not be opened: failed
to open stream: Permission denied
“`

##やってみたこと
ターミナルで以下を入力します。
storageディレクトリの権限を777に変更します。
chmodの権限について[こちら](https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95)の記事が詳しいです。

元記事を表示

【Laravel8】scheduleで実行する時だけ、DBにアクセスしようとするとConnection refusedが発生する

# 背景
ローカルにLaravel+Dockerの開発環境を作ってWEBアプリを開発をしており、定期的にDBに保存したデータを元にして外部サービスのAPIを叩き情報を取得する必要があった為、コマンドスケジューラで取得処理を実装してたところ、DBに接続できないエラーが発生してかなり詰まってしまい、(~~探し方の問題なのか詰まるほどでもない初歩的な問題だからか~~)関連する記事や解決方法を見つけるのに苦労したので備忘録として残したくてまとめました。

# 開発環境
PHP 7.4.12
Laravel 8.12
Docker 20.10.5
Docker Compose 1.28.5

# 起きたこと
やりたいことはめちゃくちゃシンプルで、DBから外部サービスのAPIを叩くのに必要な情報を取得して、APIから返された結果をDBに保存する処理をコマンドとして登録し、そのコマンドをスケジューラで定期的に叩くというもの。起きたことを分かりやすくする為に不要な記述を極力省いてますので、ツッコミ所が多いかもですがご了承頂けると幸いです。

まずは公式ドキュメントを参考にArtisanコマンドを作成

元記事を表示

シングルトンパターンの使い所を学ぶ

# シングルトンパターンの使い所を学ぶ

デザインパターンの1種として「シングルトンパターン」というものがある.
シングルトンパターンとは,「インスタンスが1個しか生成されないことを保証する」ことを指す.

具体的にコード例を挙げてみる.

“`php
class Singleton {
// インスタンス化されているか判断されているかに使用するメンバ変数
private static $instance;

// コンストラクタをprivateにして外部からアクセスできないようにする
private function __construct(){
echo “インスタンスを生成したよ”;
}

// すでに自クラスがインスタンス化されているかを判断する
public static function getInstance() {
if ( !isset(self::$instance) ) {
self::$instance = new Singleton();

元記事を表示

Vue + Laravelでformの入力情報をパラメーターから受け取り、復元する方法

#はじめに

一週間前から初めて触るVue + Laravelの環境で新規案件を開発しはじめました。
入力フォームの情報を確認画面に渡し、入力ミスなどで入力フォームに戻る際に、Laravelでフォームの情報を受け渡ししようかと奮闘しましたができず、結局Javascriptの力技で解決しました。。。多分
本来のやり方ではないと思いますが、良かったら参考にしてください。

# 環境
– バックエンド:PHP – Laravel8
– フロントエンド:Vue.js
– DB:Mysql ver8.0
– Docker使用

# 最初にやろうとしたこと
新規入力フォーム

“`vuejs:userCreate.vue