php

279 件の記事

2026

RelayerというPHPのフレームワークを作った

以前、usePHPというライブラリを作っているという記事を書いた。 その後、仕事が忙しくてなかなか開発を進められなかったが、やっと最近時間ができてusePHPの開発を進めることができた。 usePHPはReactのようなUIに関するライブラリであって、それ単体だけで使うことはちょっと難しい。 一応Router機能がある…

usePHPというライブラリを作っている

ここ数年PHPを使った開発を避けるようにしてきた。 理由は簡単で、Vercel + Nextjs(App Router)が結構強力な存在だったから。 ここ数年PHPを使わない理由 PHPでバックエンド作ってAPI仕様書を用意して、フロントエンド側として独立して開発みたいなの一見良さそうに見えるけど結構ツラミがある AP…

2025

Guzzleで空配列のパラメータをオブジェクトとして送る方法

GuzzleでJSONをリクエストボディにセットしてPOSTリクエストを送る際、空配列のパラメータは空配列としてJSONに変換される。これはPHPの仕様として仕方ない部分がある。 しかし、空のオブジェクト {} として変換したい場合もある。 例えば弊社で作っているPrintgraphのAPIでは、params というリ…

Zendesk APIでプライマリメールアドレスを更新する方法

はじめに Zendeskを利用しているとき、ユーザーのプライマリメールアドレスを変更する必要が出てくることがあります。特にAPIを使って自動化する場合、少し複雑な手順が必要になります。 今回は、Zendesk APIを使ってユーザーのプライマリメールアドレスを更新する方法についてご紹介します。 なぜ複雑なのか? Zen…

2024

Guzzleでbase_uri指定したときに遭遇したトラブル

GuzzleはPHPでよく使われるHTTPクライアントの一つです。 しかし、Guzzleを使う際に base_uri に関連するトラブルに頻繁に遭遇することがあります。この問題を解決するために、base_uriの使い方と、その際に注意すべき点をこの記事でまとめます。 base_uriの使い方 Guzzleのクライアント…

VercelでBEAR Sundayを動かしてみた

Vercelは、Next.jsなどのフロントエンドアプリケーションのproduction環境としてよく使われますが、実はPHPも動かすことができます。 vercel-community/php PHPerとしては、何かPHPのアプリケーションをVercelで動かしたいと思い、今回はBEAR SundayをVercelで…

BedrockとWpRestaを使ってWordPressで独自のAPIを作成する

WordPressをHeadlessCMSとして使いたいと思い、WordPressが用意しているREST APIではなく、独自のエンドポイントを作りたいと考えました。 通常、独自のエンドポイントを設定する場合は rest_api_initのアクションフックを使用します。 WP REST API を使って独自エンドポイン…

2023

nelmio/aliceでcurrentの値をintegerとして扱う方法について

ちょっと古いプロジェクトで、SymfonyのバージョンやPHPのバージョンを上げたいと思いましたがテストがないのでこわいなということで、テストを書き始めました。 nelmio/aliceを使ってテスト用のダミーデータを作っていましたが current まわりでちょっとつまずいてしまいました。 どのような問題が起きたのか…

2022

Herokuのphp.iniについて

Herokuの.user.iniに関するトラブルがあったのでメモしときます。 (以前もはまったようなハマってないような・・・。) HerokuでPHPの設定を変更するときは .user.ini を利用して設定を変更します。 .user.iniはあるのに設定が反映されない 今回起きたトラブルは.user.iniがあるのに…

2021

Docker環境でphp8 + xdebug3を設定する

Docker composeでそれっぽい環境を用意して、xdebug動かしてみたよって話です。 docker-composeの定義 こんな感じです。 version: "3" volumes: db-store: services: db: image: postgres:11 volumes: - db-store:…

Macにphp-amqpをインストールする

BigSurなMacにPHP7.4の環境の構成に php-amqpを入れた見聞録です。 きっかけはsymfony/messengerコンポーネントでキューの処理にRabbitMQを使おうとしたらphp-amqpが必要だと言われたことでした。 librabbitmqを入れる brewで入れます。 $ brew insta…

symfony/mailerでdisable_deliveryをfalseしたい

最近のSymfonyでメール送信をする場合にSwiftmailerではなくsymfony/mailerを使うことが多いかと思います。 テストではメール送信したくないみたいなことも多いハズ。 Swiftmailerでテスト時にメールを送らないようにする 公式ドキュメントに記述がありますが、swiftmailer.yaml…

PHPerKaigi2021にほんの少しだけ参加できた

今年のPHPerKaigiはオンラインなので子育て中でも参加できるぞ!!! なんて最初は気合をいれていたものの、仕事が忙しかったり、引っ越しでバタバタしていたりで全然参加できなかった僕です。 で、お前どの発表聞いてたのよ? 実践ATDD 〜TDDから更に歩みを進めたソフトウェア開発へ〜 そのコード、フレームワークの外で…

SymfonyのPdoSessionHandlerを使う場合の注意点

今日はPdoSessionHandlerでハマったので記録しておく。 何にはまったのか? PdoSessionHandlerを利用する際にunix socketでMySQLに接続しようとしたら、PHP Notice: PDOException: SQLSTATE[HY000] [2002] No such file o…

docker環境でcomposer requireがうまくいかなかった

古いphpの場合はdockerのメモリ割り当てを多めにしたほうがいいかもです。 今回は大人の事情で使っているPHP7.1系でcomposer requireしたら、うまくいかなかったので色々と頑張った結果を記事に残しておきたいと思います。 docker-composeファイル まず、大人の事情でPHP7.1の環境が必要…

2020

Symfonyのwebpack-encoreのためにdockerのmulti stage buildを使う

Symfonyを動かすコンテナを作るときにPHPだけの環境なら比較的に作りやすいです。 ただ、webpacke-encoreが絡んでくるとちょっとめんどくさい。 なのでmulti stage buildを利用してサクッと環境を作ってみました。 まずは普通にphpだけのコンテナ 自分はこんな感じにすることが多いです。 F…

NelmioApiDocBundleでJsonSchemaファイルを活用する

nelmio/NelmioApiDocBundleでスキーマの定義するのは結構だるいことが多いです。 @Model アノテーションとか使って簡単に定義することもできますが、最終的にJSONになるのにクラスにマッピングしてレスポンス返すのが微妙だと感じる場合もあると思います。 そこで、JsonSchema活用できないかな…

Symfony4.4をGAE/phpで動かす

GAE/php(Standard Environment)でSymfony4.4を動かす機会があったのでRun Symfony on App Engine standard environmentをみながらSymfonyを動かしました。 発生した問題 「composer install後のauto-scriptsでエラ…

SymfonyのRememberMeについて調べてみた

SymfonyのRememberMeとはなんぞや?今まで雰囲気で使ってたので調べてみた。 RembemerMeとは? どのように実現しているのか? RememberMeとは? 公式ドキュメントによると以下のように記載されている。 ユーザーが認証されると、通常、ユーザーの資格情報がセッションに保存されます。つまり、セッシ…