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

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

JSON データを POST で受けるテストサーバを作る

IoTデータを受けるサーバでは、API として JSON データを POST するものが多い。
ちゃんと JSON データが送られているかな? とデバッグする時に、自前でちゃちゃっとテストサーバーを作ってみる。

# PHP スクリプト

“`






“`

最初は

“`

// $data = $_POST[‘data’];
// echo $data;
“`

としていたが、JSONのPOSTは通常のPOSTメソッドじゃないということで、上記のように

元記事を表示

Laravelで直接SQL文を実行する

Laravelで直接SQLを実行するにはその種類によってメソッドが変わります。参照系の場合には `DB::select()` を利用します。

“`php
$sql = “select i.* from input_tmps i
where i.id is not null;”;
$rows = DB::select($sql);

$retArray = [];
/** 結果取得 **/
foreach($rows as $row) {
$retArray[$row->id][] = $row->value;
}
“`

LOCK文等の場合には `DB::unprepared()` を使います。

“`php
DB::unprepared( ‘LOCK TABLES ‘ .
DB::getTablePrefix() . ‘input_tmps1 WRITE,’ .
DB::getTablePrefix() . ‘input_tmps2 WRITE,’ .
DB::getTablePrefix() . ‘input_tmps3 WRITE, ‘ .
DB::

元記事を表示

[PMMP]パーミッションを使う

※この記事では執筆時点で安定バージョンのPocketMine-MP API4.0.0に準拠しています。

# パーミッションとは
権限です(そりゃそうだ)、コマンドの実行権限を制御するのに使われることが一番多いと思います。
でも、どうやって使えばいいのか、なんで使ったほうがいいのか分からない人もいるかもしれません。
使ってみるとそこまで難しくはないので、是非使ってみてください。お願いします。使ってください…….

# パーミッションを使う理由
– OPであるかどうかに依存しない
– プレイヤーごとにパーミッションを与えるか制御することができる(e.g. VIPユーザー(OPではない)もOP専用コマンドを使用できるようにする)
– コマンドリスト(helpなど)にパーミッションが無くて使えないコマンドを表示させない
– `Permissible->hasPermission(DefaultPermissions::ROOT_OPERATOR)`とか訳分からん長い謎の定型文を書かなくていい!!

# 使い方

## パーミッションを登録する
パーミッションは、許可する物事ごとに

元記事を表示

Laravel7以下向けパッケージ開発でSeederにFactoryを使う

## 対象
* Laravel5,6,7系向けのパッケージ開発を行おうと思っている人
* パッケージとしてデータベースにデータを登録する必要がある
* パッケージ開発自体はやったことがある

## 概要
* composer.json の autoload で seeder や factory を読み込むようにする
* factory をパッケージ側でロードする
* seeder で factory を利用する
* seeder を組み込み側で呼び出す

## 詳細

`Vendor`, `Package` のところはそれぞれ置き換える。
クラス名などはそれぞれ好きなように。
ディレクトリ構造も例であって、autoload やパスを正しく設定できれば好きな構造で問題ない。

### ディレクトリ構造
– database
– factories
– UserFactory.php
– seeds
– DemoSeeder.php
– migrations
– src
– ServiceProvider.php

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事