PHP関連のことを調べてみた2023年02月12日

PHP関連のことを調べてみた2023年02月12日

PHPStormでPHP CS Fixerを設定する方法。(WSL2上のファイルにも適用する方法付き)

# 概要
PHPStormを愛用しています。
PHPでの開発を行っていると必ず使うPHP CS Fixerですが、その設定方法をまとめました。
特に、WSL2のUbuntu上に配置されているプロジェクトのファイルに適用する方法がいくら調べても分かりませんでしたが、今回ようやく方法を見つけたので残しておきます。

# 前提
– Windowsで開発していること
– gitbashとubuntuを併用していること

# 事前設定
PHPのインストールから記載します。PHPStormでの設定方法が知りたいせっかちさんは[こちら](#phpstormに設定)

### PHPのインストール
1. [PHPのWindows用ファイル群ダウンロードページ](https://windows.php.net/download#php-8.1)から`VS16 x64 Non Thread Safe`と書かれたzipファイルをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314245/

元記事を表示

【初心者向け】cakePHPって何?

# 目次
[1.はじめに](#1-はじめに)
[2.PHPとは](#2-phpとは)
[3.cakePHPとは](#3-cakephpとは)
[4.おわりに](#4-おわりに)

# 1. はじめに
– 軽い自己紹介
– 2021年の4月にほぼ未経験でIT企業に入社した新卒2年目
– 研修終了後は某業界向けの基幹システム開発でcakePHPを使用
– 本記事記載のきっかけ
– cakePHPそのものについてあまり詳しくないと思った
– cakePHPについて、現状の認識の整理をしたい
– 読んでほしい人
– cakePHPに興味がある初心者の方
– プログラミンに興味はあるけど、どのような言語をすれば分からないという方

# 2. PHPとは
– PHPとは
– Webページを作成する為によく用いられるサーバーサイドスクリプト
– サーバーサイドスクリプト:Webブラウザで読み込まれる前に、Webサーバーで実行されるプログラミング言語
– 「ウェブページをWeb 開発者が速やかに作成できるようにすることを主

元記事を表示

PHP導入、MAMPで「The requested URL was not found on this server.」で1時間溶かした話。

タイトル通り、PHPの導入の際、ページが反映されず、1時間と溶かしました。

お急ぎの方は[結論](https://qiita.com/saburo555/items/7db1d62ae9b6237b7441#結論)へ!

# 過程
MAMPをインストールし、起動でき、初期ページも表示されるのに、「The requested URL was not found on this server.」が表示される。

Document rootもhtdocsになっていて、「MAMP/conf/apache/httpd.conf」内のDocumentRootも同じになっていて、間違いがない。

参考
https://qiita.com/vber_program/items/962d32ece552d4ebeacf

エラーログも見るも、以下のサイトのようなエラーはなく、お手上げ状態に。。。

参考
https://teratail.com/questions/288997

# 結論

もう一度コードを見ると、明らかなミスを発見!

“`php:NGコード

元記事を表示

PHPで変数の型によって条件分岐させる方法

PHPでは、変数の型に応じて条件分岐することができます。以下にいくつかの方法を示します。

## is_*関数を使用する
PHPには、変数の型を判定するための「is_*」系の関数が用意されています。例えば、「is_int」関数は整数型かどうかを判定するために使用されます。

“`php
$value = 42;

if (is_int($value)) {
echo “Value is an integer.”;
} else {
echo “Value is not an integer.”;
}
“`

## gettype関数を使用する
「gettype」関数は、変数の型を文字列として取得することができます。この文字列を使用して、条件分岐することができます。

“`php
$value = 42;

switch (gettype($value)) {
case “integer”:
echo “Value is an integer.”;
break;
case “double”:
echo

元記事を表示

PHPのarray_map関数の使い方

## 概要
`array_map` 関数は、配列のすべての要素に一定の処理を行い、新しい配列を生成するために使用されます。次のような形式で使用できます。
“`php
array_map(callable $callback, array $array1 [, array $array2, …]);
“`
* callback: 配列のすべての要素に適用される関数またはコールバック。
* array1, array2, …: 処理対象の配列。

この関数は、指定された配列のすべての要素に、$callback 関数またはコールバックを適用して、新しい配列を返します。配列の要素数が異なる場合、最も小さい配列の要素数に合わせて、他の配列の要素は無視されます。

## 使用例
### 通常の関数
次の例では、数値配列内のすべての数値を2倍する関数を使用して、array_map 関数を使用する方法を示します。

“`php

元記事を表示

PHPで名前空間内でPDOを使う方法

PHPで名前空間内でPDOを使うには、次のように記述します。

“`php
namespace YourNameSpace {
use PDO;
// …

$pdo = new PDO(…);
// …
}
“`
このように、名前空間内でuse構文を使用してPDOクラスをインポートし、その後にPDOオブジェクトを生成することができます。

注意:PDO拡張モジュールがPHPにインストールされていることが前提となります。また、接続文字列(. . .の部分)は適切なものに置き換えてください。

元記事を表示

【サンプル動画あり】選択した画像src の情報をpostして、次ページで表示させる。Jquery

### サンプル動画
![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/af2105b5-e7ec-9647-b3be-e4ff15406b45.gif)

#### 流れ

1:index.php(テーブル選択画面)で、Jqueryでクリックした要素のsrcのパスを取得する

2:1で取得したパスを、

タグの、valueに入れて、postする。

3:form.php で、postされた画像パスを受け取り、表示させる。

#### ソースコード(抜粋)

“`index.php

#


見やすいコードを書くためにPSR-12を見て学ぶ

## はじめに
キャメルケースやケバブケースなど、コードを書くにあたって適切な書き方があるのはなんとなく知っていたが、認識としてある程度のルール化がされていることを知った。
それが`PSR-12`とのこと。

行の長さはどのくらいにしなければいけない、だったり
メソッド名の前に単一のアンダースコアをつけてはいけないなどルールが記されている。
https://www.php-fig.org/psr/psr-12/#44-methods-and-functions%EF%BC%89

こういうのがあるんだぞー。
というのを常に忘れないためにも備忘録として残す。

## 今回参考にした箇所
備忘録だったのでほぼほぼこの記事の役目は終了しましたが、今回実際に何をするために確認したのかも書いておく。

### メソッドを書く場合どのケースで書くべきか

“`

元記事を表示

EC2 RHEL環境にLaravel環境を構築

# EC2 RHEL環境にLaravel環境を構築
:::note warn
EC2を構築済みであり、SSHで接続できることが前提
:::
## EC2へSSH接続
1\. EC2へSSH接続
2\. roo権限にする
“`
$ sudo su –
“`
## PHPをインストール
“`
$ yum install wget
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
$ subscription-manager repos –enable=rhel-7-server-optional-rpms
$ yum install yum-utils
$ yum module install php:7.2
$ yum inst

元記事を表示

EC2にMariaDB & CakePHP環境を作成

# EC2にMySQL & CakePHP環境を作成
:::note warn
EC2を構築済みであり、SSHで接続できることが前提
:::
## EC2へSSH接続
1\. EC2へSSH接続
2\. roo権限にする
“`
$ sudo su –
“`
## yumのアップデート
1\. yumのアップデート
“`
$ yum update -y
“`
## Apacheのインストール
1\. Apacheのインストール
“`
$ yum -y install httpd
“`
2\. Apacheのバージョン確認
“`
$ httpd -v
Server version: Apache/2.4.54 ()
Server built: Jun 30 2022 11:02:23
“`
3\. Apacheの起動・自動起動設定
“`
$ systemctl start httpd.service
$ systemctl status httpd.service
● httpd.service – The Apache HTTP Server
Loaded:

元記事を表示

WordPressでリビジョン機能を無効化する

# 1. はじめに

## 1.1. 対象
– WordPressでリビジョンを無効化したい人
– テーマ開発をしている人

## 1.2. 経緯
– wp-configで設定するパターンは検索にヒットするものの、functionsで設定するパターンがヒットしなかった
– プラグインがあるなら、フックでどうにかできるはず…とコアファイルを探したら方法を発見したので、忘備録も兼ねて

# 2.1. 本題

## 2.1. functions.phpで設定する

:::note info
**POINT**
1. `wp_revisions_to_keep` フックでフィルタする
2. リビジョンの最大保持件数を 戻り値に設定する
:::

### 2.1.1. あらゆる投稿でリビジョンを保存しない

“`php:functions.php
add_filter(“wp_revisions_to_keep”, “disable_all_revisions”);
function disable_all_revisions() {
return 0;
}

“`

###

元記事を表示

【Laravel】通常の実行で正常に動作する処理がコマンド実行ではエラーになる原因がAuthファサードだった!

通常の実行(ボタンを押すと発火する処理等)では、上手くいくのに、ターミナルでのコマンド実行(`php artisan batch:Test`)や、自動実行(`php artisan schedule:run`)で実行した場合にエラーになりました。

原因はauthファサードだったので、備忘録を兼ねて記事にしました。

## 考察
authファサードはログインした状態のユーザーが実行した場合に使えるメソッドです。

今回、私が実行したコマンド処理がcronで自動実行する処理だったため、ログインしていない状態で実行していました。

そのため、authファサードを実行しても空が返ってきたようです。

開発時にログインした状態でボタン発火を行い検証していたため、同じ処理でもコマンド時に上手くいかなかったようです。

ボタン発火の処理であれば、laravelの`dd`機能が使えて楽に開発できるのですが、こういった点に目を落とすため注意が必要ですね。

次に検証の際に実行した処理を記載します。

## 実行処理

“`ruby:TestCommand.php
class TestCommand

元記事を表示

【Laravel】祝日を取得するライブラリ

Laravelで祝日を扱うことがあり、Yasumiというライブラリが便利でした。

https://github.com/azuyalabs/yasumi

## インストール
“`
composer require azuyalabs/yasumi
“`
## 使用例
“`php
getHolidayDates();
“`

“`php
// $holidayArrayの中身
array (
‘newYearsDay’ => ‘2023-01-01’,
‘substituteHoliday:newYearsDay’ => ‘2023-01-02’,
‘comingOfAgeDay’ => ‘2023-01-09’,
‘nationalFoundationDay’ => ‘2023-02-11’,
‘emperorsBirth

元記事を表示

GOを使ってLaravelのSeederクラスを生成するプログラムを作った

最近、GOを学習しているのと、csvファイルのデータからLaravelのSeederを作成するタスクがあったので、Seederを作成するツールをGOを使って作ってみました。

## 作ったソース
ついでに、DBからデータを取得し、Seederを作成するプログラムも作りました。
使い方は、README.mdを参照してください。

https://github.com/murapon/generate_seeder_by_golang

## 参考にしたサイト
https://qiita.com/ikawaha/items/28186d965780fab5533d

https://chat.openai.com/chat
を使って、回答を得た。

スネークケースのファイル名をアッパーケースに変更する方法
![スクリーンショット 2023-02-08 17.59.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37929/358e0ba1-f95b-64c6-5903-526059b7780f.png)

元記事を表示

blastengineのPHP SDKを使ってメールを一括配信する

blastengineはエンジニアフレンドリーなメール配信サービスです。APIとSMTPリレーの両方をサポートしており、手軽に素早くメール配信ができるようになっています。

今回はPHPでblastengineのAPIを簡単に使えるSDKを開発しましたので、使い方を紹介します。今回は大量の宛先に対して一括配送する、バルクメールの使い方です。

[blastengine/blastengine \- Packagist](https://packagist.org/packages/blastengine/blastengine)

## インストール

インストールはcomposerで行ってください。

“`
composer install blastengine/blastengine
“`

## インポート

autoloaderでファイルを読み込みます。

“`php
require __DIR__ . ‘/vendor/autoload.php’;
“`

## 初期化

Blastengineを初期化します。ユーザ名とAPIキーを使います。

“`php
//

元記事を表示

blastengineのPHP SDKを使ってメールを即時配信する

blastengineはエンジニアフレンドリーなメール配信サービスです。APIとSMTPリレーの両方をサポートしており、手軽に素早くメール配信ができるようになっています。

今回はPHPでblastengineのAPIを簡単に使えるSDKを開発しましたので、使い方を紹介します。現在はトランザクションメール(即時発信メール)のみサポートしています。

[blastengine/blastengine \- Packagist](https://packagist.org/packages/blastengine/blastengine)

## インストール

インストールはcomposerで行ってください。

“`
composer install blastengine/blastengine
“`

## インポート

autoloaderでファイルを読み込みます。

“`php
require __DIR__ . ‘/vendor/autoload.php’;
“`

## 初期化

Blastengineを初期化します。ユーザ名とAPIキーを使います。

“`php

元記事を表示

blastengineのPHP SDKを使ってCSVで宛先を一括取り込みする

[blastengine](https://blastengine.jp/)はエンジニアフレンドリーなメール配信サービスです。APIとSMTPリレーの両方をサポートしており、手軽に素早くメール配信ができるようになっています。

今回はPHPでblastengineのAPIを簡単に使えるSDKを開発しましたので、使い方を紹介します。この記事ではバルクメール(一括送信メール)で、メールの宛先をCSVからインポートする方法を紹介します。

## インストール

インストールはcomposerで行ってください。

“`
composer install blastengine/blastengine
“`

## インポート

autoloaderでファイルを読み込みます。

“`php
require __DIR__ . ‘/vendor/autoload.php’;
“`

## 初期化

Blastengineを初期化します。ユーザ名とAPIキーを使います。

“`php
// 初期化
Blastengine\Client::initialize($your_user_id,

元記事を表示

Zoom Webhookのvalidationを通す PHP編

Zoom APIのWebhook機能を使用しようと思い、endpoint URLを入力したところこんなエラーが出ました。

“`
Event notification endpoint URL – URL validation failed. Try again later
“`

[Using webhooks](https://marketplace.zoom.us/docs/api-reference/webhook-reference/#validate-your-webhook-endpoint)

ドキュメントを読むと、CRCという形式を返さないとvalidationが通らないとのこと。
Node.jsのサンプルしかなかったので、PHPで書き直してみました。

# challenge-response check (CRC)

まず、Zoomアプリに記載されているSecret Tokenを用意します。
そしてエンドポイントのPHPを書きます。

“`php
$body = file_get_contents(‘php://input’);
$bodyJson = js

元記事を表示

PHPでハイフン(マイナス)に似た文字を統一する

必要に応じて配列は増減させること

“`php
str_replace([
“\u{02D7}”,
“\u{1173}”,
“\u{1B78}”,
“\u{2010}”,
“\u{2011}”,
“\u{2012}”,
“\u{2013}”,
“\u{2014}”,
“\u{2015}”,
“\u{2043}”,
“\u{207B}”,
“\u{2212}”,
“\u{25AC}”,
“\u{2500}”,
“\u{2501}”,
“\u{2796}”,
“\u{30FC}”,
“\u{3161}”,
“\u{FE58}”,
“\u{FE63}”,
“\u{FF0D}”,
“\u{FF70}”,
“\u{10110}”,
“\u{10191}”,
], ‘-‘, $value);
“`

元記事を表示

PHPを基本からまとめてみた【PHPの基本】

## 現在時刻を表示する

“`sample.php

“`

## 文字列と数式を連結する

“`sample①.php

“`

“`sample②.php

“`
## オブジェクトで日付けを扱う

“`sample.php
setTimezone(new DateTime(‘Asia/Tokyo’));
echo ‘現在は、’. $today->format(‘G時 i分 s秒’) . ‘

元記事を表示

OTHERカテゴリの最新記事