PHP関連のことを調べてみた

PHP関連のことを調べてみた

Stripe PHP SDK Connectの子アカウントの残高を取得する方法

## 概要

StripeにてConnectの子アカウントの残高をPHP SDKを使って取得する方法を簡単にまとめる。

## 方法

下記のようにコードを書くことで残高を取得する事ができる。

“`php
$stripe = new \Stripe\StripeClient(“stripeのシークレットキー”);

// 子アカウント(接続されたアカウント)のIDを指定
$connectedAccountId = ‘acct_から始まる子アカウントのID’;

// 子アカウントの残高を取得
$balance = $stripe->balance->retrieve([], [‘stripe_account’ => $connectedAccountId]);

echo $balance->pending[0]->amount; // まだ利用可能になっていない残高
echo $balance->available[0]->amount; // 利用可能になっている残高
“`

## 参考文献

https://docs.stripe.com/api/balance/balan

元記事を表示

Laravel開発をスムーズに!Blink Loggerで楽々デバッグ!

## Laravel Blink Logger

https://github.com/ucan-lab/laravel-blink-logger

– Laravel Blink Logger: v1.1.0 (記事公開時点)
– PHP: >=8.0.2
– Laravel: >=9.x

Laravelのクエリー、リクエスト、レスポンス、HTTPクライアントのログを出力するライブラリを作りました。
「Blink」はまばたきを意味するので、まばたきするようにログ出力をオン/オフ切り替えできるイメージでライブラリを作りました。

## 関連記事

この辺りの記事を元にライブラリを作りました。

https://qiita.com/ucan-lab/items/bfd15b096a916f811468

https://qiita.com/ucan-lab/items/7c81d568461d4026bd1b

https://qiita.com/ucan-lab/items/753cb9d3e4ceeb245341

https://qiita.com/ucan-lab/items/

元記事を表示

独習PHP学習メモ(Chapter2-変数)

