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

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

PHP+MySQLで簡易ログインシステムを作る

こんにちは、ウェブエンジニアのmasakichiです。
いつもはgithubの[TILレポジトリ](https://github.com/Naughty1029/TIL)で日々の学習を記録しています。

##これは何の記事?
PHPとMySQLで簡易ログインシステムを作ります。
実装する機能は下記の通りです。

– ユーザー登録
– ログイン
– ログアウト

なお、下記の環境で動作確認しています
m(__)m < ご承知おきを ```text:動作環境 MAMP PHP 7.4.21 MySQL 5.7.34 ``` ##なんでこの記事書いたの? 先日、Laravelでウェブシステムを作るときに、ログイン機能も実装しました。 Laravelだと、簡易なログイン機能であればコマンド1発でサクッと作れちゃいます。 Laravelすげぇ いや、でも… そもそもログイン機能ってどういう仕組みなの? どうやって実装するの? と気になり、色々な記事を参考にさせて頂きながら実装しました。 なお、実装するのはセッションベースの認証です。 ## そもそもセッションってなに? セッショ

元記事を表示

AmazonのSDKでASINからJANを取得する方法

ASINからJANは取得できないかと思っていたが、どうやらできる模様

“`
amazon-php-sdk/src/com/amazon/paapi5/v1/GetItemsResource.php
“`

の49行目にある

“`php
const ITEM_INFOEXTERNAL_IDS = ‘ItemInfo.ExternalIds’;
“`

が外部のIDを取得するResourceのようだ

$resourcesにITEM_INFOEXTERNAL_IDSを追加して

“`php
$resources = [
GetItemsResource::ITEM_INFOTITLE,
GetItemsResource::ITEM_INFOEXTERNAL_IDS];
“`

のように(どこでも良いが一番下に追加)する

リクエストした結果から

“`php
$jan = $item->getItemInfo()->getexternalIds()->geteANs()->getdisplayValues()[0];
“`

JANを取得できました

めでたしめでたし

元記事を表示

Twigファイルの読込とTwigの文法について【PHPテンプレートエンジン】

## 最初に
ECサイトの機能開発においてLAMP環境下においてPHPのテンプレートエンジンであるTwigを使用することとなりました。

##Twigファイルの読込

Controller系クラスからTwigLoaderクラスを生成してTwigファイルを読み込みます。
TwigLoaderクラスのsetFilepathメソッドをcallしてloadメソッドをcallします。
以下は私のコードです。

“`HomeController.php
‘1.0.0’,
url => ‘daichisugiyama.net’,
])

元記事を表示

MAMP環境のPHPにGMPをインストールする方法

下記の機能を実装するにあたりGMPをPHPにインストールする必要がありました。
MAMP環境を使っていたため少しインストールが難しかったですがなんとかできました。

https://blog.capilano-fw.com/?p=5404#env_error

##参考にした記事
https://gist.github.com/aurelioluiz/63813b6af780725a67ba4fb535b3bed5

##手順

###まずは下記のコマンドを入力(Homebrewが必要)

“`
brew install autoconf gmp
“`

Homebrewは下記を参照
https://qiita.com/omega999/items/6f65217b81ad3fffe7e6

###PHPの公式サイトから自分がMAMPで使っているPHPのバージョンをダウンロード
公式サイト
https://www.php.net/downloads.php

自分は8.0.0を使っていたので、下記をダウンロードしました
https://www.php.net/distributi

元記事を表示

PHP URLから構成要素を返す

# 目的

– URLの文字列から構成要素を返す`parse_url()`関数の使い方をメモ的にまとめる

# 謝辞

– 本知見は筆者が記載した記事[PHP ファイルパスやURLからファイル名や拡張子等を取得する](https://qiita.com/miriwo/items/35e76cc255788b618ad0)にコメントを下さった @s9er7 様のご知見です。
– この場を借りて改めて感謝致します!コメントを下さり本当にありがとうございます!

# 情報

– 筆者は下記サービスを用いて今回の記事内容の動作確認を行った。
– [https://paiza.io/ja](https://paiza.io/ja)

# 方法

1. PHPのURL関数の一種である`parse_url()`を用いる。
1. 下記の様に記載することでURLの構成要素の情報を配列で返してくれる。

“`php
parse_url(URL);
“`

1. 例えば[https://qiita.com/miriwo](https://qiita.com/miriwo)

元記事を表示

PHP ファイルパスからファイル名や拡張子を取得する関数

# 目的

– ファイルパスかラファイル名や拡張子を取得する`pathinfo()`関数の使い方をメモ的にまとめる

# 謝辞

– 本知見は筆者が記載した記事[PHP ファイルパスやURLからファイル名や拡張子等を取得する](https://qiita.com/miriwo/items/35e76cc255788b618ad0)にコメントを下さった @s9er7 様のご知見です。
– この場を借りて改めて感謝致します!コメントを下さり本当にありがとうございます!

# 情報

– 筆者は下記サービスを用いて今回の記事内容の動作確認を行った。
– [https://paiza.io/ja](https://paiza.io/ja)

# 方法

1. PHPのファイルシステム関数の一種である`pathinfo()`を用いる。
1. 下記の様に記載することでファイルパスの各情報を配列で返してくれる。

“`php
pathinfo(ファイルパス);
“`

1. 例えば`/etc/nginx/conf.d/default.conf`というファイルパスを

元記事を表示

【VSCode】コードは正しいがエラー表示が出るとき

##背景
プログラミングを学び始めた初学者です。
コードが合っているにも関わらずエラーが表示されてしまい、解決に手間取ったので同じような状況で悩んでいる方に向けて書いています。

##前提
PHP 8.1.1
エディタ Visual Studio Code

##症状
簡単なコードを書いていた際に、次のようなエラーが出ました。(実際のエラー発生のコードではありません)![スクリーンショット 2021-12-28 15.07.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408438/37e1e0fc-2e4d-3806-3978-ebd3d7ac7974.png)
構文は正しいのですが、ブラウザでも表示されず。(まあ、正しくないので表示されないんですが、それは置いといて。)
エラー文は「echoという記号は使用が予想されていませんよ」と出ています。

##原因と解決法
エラー表示の出ている文の一つ上の行(ここでは

元記事を表示

初心者がLaravelでShopifyアプリ開発してみた | fileCreate

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

今回は、Laravelを利用したshopifyアプリ開発でのファイル作成(fileCreate)を紹介します。

#動作環境
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での開発は下記サイトを参考にさせてい

元記事を表示

【VSCode】PHPで型宣言をしたときにsyntaxerrorのエラーが表示されたときはVSCodeの拡張機能を確認する。

Vscode_syntaxerror.png

VSCodeでPHPを書いていると型宣言の部分でエラーが表示されました。
今回はこちらのエラーについての対応について書いていきます。

### ■解決策
VSCodeの拡張機能「PHP Language Features」を無効にする。

>Go to Extensions.
・Search for @builtin php
・Disable PHP Language Features. Leave PHP Language Basics enabled for syntax highlighting.
Note that other (3rd party) PHP extensions which provide similar functionality sho

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事