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

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

StripeでCoupon/Promocodeをつかった割引を実現する(Laravel/Cashier)

[運営しているサービス](https://www.docswell.com/)に、割引を実装したのですが、海外のフォーラムでもあまり実装方法が載っていなかったのでシェアします。正しいかどうかはわからないので各自検証してください。

# 環境

– Laravel 6系(lts)
– Cashier 12系
– Stripe sdk(Cashierから依存 7.70)

# Stripeで割引をするとはどういうことか

Stripeでユーザーに対し割引などプロモーションを実施する方法は主に2つ、FreeTrialとCouponです。FreeTrialは契約開始からN日間無料にするというもので、Couponは〇円引き、〇%引きが実現できるというものです。こちらのQiita記事でも解説されています。

[決済代行サービスのStripeでサブスクプランにクーポンを適用する方法【typescript, react, stripe, cloud functions】](https://qiita.com/rpyn/items/2b2bfdb1cbdf378d44ec)

こちらの記事では、C

元記事を表示

MAMPを起動した時のエラーの対処(port 8888 is in use by some other software)

# はじめに
MAMPを起動する際、

Apache couldn’t be started because port 8888 is in use by some other software.

と表示され起動できなくなってしまったので、その対処法をメモとして残します。

# 条件
PHP version: 7.4.12
macOS Big Sur version: 11.2.3

# もくじ
1. エラー内容
2. 対処 ~ 解決
3. それぞれのコマンドについて
4. おわり

#1. エラー内容

冒頭でも記述しましたが、エラー内容は以下の文となります。

`Apache couldn’t be started because port 8888 is in use by some other software.`

日本語にすると、
`”ポート8888が他のソフトウェアで使用されているため、Apacheを起動できませんでした。”`

…ということです。

元記事を表示

本番・開発環境でWordpressのDBスキーマを揃える。Phinxでマイグレーションとシード実行

![phinx.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119201/54d79a77-e8a1-483c-aff6-d2d9bcbee4cf.png)

数名で始めた小さな読み物アプリケーションをWordpressで管理をすることになりました。極力Wordpressをコード化してスケールする開発を行いたいと考えている方に参考になればと思い書きました。

## この記事の対象となる読者
– WordPressをDockerで運用し、複数人・複数の環境で開発しようとしている開発者
– WordPressのDBスキーマ管理(マイグレーションツール)の技術選定中の方

## あらまし
本番、開発環境という2つの環境で運用をしたいとなった場合、Wordpressはプラグインの扱いが環境ごとに差分が出やすく悩ましい限りです。

なにしろWordpressはプラグインをインストールするとプラグインのファイルだけでなく、テーブルや設定レコードが増えるのですから。

可能な限りGitでプラグインのコ

元記事を表示

Laravelのvalidationの表現を広げる【配列、階層】

#普通に個別に配列対応
validation関連でいろいろな表現があることがわかったので、整理していきます。

““php:通常の配列の場合


““

配列の場合、どう書いていくのかというと、`.`で区切ります

““:こんな具合に区切ります
‘array.name’
‘array.title’
““
実際にvalidationのruleを作ると、下記になります。

““php:validaton
public function rules()
{
return [
‘array.name’ => ‘required|string’,
‘array.title’ => ‘required|string’,
];
}
““

#すべてに対して対応する場合

““php:validaton
public function rules()
{

元記事を表示

ラジオボタンを三項演算子でcheckedを維持する。LaravelのBlade対応。validationでのリダイレクトでも維持

#結論はこれ
““php:

“`
結論上の通りです。
`{{ }}`の中に三項演算子の内容を記述する。

““
{{ 条件 ? true : false }}
““

`old()`でリダイレクト前の回答を取得しています。

““
{{ old(‘nameの名前’) ? “checked” : “何もしない” }}
““

元記事を表示

現在時刻を(〇〇年〇〇月〇〇日〇〇秒)形式で表示する

##はじめに
どうも、はじめまして「ばたにー」です。初めてのQiitaでの投稿になります。
自身の勉強時のアウトプットとして今後は活用していく予定です。

今回はその第一回目として超簡単な内容になります。ご容赦ください。

###実際のコード

まず現在日時を表示

“`
//UNIXタイムスタンプの形式になります
//UNIXタイムスタンプとは 1970年1月1日午前0時0分0秒(UTC)からの経過秒数

echo time();
//1621693637
“`

次にdate関数を使い現在日時を年月日と時刻でわかる形に表示

“`

//date関数の第二引数はデフォルトで現在時刻が入ります
echo date(“Y-M-D H:i:s”);
//2021-May-Sat 23:27:17

“`

これでも分かるとは思いますが、見慣れた表示にするには

“`
echo date(“Y年m月d日 H時m分s秒”);
//2021年05月22日 23時05分17秒
“`

こんな感じで表示を変えることができます。
ちなみに年

元記事を表示

【cron】Macでcronを設定してみた

## はじめに
`cron` を触る機会があったので流れを理解するために、簡単なサンプルコードを作成して `cron` の設定をしてみました。

## 目次

– [はじめに](#はじめに)

– [目次](#目次)

– [実装フロー](#実装フロー)

– [サンプルコード](#サンプルコード)
– [sample.php](#samplephp)

– [cronの設定](#cronの設定)
– cronの登録
– cronの内容
– 登録しているcronの確認
– logファイルを確認
– cronの削除

– [おまけ](#おまけ)
– cronの `*` の意味
– logファイル出力ができず `permission denied`
– Datetimeでエラーが起きる?

– [おわりに](#おわりに)

– [参考文献](#参考文献)
– cron
– シェルスクリプト
– PHP

## 実装フロー

– 定期的に動作させたいファイルを作成( やりたいことはなにか )

元記事を表示

LaravelのVSCodeを使った開発で、保存時にコードを自動整形する

チームで開発する場合はもちろん、個人で開発する場合にもインテンドがしっかり入っていない場合や、「{」の位置が統一されていないと書き方の良し悪しにかかわらず見づらいコードになってしまいます。コードの自動整形機能は開発の早い段階で導入しましょう。

##開発環境
言語:PHP
エディタ:VisualStudioCode(以下VSCodeと呼ぶ)

##formatterの拡張機能を入れる

phpのformatterには`PHP Intelephense`がおすすめです

拡張機能から`PHP Intelephense`を選択、[**Install**]
![スクリーンショット 2021-05-22 17.36.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1066052/15b57583-0671-7304-2e33-e75f624590e6.png)

この状態だと、フォーマットを行うにはファイルを開き
`Shift` + `Command` + `F`を入力する必要があります。

ファイル保存時

元記事を表示

【Laravel】view [***.blade.php]ファイルを修正したが反映されない問題の解決方法

##キャッシュをクリアする

###以下のコマンドを実行

“`
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan config:clear
“`

###エラーになった場合

1.artisanファイルがない場所で実行している場合
・エラーメッセージ

“`
Could not open input file: artisan
“`
・解決法
 artisanファイルがあるディレクトリ(プロジェクトを作成した場所)へ移動して実行する

2.データディレクトリがない場合
・エラーメッセージ

“`
Failed to clear cache. Make sure you have the appropriate permissions.
“`
・解決法
 データディレクトリを確認する
 以下ディレクトリがあるか確認
 storage/framework/cache/data

 なければ作成する

“`
mkdir storage/framework/cac

元記事を表示

%dって何?色々調べてみた

昨日、[2ケタ✕2ケタの計算問題を作るプログラム](https://qiita.com/whiterusk/items/b99cc04a594e219a8781)をつくったら、コードについて早速突っ込まれました。

“`php
(%02d) %d ✕ %d =

“, $i, $a, $b);
}
echo implode(‘, ‘, $ans). ‘
‘;
?>
“`
コードを作成してくださった方:[iiOOii さん](https://qiita.com/iiOOii)
また、変数a, b の記述については[shiracamus さん](https://qiita.com/shiracamus)に教えていただきました。
ありがとうございます。

僕のコードではforeachやifを使っていましたが、使わなくても記述ができるらしく。
教えてくださったコ

元記事を表示

【php】2次元配列・各人のフルネームと住所と年齢を表形式で出力せよ。詳細は以下に示す

“`PHP

$members = [
[
‘id’ => 11,
‘family_name’ => ‘山田’,
‘first_name’ => ‘太郎’,
‘age’ => 35,
‘gender’ => ‘男性’,
‘address’ => ‘東京都港区’,
],
[
‘id’ => 12,
‘family_name’ => ‘佐藤’,
‘first_name’ => ‘花子’,
‘age’ => 28,
‘gender’ => ‘女性’,
‘address’ => ‘東京都中央区’,
],
[
‘id’ => 13,
‘family_name’ => ‘斎藤’,
‘first_name’ => ‘次郎’,
‘age’ => 41,
‘gender’ => ‘男性’,
‘address’ => ‘東京都豊島区’,
],
[
‘id’ => 14,
‘family_name’ => ‘山本’,

元記事を表示

N個の整数の比較

## この記事について

Qiita のフィードに流れてきたとある記事を読んで、これ以外の書き方できないかな、と思ったのがきっかけで、思いついたので書いてみました。作者の方は特にコメントを求めてはいなさそうだったので、URLの引用等はしません。完全に私個人の趣味です。

## はじめに

### 問題

以下、元記事から抜粋します。元のお題では、変数の数は3個で固定です。

0-2の範囲の乱数を変数 `$a,$b,$c` にそれぞれ代入し、どの変数が最大であるかを表示してください。

1. 0-2の範囲の乱数 `$a,$b,$c` をそれぞれ代入しておく。
2. 変数のうち一つが最大値である場合、「変数○が最も大きい」と出力する
3. 変数のうち2つが同じ値で最大である場合、「変数○と○が最も大きい」と出力する
4. 3つの変数が全て同じ値の場合、「全て同じ値です」と出力する。

### 環境

– PHP 8.0.2

## 解法

if 文を連ねて愚直に比較していく方法もあるかと思いますが、個数が増えてきたときに大変なので、個数が増えたときに大変にならないような書き方で書いてみたい

元記事を表示

【最短】駆け出しエンジニアがガッキーと結婚するための最短ロードマップ

【はじめに】

〇記事作成の経緯

ある雨の日の午後だった。
空は大粒の涙を流している。
このままだと泣きそうになる。
そんな気分を紛らわすため、携帯を開いた。

携帯を開くと、あるニュースを目にした。
「星野源、新垣結衣が結婚」

ほっこりとして気分が晴れた。
おめでたいニュースだ、仕事を頑張ろうと。

しかし、空は嘲笑うかのように雨は強さを増していた。
矢のように強く、重い雨。

なぜ雨は強くなったのか考えた。
そこである結論に達する。

「ガッキーと結婚したかった者が泣いているんだと」

その中で、「俺自身が津崎になれば、実質ガッキーと結婚している」と考えた駆け出しエンジニアがいるかもしれない。
しかし、方法が分からず路頭に迷っているのではないだろうか?
そんな方々へ向け、津崎平匡になれる最短ロードマップを用意した。
険しい道ではあるが、以下に示しているので参考にしてほしい。

駆け出しエンジニアの皆さん、聞こえますか?私からあなたへの鎮魂曲。

〇対象読者
・ガッキーと結婚したい駆け出しエンジニア
・ネタをネタだと理解できる人

元記事を表示

【PHP】PHPからPythonを遠隔操作する

PHPからPythonをどうやって遠隔操作するの?

どうも少し久しぶりのカラボンです。
この間、PHPを使ってPythonを遠隔操作出来たので紹介します。

だいたいこんな感じ。

![IMG_6164.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1086026/84fb42c6-3708-256b-709f-00a81ecaa83f.gif)

これ、どうやって操作してるのかというと、

1.PHP側でフォームを作る

2.フォームの転送先でその変数の値をjsonに記録する

PHP側はこれだけです。

Python側は

1回、while Trueに噛ませる
json読み取りを入れる

もし、json側でonとかになったときだけまたwhile True文に入る

1回だけ処理をさせたい場合はjsonにoffなどを書き込む

させたくない場合はそのまま。

もし、offなどになったらbreakする

これだけで実質遠隔操作ができるということです。

元記事を表示

【php】合計が初めて1000を超えた時に、合計値と最後に足した値を出力せよ

初めて合計値が1000を超えた時、

合計値を出力してください。
最後に足した値を出力してください。

“`php

“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954863/5b80ce85-56db-06a9-08c3-e9423d75468d.png)

元記事を表示

【php】処理速度を調査する

“`php

元記事を表示

【php】3つの整数の比較

0-2の範囲の乱数を変数 $a, $b, $c にそれぞれ代入し、どの変数が最大であるかを表示してください。

1・0-2の範囲の乱数 $a, $b, $c をそれぞれ代入しておく。
2・変数のうち一つが最大値である場合、「変数○が最も大きい」と出力する
3・変数のうち2つが同じ値で最大である場合、「変数○と○が最も大きい」と出力する
4・3つの変数が全て同じ値の場合、「全て同じ値です」と出力する。

“`PHP

“`

“`PHP



最も大きい変数

最も大きい変数

$a:

$b:

$c:

元記事を表示

Laravel ページネーション 検索条件が引き継がれない

検索条件が引き継がれない問題発生

検索機能を実装して、ページネーションで次のページに遷移したとき検索条件が引き継がれない
問題が発生して解決したので記事にしました。

検索をかけて、URLを確認すると,下記のように表示されています。

category_id=1&page=1
//検索フォームで検索した結果

そして、2ページ目に遷移すると、

page=2
//ページ遷移した結果

あ、category_id=1が消えていました。
現状、bladeのページネーションのコードを確認すると下記のように設定されています。

 
{{ $projects->links() }}

下記のように変更すると、ページ遷移してもcategory_id=1&page=2
のように引き継がれました。

 
{{ $projects->appends(request()->input())->links() }}

参考記事

https://blog.dododori.com/c

元記事を表示

PHP始めました。とりあえずrand変数を使ってみたい。

PHPを始めました。プログラミング経験ないのでひたすらアウトプットして勉強していきます。

# とりあえず生活改善のプログラム作ろう
何もできない状態からスタートしましたが、なんも作れなかったら意味ないので、前から作りたいと思っていたプログラムをつくろうと思います。

作りたかったのは、2ケタ✕2ケタの計算問題を作成するプログラムです。

はい。くっそどうでもいい。笑
待ってください。これにはちゃんと理由があるんです。
実は2ケタ✕2ケタの計算って暗算でできるらしいんですよ。
これできたら、学校でマウントとれるんじゃね!?という好奇心から練習することにしたんです。
しかしながら、ネットから毎回問題を探すのはクソ面倒。

だったら自分で作るか、と思って作成に至りました。

# 作り方(超簡単)
完全初心者の僕でも、ちょっと勉強した知識で20分くらいでできました。
プログラミングって便利ですね。

書いたコードは総じてこれだけ。

“`

元記事を表示

Laravelアプリの画像アップロード機能をローカル環境と本番環境で条件分岐

# 概要
PHP初学者にとって画像アップロード機能の実装はなかなかの鬼門ですよね。本番環境でS3を用いて画像を表示させるのも時間がかかりました。
という事で、備忘録として記事にしてみます。

今回は、新規投稿ページで画像を保存し詳細ページで画像を表示、編集ページで画像を変更できるように実装していきます。
さらに本番環境(Heroku)で画像が表示できるようにAWSのS3を使用します。
ローカルと本番のコードを条件分岐し、ローカルではstorage/app/public下のフォルダへ、本番ではS3へ画像を保存できるようにしていきます。

# 環境
– PHP 7.2.34
– Laravel 7.30.4
– mySQL 8.0.23
– Docker
– Heroku
– AWS S3

# 前提
画像アップロード機能を追加するアプリケーションがあらかじめ作成されていること、HerokuやAWSなどの登録が完了済であることを前提として進めていきます。
あくまでこの記事は画像アップロード機能の実装がメインです。

# ローカルで実装
私が参考にした記事はこちらです→https://not

元記事を表示

OTHERカテゴリの最新記事