PHP関連のことを調べてみた2022年03月03日

PHP関連のことを調べてみた2022年03月03日
目次

JSONが正しい文法なのにJSON.parseできない

JSONの文法と、PHPの文法(今回あまり関係ない)と、JavaScriptの文法と、HTMLの文法とでごちゃごちゃに怒られたのでどの部分が明確な原因かわかっていないけど順番にメモする。

## はじめに

APIから吐き出されたJSONをPHPで取得し、それをJavaScriptで加工・処理してHTML上に表示するという組込み作業の過程で、文法チェッカーなどでもJSONの構造に問題はなさそうなのに、JSON.parseがエラーになる。

https://qiita.com/nc30mtd/items/8fbdda2be3601585f08e

検索すると上のような記事が出る。console.logに表示されないが特殊文字がエラーの原因になってるよという話。
上記のコードで対策してみたがそうするとJSON内の改行コードも漏れなく消え失せてしまったので、ちょっと本意でない。HTML上で表示する観点から改行コードには消えてもらうのではなく、最終的に改行タグになってもらう必要がある。別の方法を考える。
(いま思うと二つ目のメソッドから書き始めたせいかもしれない。なんでそんなことしたんだろう)

元記事を表示

Sodium がなくて Laravel Passport のデプロイに失敗した

ローカル環境で、Laravel Passportを追加したプロジェクトをレンタルサーバー(Xserver)へデプロイした際、
「ext-sodium がない」と composerに怒られたので、その解決策をまとめておきます。

# 今回の環境

– PHP 7.4
– Composer 2.0
– Laravel 8

# 起こったこと

Xserverで、`composer install`しようとしたら落ちました。

`laravel/passport`は、`lcobucci/jwt`に依存しており、
`lcobucci/jwt`をインストールできず、失敗してしまったようです。

※ こんな感じ↓
“`
lcobucci/jwt 4.1.5 requires ext-sodium * -> it is missing from your system. Install or enable PHP’s sodium extension.
“`

sodium を入れるには、管理者権限が必要なため、
レンタルサーバー(Xserver)から乗り換えが必要か…?と、思ってい

元記事を表示

【Docker・Laravel】シンボリックリンクしたのに画像が表示されない。パスも合っているのに。

### エラー内容
以下のように、 __画像が表示されない__ というエラーが発生していました。
![スクリーンショット 2022-03-02 15.31.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2525372/24a00c2c-c8da-58ef-09f0-fa9494a1881e.png)

laravelでの画像アップロード機能は、こちらの記事を参考にしていました。

https://note.com/laravelstudy/n/n038bd68f53a7

全てやり方通りに行ったのにも関わらずに、謎の表示されないエラー。
正直、6時間くらいはエラーにハマっていました。

### 試したこと
大体、「Laravel 画像 表示されない」などで検索すると
解決方法として出てくるのが

①シンボリックリンクができていない
②画像がDBに保存されていない
③画像のパスが間違っている

この3つでした。

:::note alert
この3つは全てクリアできているのにも関わらず、エラーが出る

元記事を表示

CakePHP4でajaxが403になる件

## 問題

CakePHP4でajaxすると403になる。

## 原因

「config/routes.php」に全体のCSRFチェックの処理がデフォルトで入っているため、
フォーム以外からのPOSTはエラーになる。

## 対策1

以下を参照

【CakePHP】CakePHP4でAjaxからのPOSTが403(Forbidden)エラーになる現象の解決策

## 対策2

最初は対策1をとっていたが、トークンを送信する形にしてみた。

“`html:html
laravel学んで2か月で自サービスを開発した話 Part4

みなさん、こんにちは。
見切り発車で開発記録を載せていますが、part20超えそうな気がしてきます

今までの開発記録はこちらへ
胡蝶蘭を捨てるくらいならワイが欲しいので、サービス開発する編
公式ドキュメントの言う通り、パッケージをインストールされたら、Inertia.jsが導入されて???になった編
マルチログインを作ってみた編

## 管理者機能を作ります!
### 現在の開発状況
![スクリーンショット (1633).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2281946/

元記事を表示

駆け出しエンジニアの初開発と環境構築

### 環境構築(CodeIgniterのインポート)

エンジニアとしてスタートを切ったばかりの駆け出しが、初開発を終えての備忘録と、今後駆け出すエンジニアの役に立てたらなと思い、記事を投稿します。
まだまだ知識が少ないので、間違いも沢山あると思います。
この記事を読んでくださる方からアドバイス等たくさん頂けると嬉しいです。

### 開発環境

・Eclipse
・CodeIgniter3
・MySQL
・GitHub
・Bootstrap4

初開発ではECサイトを作成しました。
CodeIgniterはPHPの、Bootstrapはフロントサイドのフレームワークです。
DBはMySQLを使用し、Eclipseで開発を行いました。

今回はCodeIgniterのインポート方法です。
以前はJavaとSpringを使用して学習していました。SpringはJava用のフレームワークで、Eclipseに元々入っていたので、画面左上のファイルからSpringのプロジェクトを作成できました。しかし、CodeIgniterはEclipseに入っていません。どうすればいいのか迷ったので、その

元記事を表示

PHP returnで戻り値を返す

returnによって返される戻り値について下記の点を常に意識できるように備忘録として。
**returnが出来ること:** 処理結果を関数に戻すことができる。
これによりreturnによって返された関数の処理結果を使いまわすことができる。(変数に代入して他の関数の引数として使う等。)

**returnがされた時に起こること:** 関数の処理はreturnがされた時点で終了する。
例えば下記のような関数function convert()ではreturn①の時点でこの関数の処理は終了となるため、return②は発生しない。(ダブらない。)
“`php

