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

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

bladeファイルの@if文が機能しなかった。

laravelでナビバーを作成中に、
認証前と認証後の記述を変更したく@if文を記述したら
ブラウザで文字として出力されてたのでまとめます。

“`nav_blade.php

元記事を表示

【PHP初級⑭】for文応用6

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksPrimary.html)

整数値を入力させ、1から9まで、入力値と入力値+1以外を表示するプログラムを作成せよ。入力値が9の場合は9のみ表示しない。

# コード
“`php
$a = intval(fgets(STDIN));
for($m = 1; $m <= 9; $m++){ if($m <> $a && $m <> $a+1){
echo $m,PHP_EOL;

}
}
“`

↓「7」を入力

# 結果
“`
1
2
3
4
5
6
9
“`

元記事を表示

PHP: Yahoo 郵便番号検索API の使い方

参考ページ
[郵便番号検索API](https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/zipcodesearch.html)

ライブラリーのインストール

“`bash
composer require guzzlehttp/guzzle
composer require vlucas/phpdotenv
“`

“`php:get_address.php
#! /usr/bin/php
load(

元記事を表示

【例外処理】専用の例外クラスを作るとエラー後の分岐処理が実装しやすい

## :bulb: **CAUTION!**
– 当記事は[イベント](https://tonihome.connpass.com/)のLTで発表したものです
– システムの開発方針によっては紹介する実装が適さないことがあります
– 実装例はPHPですが、簡易なコードなのでプログラミング言語を問わずお読みいただけます

※ @error_401さんから[コメント](https://qiita.com/y_sone/items/99a014943776a75366ad#comment-c2cd957e040494ccfb2b)を頂きました。ご指摘ありがとうございます!
– 紹介する実装は保守性が下がる可能性があります
– 専用の例外クラスを作成する際は、エラーの対象範囲をよく検討してください

## :woman_tone1: **自己紹介**
– Webエンジニア歴4年
– 主な使用言語はPHP
– たまにITイベントにスタッフ参加しています

## :love_letter: **伝えたいこと**
特定エラー専用の例外クラスを作ると、エラー発生後の分岐処

元記事を表示

PHPファイルを自動整形(vscode,intelephense)

## 問題の背景
phpファイルに`

`タグなどのhtmlタグを記述したり、ソースコードをベタ張りしても、初期状態ではインデントが調整されないため、見づらくて不便です。

そこで、php専用のフォーマッターを導入するとインデント調整やhtmlタグを自動で補完してくれるので便利です。
今回は、vscodeの拡張機能である`intelephense`を導入しました。

## 導入・設定方法
### intelephenseをインストール
vscodeの左側にあるブロックアイコン(Extensions)の検索窓から`intelephense`で調べます。
![スクリーンショット 2022-07-30 12.21.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954882/08e704f4-8ff3-bef2-41f3-a8ee3f352554.png)
すると`PHP Intelephense`のインストール画面が出るので`Install`を押してインストール。

### Formatterの指

元記事を表示

エラーを無視せずLaravel9プロジェクトを作成する

# はじめに
[前回記事](https://qiita.com/asuka-hanerock/items/1e14eff782ce6b03085e)のLaravelプロジェクトがとにかく動けば良いという簡易版だったので、理解を深めるためにちゃんと設定する方法を書いていきます

誤っている点やもっと良い方法があればコメントにてご教授お願いいたします



# 前提
PHP、Composerがインストールされており実行できる状態であること


# 構築環境
OS:Windows 11 Home
ターミナル:Windows11デフォルトのターミナル(PowerShell)
ブラウザ:Google Chrome


# 前回の問題点
出てきたエラーに対して対処をせず無視をするという強行手段を取っていた点
根本解決にはなっていないし理解が浅すぎたと反省しつつ今回はちゃんと対応していきます

元記事を表示

laravel FakerPHPを使ってダミーデータを生成する

# 概要

– laravelのFactoryなどでFakerPHPを用いてダミーデータを生成する方法をまとめる。

# 生成方法

– 下記の様に記載することでダミーデータを生成する事ができる。

“`FooFactory.php
// Factoryクラス内での使用
$this->faker->指定フォーマットの関数名;

// それ以外のクラスでの使用(言語はデフォルト)
use Faker\Factory;
Factory::create()->指定フォーマットの関数名;

// それ以外のクラスでの使用(言語は日本語を指定)
use Faker\Factory;
Factory::create(‘ja_JP’)->指定フォーマットの関数名;
“`

# 指定フォーマット

– 下記のFakerPHP非公式リファレンスや、本家のリファレンスで各フォーマットの指定方法がわかりやすく記載されている。
– [FakerPHP非公式リファレンス](https://fwhy.github.io/f

元記事を表示

laravel CarbonImmutableインスタンスのタイムゾーンを変更する

# 概要

– UTCで作成されたCarbomImmutableインスタンスのタイムゾーンをAsia/Tokyoに変更する方法をまとめる。

# 方法

– 既に作成されているCarbonImmutableインスタンスにtimezone関数をメソッドチェーンすることでタイムゾーンを変更する事が可能となる。

“`php
use Carbon\CarbonImmutable;

$utcDateTime = ‘2022-07-30 00:00:00’;

$utc = new CarbonImmutable($utcDateTime, ‘utc’);
$asiaTokyo = $utc->timezone(‘Asia/Tokyo’);
“`

元記事を表示

laravel タイムゾーンを指定してCarbonImmutableインスタンスを生成する

# 概要

– タイムゾーンを指定してCarbonImmutableインスタンスを生成する方法をまとめる。

# UTC現在時刻でCarbonImmutableインスタンス生成

– 下記の様に記載する。

“`php
use Carbon\CarbonImmutable;

$nowUtc = CarbonImmutable::now(‘utc’);
“`

元記事を表示

ローカル環境でLaravel9を使えるようにする

# はじめに
Laravel9を初めて触る中で苦戦した箇所がいくつかあったので、備忘も兼ねてまとめます
誤っている点やもっと良い方法があればコメントにてご教授お願いいたします



# 前提
PHPが実行できる状態であること


# 構築環境
OS:Windows 11 Home
ターミナル:Windows11デフォルトのターミナル(PowerShell)
ブラウザ:Google Chrome


# 事前準備
ライブラリ管理ツールであるComposerをインストールします

[Composerの公式サイト](https://getcomposer.org/download/)からセットアップツールをダウンロード

https://getcomposer.org/download/

Composer-Setup.exeをクリックしてダウンロード開始
![image.png](https:

元記事を表示

★備忘録 Laravel PJにてTop(index)以外のページが404になる事象の解決策

表題の通りLaravelPJにおいて
トップページ以外404になる事象に遭遇。

色々確認すべき所はあったものの、結局今回の事象では
ModRewriteが有効になっていなかった事が原因でした。

なので以下のコマンドで解決。

“`言語:コマンド
sudo a2enmod rewrite
“`

元記事を表示

PHPで使用した関数備忘録

## ****nl2br****

****nl2br関数とは改行コード「\n」を実際に改行として出力してくれる関数****

“`jsx

こんにちは
さようなら
“`

例)

“`jsx
$hoge_text = nl2br(str_replace([‘といった記号等を、正しく画面に<や>といった記号のまま出力できるような形に変換出来ます。

“`jsx
htmlspecialchars( 文字列, 変換パターン, 文字コード )
“`

| 名前 | 説明 | 必須 | タイプ

元記事を表示

【Laravel】 show、edit等のルーティングを主キー(id)ではなくレコード(文字列)にするgetRouteKeyNameメソッド

## 参考ページ
https://qiita.com/phper_sugiyama/items/bdeee931ae2b821af895
https://www.messiahworks.com/archives/24058

こちらの情報を元に`show`や`edit`等、通常は主キー(id)を指定するルーティングを、代わりに主キーの持つレコード(文字列)を使用する方法を備忘録として残しておきます。

## やりたい事

ブログページで別ページのリンク`http://localhost:8000/sample`をつけたい。
urlをaタグに直接入れればもちろん解決できますが、ルーティングを使用して行いたい。

“`ruby:show.blade.php
オススメ記事

オススメ記事
“`

## 開発環境
Windows 10
XAMMP
PHP 7.4.29
Laravel Framework 8

元記事を表示

【Laravel Breeze】Breezeのデフォルトで存在するコンポーネントを図解していく

Breezeのデフォルトのコンポーネントについての解説はどこにもなかった(たぶん)ので、誰かの役に立てばということでQiitaの記事にしてみました。

::: note
「dashboard.blade.php(PC画面)」と「dashboard.blade.php(スマホ画面)」と「login.blade.php」の3つだけ図解しました。
:::

# この記事を読むと…
1、dashboard.blade.phpとlogin.blade.phpの構成が分かる。
2、bladeコンポーネントのslotの動きが分かる。
3、再利用したいコンポーネントが見つかるかも。
4、bladeコンポーネントの勉強になるかも。

# dashboard.blade.php(PC画面)
赤色=コンポーネント
黄色=includeされたファイル
黒色=slot

![1659019117642.jpg](https:

元記事を表示

PHP+PostgreSQLから読み解くトランザクション制御

# 始めに
こんにちは。新人エンジニアの打越です。
現場に配属されて2か月。現在は、主にPHPを業務の中で学んでおります。まだ配属されて間もないこの2か月の間、プログラムの仕組みをイメージすることに何度も苦戦しました。その中でも、苦戦したこと…「トランザクション制御」について今回は記事にしました。

# トランザクション制御とは
## トランザクション制御について調査してみた感想
私の感想「なにそれ、、、おいしいの?」
決して説明が悪いわけではありません。新人エンジニアの私は、イメージができなかったのです。調査を繰り返しても、様々な情報で溢れ、頭が混乱してしまいました。
そんな私は、現場で使われているPHP+PostgreSQLのコードを読み進めることでイメージできるようになりました。なので、一つ一つのコードで何を処理しているのか確認しながら、トランザクション制御についてイメージしていきましょう。
PHP+PostgreSQLが分からない方も安心してください。今回は、トランザクション制御がイメージできるようになることが目的です。

# PHP+PostgreSQLのコードからトランザ

元記事を表示

AWS SDK for PHP: DynamoDB だけ? リトライを 10 回する件

参考) [retries – AWS SDK for PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html#config-retries)

## 概要

リファレンス上リトライのデフォルトは以下のとおり(のはず)だが、DynamoDB のときだけ(?) 10 回リトライしている。

– retry_mode: legacy
– max_attempts: 3

## 例

### DynamoDB (リトライ未指定)

“`php
$ddbClient = new Aws\DynamoDb\DynamoDbClient([
‘region’ => ‘ap-northeast-1’,
‘version’ => ‘2012-08-10’,
‘endpoint’ => ‘http://192.168.1.1’, // 応答なし
‘http’ => [
‘connect_timeout’ => 3,
],
])

元記事を表示

Symfonyのpublic/index.phpはなぜ”無名関数”をreturnしているだけなのか

Symfonyをインストールすると、LaravelやCakePHPなどと同様に、Webサーバから実行されるファイル`public/index.php`が自動生成されます。
例えば、Laravelの`public/index.php`ですが、

“`php:public/index.php
make(Kerne

元記事を表示

laravel ErrorCase setAttribute(), 1 passed …HasAttributes.php … exactly 2 expected

### Laravel Illuminate\Database\Eloquent\Model::setAttribute(), 1 passed in HasAttributes.php on line 525 and exactly 2 expected

引数が足りないということはないはずで、以下の記事にも該当しない。
https://qiita.com/qiita-kurara/items/d14a8d26954c843cdca3
https://toriyaru.com/2019/11/08/laravel%E3%81%AE%E3%83%97%E3%83%A9%E3%82%A4%E3%83%9E%E3%83%AA%E3%82%AD%E3%83%BC%E3%81%AE%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%AA%E3%81%84%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%B8%E3%81%AE%E3%82%A4/

$primaryKey = null;
の件も該当しない。

やっていることは updateOr

元記事を表示

Alpine.js 紹介

##### Alpine.jsの公式の翻訳になります。
https://alpinejs.dev/

## 15 Attributes

#### x-data
HTMLのブロックに対して新しいAlpineコンポーネントとそのデータを宣言します
“`php

    …

“`
#### x-bind
##### 要素に動的にHTML属性を設定する
“`php

  …

“`
#### x-on
##### 要素のブラウザイベントをリッスンする
“`php

“`
#### x-text
##### 要素のテキストコンテンツを設定する
“`php

  Copyright ©
 
  
元記事を表示

OTHERカテゴリの最新記事