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

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

PHPのgRPC Serverがオフィシャルでサポートされてた件

## はじめに
これまでgRPCをPHPで扱うにはクライアントの用途しか存在せず、公式ドキュメントもサーバ側の実装はNode.jsで実装されるという悲しい現実をペチパー達は噛みしめていました。

– [なぜPHPはgRPCサーバーがサポートされていないのか?](https://youngforever.hatenablog.com/entry/2018/02/18/172852)
– [PHPでもgRPCサーバを立てたいだけの人生だった](https://speakerdeck.com/n1215/phpdemogrpcsabawoli-tetaidakefalseren-sheng-datuta)

しかし、githubのPRを暇つぶしにボケーっと見ていたところどうやら実装されているらしいというのがわかったので動作確認までやってみました。

## gRPCリポジトリの該当PR
https://github.com/grpc/grpc/pull/26841

> last step to complete php server.
( gRPCサーバーを完成させる為の最後のステップ )

元記事を表示

composerのupdateコマンドが中途半端な綴りでもOKな理由を探る

# 要するに

* `composer upda` とかの中途半端なコマンドでも `update` と解釈してくれる
* symfony が前方一致で探索してくれているおかげ

# ことの始まり

“`bash
[higa@local]$ composer upda
“`
あらー。 `update` としたいところ、間違えて `upda` って打っちゃったー。
これはコマンド失敗でしょうねー。

“`bash
[higa@local]$ composer upda
Loading composer repositories with package information
“`

へ?

“`bash
[higa@local]$ composer upda
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
# 以下略
“`

ほ?
普段の `update` と同

元記事を表示

LaravelでShopifyアプリ開発 | Pageで新しいページ作成

#はじめに
shopify業務に携わることになったため、勉強の日々を過ごしているモモナです。
2週間前にshopifyの勉強を始めたばかりなのでわからない部分も多々ありますが、初学者なりに学んだことをまとめていこうと思っています。
訂正箇所や認識違いなどあれば、ご指摘お願いします。

今回は、Laravelを利用したshopifyアプリ開発でのページ作成を紹介します。

#動作環境
Mac OS Catalina
PHP 7.4.27
Laravel Framework 8.76.2

#環境構築
shopifyの登録方法などは、他に詳しくまとめている方もいるので割愛させていただきます。
公式サイトでも流れは確認できるかと思います。

https://www.shopify.jp/blog/partner-shopify-app-development?utm_source=shopifydev&utm_medium=youtube&utm_campaign=jp_shopifydev_youtube

今回、Laravelでの開発のため下記サイトを参考にさせていただきました。

h

元記事を表示

【WordPress】ヘッダーナビゲーションの各リンクの貼り方

静的なHTMLサイトをWordPress化している時に詰まった箇所を記録。
ナビゲーションをクリック後、各固定ページに飛べるように実装したい。
##サンプルコード

“`html:index.html

“`

##①下準備
WordPressテーマのダッシュボード内にカスタムメニューを表示させる為の処理をfunctio

元記事を表示

Laravel Simple Datatable

Laravel Simple Datatable enhances the accessibility of data in HTML tables

[https://github.com/cuongnd88/lara-simple-datatable](https://github.com/cuongnd88/lara-simple-datatable)

1-Install `cuongnd88/lara-simple-datatable` using Composer.

“`php
$ composer require cuongnd88/lara-simple-datatable
“`

2-Add the following service provider in `config/app.php`

“`php
[
. . . .
‘SimpleDatatable’ => Cuongnd88\LaraSimpleD

元記事を表示

DockerのPostgres環境でDB接続エラー(could not find driver)

## エラー内容
Dockerで立ち上げたPHP+Postgresの環境で、PDOを利用してDB接続を行なったときに下記が発生

“`
could not find driver
“`

## 原因
DockerのphpコンテナにPDOドライバーがインストールされていないことが原因

## 対策
Dockerfileを使ってPDO(pdo_pgsql)をインストールして解決する
phpのDockerfileに下記を追加

“`
RUN apt-get update && apt-get -y install libpq-dev
RUN docker-php-ext-install pdo_pgsql
“`

注意点として、単にpdo_pgsqlをインストールしようとするとエラーが発生してしまうため、先にlibpq-devをインストールするのがポイント

元記事を表示

PHP FPM の設定

## 前提
次の手順の続きで進める。

https://qiita.com/silverskyvicto/items/c302133a2bfafe1ba511

## 手順

1. 必要なファイルをコピーする

“`
# cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
# cp sapi/fpm/php-fpm /usr/local/bin
“`

2. `php.ini`ファイルを編集する

“`
# vi /usr/local/php/php.ini
“`

“`php.ini
cgi.fix_pathinfo=0

expose_php = Off
“`

3. php-fpm.confファイルを編集する

“`
# cp /usr/local/etc/php-fpm.conf /usr/local/etc/php-fpm.conf.org
# vi /usr/l

元記事を表示

お名前.comのレンタルサーバRSプランでphpを定期的に自動実行させる方法

# 目的
タイトルの通り、お名前.comのレンタルサーバをRSプランで借りてる人が、phpを定期実行させること。

いま私は、クラウドファンディングサイトを構築したくて、金融機関名や支店名の照合を行うためにデータベースに金融機関名、支店名を登録しているが、これを1日に1度(毎日0:00 AM)とかでインターネット上のjsonに同期したい。

ネットに情報がほとんどなかったし、公式サイトにも「OSはLinuxです」程度のことしか書いていなく、どのコマンドが使えるかとか、ディレクトリ構造がどうなのかとかの説明がほとんどなく苦労した。なので次回からは楽できるようにここにメモしておく。

# 手順

1. SSH通信をする
2. CRONを設定する。

## 1. SSH通信をする

SSH通信とは、「コンピュータを遠隔操作する通信」の手法の一つ。
お名前.comのレンタルサーバRSプランのコントロールパネルには、phpの定期実行を行うためのツールが用意されていないので、レンタルサーバを遠隔操作(ハッキング)<

元記事を表示

【PHP】.envで環境変数を扱いたいときの設定

## .envファイルから値を読み込むと接続できない

“`
php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
“`

– なぜかuser名やpassword名を .env で読み込んで、変数に代入した値を使用すると、そんなファイルが無いと怒られてしまう。
– .env を経由せずに同じファイル上で指定するとなぜか接続できる。

## .envを読み込む設定

そもそも .env を読み込めないのは、デフォルトでは読み込む設定されていないから!!
phpdoenv をインストールする必要がある。

[GitHub – vlucas/phpdotenv: Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically.](https://github.com/vlucas/phpdotenv)

## 設定手順

①ターミナルで

“`
$ com

元記事を表示

【PHP】MAMPでcURL関数を使いたい(CAファイルの追記が必要)

## 結論

– cacert.pem(CA証明書をダウンロードする)
– php.iniを書き換える

## そもそもcURLが使える状況かどうか

– php -m で確認
– phpinfo() で確認

[PHPでcurlを使えない場合の対処法 – Qiita](https://qiita.com/____easy/items/06406fc62bd7464ad651)

– grepで確認

“`
% php -i | grep cURL
cURL support => enabled
cURL Information => 7.64.1
“`

[cURLのインストール状況の確認](http://www.php-mysql-linux.com/linux/curl-install/)

– curl –version で確認

“`
% curl –version
curl 7.78.0 (x86_64-apple-darwin20.4.0) libcurl/7.78.0 (SecureTransport) OpenSSL/1.1.1k zlib/1.2.11 b

元記事を表示

【PHP】cURL関数でPOSTする方法(送信&受け取る(API))

## 送信側

“`
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_params);
“`

この2行でPOSTできるようにする。

送りたい値を連想配列にしたのち、json_encodeでJSON形式にして送る

“`
$base_url = ‘api.php’;
$params = [
‘user_id’ => $user_id,
‘password’ => $password
];
$json_params = json_encode($params);

$headers = [
‘Content-Type: application/json’,
‘Accept-Charset: UTF-8’,
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $base_url);
curl_setopt($ch, CURLOPT_POST, TR

元記事を表示

【PHP】LINEログインAPI – IDトークンを検証して正しいユーザー情報を取得する方法

## 流れ(PHPで実装)

1. トップページの `