元記事を表示

【WordPress独自関数】「JSON-LD」形式の構造化データ「Article」を実装する関数

SEO対策にもなる「JSON-LD」形式の構造化データ「Article」をWordPressに実装する方法を紹介します。
プラグインを使用すればインストールして管理画面から設定するだけで設置することも出来ますが、今回はプラグインを使わない方法を紹介したいと思います。

## 「JSON-LD」形式の構造化データ「Article」の記述方法

今回は「JSON-LD」形式の構造化データ「Article」の作成方法を紹介します。

“`

↑を見て、『あー、できるかもなー』と思ったのでやってみました。

## --printerオプションで出力をカスタマイズできる

PHPUnitには`--printer`オプションがあります。[ドキュメント](https://phpunit.readthedocs.io/ja/latest/textui.html?highlight=printer#textui-clioptions)には

```
結果を表示するために使うプリンタクラスを指定します。このプリンタクラスは PHPUnit\Util\Printer を継承し、  
かつPHPUnit\Framework\TestListener インターフェイスを実装したものでなければなりません。
```

と記載があります。独自のプリンタークラスを作ればいけそうです。ソースを追っていくとデフォルトでは、`PHPUnit\TextUI\DefaultResultPrinter`というクラスを使

元記事を表示

【Declined】PHP8に入ることのできなかった機能たち

PHP8では大量の[RFCが](https://qiita.com/rana_kualu/items/a6601b49e0591eb42200)[受理され](https://qiita.com/rana_kualu/items/fe7998fbe773544d5d25)、多くの文法の拡充が行われました。
光あるなら陰もまたあり、すなわち華々しく活躍するRFCの傍らには、却下され消えゆくRFCもまた存在するということです。

ということでPHP8に入り込むことを目指したものの[却下されたRFC](https://wiki.php.net/rfc#declined)を見てみることにしましょう。
採用されたRFCと却下されたRFCを見比べることで、PHPの今後の方向性とかがわかるかもしれませんよ。

# Declined RFC

## [Dump results of expressions in `php -a`](https://wiki.php.net/rfc/readline_interactive_shell_result_function)

賛成11、反対6で却下。

`

元記事を表示

【Laravel】「email」のバリデーションルールの注意

# 初めに
Laravelではデフォルトで様々な[バリデーションルール](https://readouble.com/laravel/8.x/ja/validation.html)を準備してくれており、生PHPと比べてかなり簡単にバリデーションを設定することができます。
しかし、デフォルトのものには実は注意が必要と言う事をお話しして行きます。

その中で、今回は **『email』のバリデーションルール**について紹介します。

# 問題点
デフォルトでは、emailの形式`ユーザー名(メールアカウント)@ドメイン名`でなければバリデーションエラーを出力してくれます。

```App\Http\Controllers\Auth\RegisterController.php
return Validator::make(
$data,
[
'name' => ['required', 'string', 'max:255'],
'email' => ['required', '

元記事を表示

Magentoのセキュリティは、サニタイズの脆弱性を修正するための追加パッチが必要です

本記事は2022年2月24日に@developersteveが公開した英語ブログ[Magento security requires additional patch to fix sanitization vulnerability](https://snyk.io/blog/magento-vulnerability-cve-2022-24087-sanitization/)を日本語化した内容です。

なお本ブログは、[CVE-2022-24086 Magento Ecommerce を使用しているウェブサイトに対する脆弱性警告](https://qiita.com/SnykSec/items/8fdecb03fe0f8fe275cf)で発表した内容から更新されている情報について記載しています。

[![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/bc4c157c-64e2-ec7e-df18-147d2c279cb0.png)](htt

元記事を表示

[PHP]PHPUnitのassertSeeをリダイレクト先でも行いたい。

# きっかけ
laravelにてfeatureテストを記述していたときに、post処理後のリダイレクト先でフラッシュメッセージをassertSeeしたくなった。

## assertSee について
レスポンス内に指定の文字列があるかを確認してくれる。
基本的なアサートの一つ。
```php
public function test_テキストチェック()
{
$response = $this->get('user');
// /user に "user一覧" と記述されていればテストが通る
$response->assertStatus(200)->assertSee('user一覧');
}
```
この他にも、文字列を順番に記述されているかを確認してくれる「assertSeeInOrder」など、便利なものがいくつか存在します。
詳しくは、下記をご覧ください。

https://readouble.com/laravel/6.x/ja/http-tests.html#assert-see

## 問題
便利なassertSeeですが、下記のような記述ではリダイレクト

元記事を表示

OTHERカテゴリの最新記事