[PHP8技術者認定初級試験](https://www.phpexam.jp/summary/novice8, ‘PHP8技術者認定初級試験’)取得を目指しています🔰

公式の認定教材である[独習PHP第4版](https://www.amazon.co.jp/dp/4798168491/)での学習のアウトプット用の記事です。

## 命名規則

#### 「$名前」の形式であること

“`php:例
// 良い例
$name
$address

// 悪い例
name
address
“`

:::note warn
「$名前」のように変数名には日本語を含むこともできますが、慣例的に
**英数字、アンダースコアに限定**するのが良い。
:::

#### 先頭は任意の文字かアンダースコアであること(数字はNG)

“`php:例
// 良い例
$_name
$data

// 悪い例
$123
$1data
“`

#### 名前の2文字目以降は数値を使用しても良い

“`php:例
// 良い例
$name1
$val1

// 悪い例
$name-1
“`

#

元記事を表示

global命令, static命令

## はじめに
PHPのglobal命令, static命令に関して整理する。

### global命令

ローカル変数を強制的にグローバル変数に割り当てる。

“`php:global.php
$x = 10;

function checkScope() {
global $x;
return ++$x;
}

print checkScope(); // 11
print $x; // 11
“`
### static命令

静的変数を定義する。

“`php:static.php
function checkStatic() {
Static $x = 0;
return ++$x;
}

print checkStatic(); // 1
print checkStatic(); // 2
print $x; // null
“`

元記事を表示

dokcer image buildでエラー吐いたのでubuntuを更新した。

docker-imageを作成するべく
作業ディレクトリのサブにapacheディレクトリを作成し
その中にDockerfileを作成。

“`Dockerfile
FROM ubuntsu:21.10

RUN apt update \
&& apt install -y apache2

CMD [“apachectl”, “-D”, “FOREGROUND”]
“`

以上を$ dokcer image build -t practice/apachest:latest

すると

“`
2.933 Err:5 http://ports.ubuntu.com/ubuntu-ports impish Release
2.933 404 Not Found
3.233 Err:6 http://ports.ubuntu.com/ubuntu-ports impish-updates Release
3.233 404 Not Found
3.547 Err:7 http://ports.ubuntu.com/ubuntu-ports impish-back

元記事を表示

Drupal開発するならやっておきたい3つのこと

この記事ではDrupalを使って開発作業をするならやっておくと良いことを紹介します。

# キャッシュの無効化
***キャッシュとはユーザーがアクセスしてページに表示された情報を一定期間覚えておくことでページの表示時間を早くする機能です。***

Drupalではさまざまなキャッシュが効いているためテーマやモジュールを開発中に有効化していると、
「ソースコードを修正したのに反映されない」「設定を変更したのに反映されない」といったことが発生することがあります。

そのため開発中はキャッシュを無効化することで開発作業を効率よくおこなうことができます。

## 設定手順
管理者権限を持つユーザーでログインし、
上部の管理者メニューの環境設定 > 開発 > 開発設定にアクセスします。
※<ドメイン>/admin/config/development/settings

下図のような画面が表示されますので、
以下全てのチェック項目にチェックを入れて保存します。

– Twig開発モード
– Twig debug mode
– Twigキャッシュを無効にする
– マークアップをキャッシュしない

元記事を表示

【Symfony】データを小分けに取得してバッチのメモリ使用量を減らす

先日バッチのリファクタを行ったのですが、データ取得の方法を少し工夫してメモリ使用量を小さくすることができました。
色んな場面で活用できそうと思ったのでqiitaにメモしておきます。

# 環境
開発環境: macOS Ventura v13.5.2
PHP: v8.1.13
Symfony: v5.4.11

# 経緯
ユーザーへのメッセージの自動再送を行うバッチがあり、送信対象の件数が急増した際に設定したメモリ上限値を超えてOOM(Out Of Memory)エラーが発生してしまうことがありました。

メモリ上限を引き上げる暫定対応を行ったのですが、今後送信件数が増加した場合に再発する可能性があったのでリファクタを実施しました。

修正前のバッチのデータ取得部分は以下のような実装になっていました(実際のコードと内容を一部変更しています)。

対象データを取得・関連エンティティを紐付ける:
“`php
/**
* @return ResendMessage[]
*/
public function getListByReservationTime(\DateTime $from,

元記事を表示

配列関数・4回目

## はじめに

配列関数の整理。4回目。

### array_map

要素を取得・加工し新たな配列を生成する。

“`php:array_map.php
$data = [1, 2, 3];
$result = array_map(function ($v) { return $v * $v; }, $data);
print_r($result); // Array ( [0] => 1 [1] => 4 [2] => 9 )
“`

### array_filter

配列の内容をコールバック関数で判定し、その中でtrueと判定された要素だけを取得する。

“`php:array_filter.php
$data = [‘フレンチブルドッグ’, ‘ヨークシャーテリア’, ‘ダックスフント’, ‘ポメラニアン’, ‘コーギー’];
$result = array_filter($data, function($v) {
return mb_strlen($v) < 8; }); print_r($result); // Array ( [2] => ダックスフント

元記事を表示

【PHP8.4】`$http_response_header`を取得する関数が実装される

“`php
$dummy = file_get_contents(‘http://example.com’);

var_dump($http_response_header); // ←なにこれ?
“`

PHPには、[予め定義されている変数](https://www.php.net/manual/ja/language.variables.predefined.php)がいくつかあります。
有名どころとしては`$_REQUEST`・`$_SESSION`等の[スーパーグローバル変数](https://www.php.net/manual/ja/language.variables.superglobals.php)、PHPをコマンドライン実行した際に入ってくる[$argc・$argv](https://www.php.net/manual/ja/reserved.variables.argc.php)です。

そしてそれ以外にひとつだけ特殊な変数があり、[HTTPラッパー](https://www.php.net/manual/ja/wrappers.http.php)を使うと

元記事を表示

PHP 入力フォーム値をDBに保存

# `form.php`に入力した値をDBに保存するための準備

__●__ 以前に作成した、[form.php](https://qiita.com/takadayo/items/8bd1dac086e1d29da797) の `$pageFlag === 2`セクションにDB接続及びDB保存処理を実装するための準備をする

※ フォーム入力なのでDB保存には `prepare`, `bind`, `execute` を使う
しかし、 `form.php`の入力項目は全て文字列なので `execute(配列(全て文字列))` というように処理ができるので、`bind` は不要になる。

__●__ DB接続には以前に作成した [db_connection.php](https://qiita.com/takadayo/items/3c1c5f7e4cdd08071a52) を読み込ませるようにする

## `insert.php`ファイルを作成及び編集

– まずはテストしてみる

“`php:insert.php

元記事を表示

PHP8技術者認定上級試験合格体験記

# はじめに
先日、PHP技術者認定機構が実施しているPHP8技術者認定上級試験に、
1500満点の内1300点を取得して合格しました。

元記事を表示

PDO トランザクション

# PDO トランザクション `beginTransaction`, `commit`, `rollback` の3種類のメソッドを使用する

__●__ トランザクション: まとめて処理

– 参考: [PDOクラス](https://www.php.net/manual/ja/class.pdo.php)

– 使用されるシチュエーション例:
銀行ATM: 残高を確認->Aさんから引き落とし->Bさんに振込などこれらを全部まとめて処理をする(もし、何か問題があれば元に戻す)。

“`php:index.php
beginTransaction(); // トランザクションを始める

try {
// sql処理
$stm

元記事を表示

サクッとS3からローカルにダウンロードする

# 概要
1個2個のファイルならともかく、20個以上のS3のファイルをサクッとローカルにダウンロードしたいということありませんか?私はありました。そんなときのための覚書。phpのペライチで実現。

# 前提
プロダクトにs3のキーを持つテーブルがある、ないし別でs3のキー一覧を手元に持っていたとする

# 事前準備
①VisualStudioCodeをインストール
②拡張機能、PHP Serverをインストール
これにより、ペライチのphpを簡単にブラウザで実行できる。業務効率化にめちゃ便利
③composerをインストール
④composerでaws-sdkをインストール
“`
composer require aws/aws-sdk-php
“`

# コード

S3からキーを利用して、ローカルにファイルを落とす場合
“`php

元記事を表示

PDO プリペアードステートメント プレースホルダ

## データベースのデータを表示させる

– `index.php`の作成及び編集

__●__ ユーザー入力がない場合(SQL文が決まっているパターンで毎回同じような表示をするような時)は query関数を使用 (PDOStatementクラス)

– 参考: [PDOStatement](https://www.php.net/manual/ja/class.pdostatement)

“`php:index.php
query($sql); // sql実行される

$result = $st

元記事を表示

配列関数・3回目

## はじめに

配列関数の整理。3回目。

### usort

標準的なソート関数では表現できない順序に基づいてソートする

“`php:usort.php
$keys = [‘十’, ‘百’, ‘千’, ‘万’, ‘億’, ‘兆’, ‘京’, ‘垓’, ‘秭’, ‘穣’, ‘溝’,
‘澗’, ‘正’, ‘載’, ‘極’, ‘恒河沙’, ‘阿僧祇’, ‘那由他’, ‘不可思議’, ‘無量大数’ ];

$data = [‘那由他’, ‘京’, ‘垓’, ‘億’, ‘無量大数’ ];

usort($data, function($a, $b) use ($keys) {
return array_search($a, $keys) <=> array_search($b, $keys);
}); // [‘億’, ‘京’, ‘垓’, ‘無量大数’, ‘那由他’]
“`

### array_walk

配列から順に要素を取得&処理する

“`php:array_walk.php
$data = [‘高江’ => ‘男’, ‘掛谷’ => ‘女’, ‘日尾’ =>

元記事を表示

Drupalでカスタムテーマを作ってみよう

この記事ではDrupalでカスタムテーマを作成するやり方をご紹介します。

# Drupalにおけるテーマとは
DrupalにおいてテーマとはWEBサイトのページを構成する各要素のレイアウトや視覚的な見た目を定義するファイルの集合体です。

このテーマには大きく分けて3つあります。

– コアテーマ
– コントリビュートテーマ
– カスタムテーマ

## コアテーマとは
コアテーマとはDrupalインストール時にすでに使用可能となっているテーマのことです。
Drupal10では以下の3つが最初から使用できます。

Olivero
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/0ad2e766-fe11-b308-40cf-e9c08a56b035.png)

Claro
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/622183/f9422829-b7b1-01f3-f00f

元記事を表示

PDOでデータベースと接続 (基本)

# PDOクラスで接続する方法

– 参考: [PDO::__construct](https://www.php.net/manual/ja/pdo.construct) ※ 一番初めに呼ばれる

## `db_connection.php` を作成及び編集

“`php:db_connection.php
ge

元記事を表示

laravelでの静的ページカンタン生成

“`php5:route/web.php
//必ず最後にかくこと
Route::get(‘{code}’, ‘PageController@page’);
“`

“`php5:contoller

元記事を表示

WordPressにおけるグローバル変数$postについて

WordPressにおけるグローバル変数 `$post` は、WordPressのループ中で現在処理している投稿(またはカスタムポストタイプ)のオブジェクトを指します。この変数はWordPressコアによって自動的に設定され、投稿の詳細な情報を含んでいます。例えば、投稿ID、タイトル、内容(コンテント)、投稿日時、スラッグなどが含まれます。

## グローバル変数 `$post` の役割

– 投稿データのアクセス:テンプレートファイルやプラグイン、テーマの関数内で、現在表示または処理中の投稿データにアクセスするために使用されます。
– テンプレートタグのコンテキスト: `the_title()`, `the_content()`, `the_permalink()` などのテンプレートタグは、 `$post` 変数からデータを取得し、現在の投稿に関連する情報を出力します。

## どのように機能するか

WordPressのページを表示する際、メインのクエリ(WordPressループ)を実行して投稿データを取得します。このとき、ループの各イテレーションで `$post` 変数は現在の

元記事を表示

配列関数・2回目

## はじめに

配列関数を整理する。2回目。

### array_search
特定の値を検索する

“`php:array_search.php
$data = [‘PHP’, ‘Javascript’, ‘PHP’, ‘Java’, ‘C#’, ’15’];
$data2 = [‘X’ => 10, ‘Y’ => 20, ‘Z’ => 30];
var_dump(array_search(‘Javascript’, $data); //int(1)
var_dump(array_search(‘PHP’, $data); //int(0)
var_dump(array_search(‘Java’, $data); //bool(false)
var_dump(array_search(15, $data); //int(5)
var_dump(array_search(15, $data, true); //bool(false)
var_dump(array_search(10, $data2); //string(1) “X”
“`

### in_array

要素の

元記事を表示

OTHERカテゴリの最新記事