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

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

DockerでのLAMP環境構築手順(Amazon Linux 2/PHP8.1(Laravel9)) ④Composerのインストール(全8回)

# はじめに

かくかくしかじかで、Docker で Amazon Linux 2 ベースの LAMP 環境を構築する機会がありましたので、手順についてアウトプットします。

![スクリーンショット 2022-11-30 23.31.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527226/930bcd24-38e9-316e-bebd-cef83aea5924.png)

全 8 回を予定しています。

[① 作成する環境の確認](https://qiita.com/ryamate/items/47183e1ffd4843ef18fa)
[② Apache の導入](https://qiita.com/ryamate/items/e5ca19aece61717b6a01)
[③ PHP 8.1 系のインストール](https://qiita.com/ryamate/items/7a38eb11d64d504a7a22)
**④ Composer のインストール**
⑤ timezone, lo

元記事を表示

ネットの記事で紹介されているServiceクラスの違和感

## 経緯

UserControllerに色々書いてたらFatControllerになっちゃったよ・・・・
解決方法無いか調べてみるか….

ん?Serviceクラスを作って処理を分離させよう!?

UserControllerからビジネスロジックをUserServiceに分離した!!
これでFatController問題は解決だ!!

…..ん??

## 課題

あれ?処理は分離できたけど、ビジネスロジック部分をごっそり移動させたFatServiceが出来上がった…

## 解決策

### ユースケースごとに処理を分ける

例えばユーザーを登録する処理をUserControllerに全部書いていた場合

“UseCases\User\Create.php“

にロジックを分離し、controller側から呼び出す。

> 実際は主語のでかいServiceクラスを
Hoge/HogeXXXXService
という具合に分離しました。

### 疑問

– Serviceクラスとの使い分け
– 引用に書いた解決策は,ServiceクラスをUseCaseもど

元記事を表示

リクエストからレスポンスまでのプロセスを制御する、”HttpKernel”

[Symfony Component Advent Calendar 2022](https://qiita.com/advent-calendar/2022/symfony-component)の4日目の記事です。

## 最初に
[Symfony](https://symfony.com)はPHPのフレームワークのひとつです。しかし、公式サイトの説明文には

> Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony.
(SymfonyはPHPコンポーネントのセットで、Webアプリケーションフレームワークで、哲学、そしてコミュニティです。それらがハーモニーを奏でながら動作しています。)

と書かれている通り、PHPコンポーネントのセットで、たくさんのコンポーネントを提供しており、それらを組み合わせてひとつのフレームワークとして動作しています。Symfonyのコンポーネントは、Sy

元記事を表示

Laravel 9.x フォームリクエストの解説

## はじめに

[Laravel Advent Calendar 2022](https://qiita.com/advent-calendar/2022/laravel) の3日目の投稿です。(遅れました…)

## 関連記事

https://qiita.com/ucan-lab/items/602f2667a185af490843

## 公式ドキュメント

https://readouble.com/laravel/9.x/ja/validation.html

## フォームリクエストとは

フォームリクエスト(FormRequest)は認可(Authorization)と検証(Validation)を行います。

フロントのHTMLフォームから渡ってくる入力データを検証したり、アクセスしたユーザーがそのリクエストを実行する権限があるかを確認できます。
コントローラで行っていた検証や認可の処理をフォームリクエストへ移譲できるので、コントローラの処理をシンプルにできる便利なクラスです。

## フォームリクエスト作成

フォームリクエストのテンプレートを作成するコマンドは

元記事を表示

DoctrineとEloquent比較大全4: レコードを更新

day4の今日はday3で取得したBookレコードのタイトルを更新する(SQL的にはUPDATEする)方法を見ていきます。

## Doctrine

“`php
getRepository(Book::class)->find(1);
$book1->setTitle(‘Symfony6 The Fast Track’);

$entityManager->flush();
“`

元記事を表示

Livewireを使っててAlpine.jsを使わないのは誠に罪深きことでございます。

# Alpine.jsはLivewireと連携できるメソッドが用意されている
Alpine.jsとLivewireは同じ開発者([Caleb Porzio氏](https://twitter.com/calebporzio))らしく、ゆえにAlpine.jsにはLivewireに適したライブラリとなっています。
あと、Livewireのドキュメントにも「Livewireを使う開発者ならAlpine.js使っとるよなぁ?(意訳)」と書いてます。
![CF106AE2-8B0A-4459-BDD6-5383CE52056C.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1311883/1cfbb5f5-adfc-5dbf-bd67-44cfe74c51c7.jpeg)
引用元:https://readouble.com/laravel/9.x/ja/frontend.html

トッピングって言い方カワイイ

## メソッド・プロパティの例
### ①$wire
![726EE4DE-

元記事を表示

【年末年始は積みゲーを消化したい!】PHP + Steam Web API で自分の積みゲーを把握する

本記事は、[サムザップ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/sumzap) の12/4の記事です。

# はじめに
はじめまして、サムザップの[北島](https://twitter.com/RyotoKitajima)です。
ゲーム会社で働いているだけあって、私はゲームが大好きです!
特にPCゲームが大好きなのですが、仕事が忙しい社会人はついつい積みゲーが増えがちですよね(ゲームを買っただけで満足してしまう…)。
今回は、自分のSteamの積みゲーを把握するプログラムを作ってみました。
年末年始のお休みが近いということで、休みに入ったら積みゲーを消化するぞ!!(えいえいおー!)

:::note info
__Steamとは__
Valve社が提供する、ゲーム販売やSNS機能などを備えたPCゲームのプラットフォームです。
https://store.steampowered.com/
:::

# PHPのローカル環境の準備

弊社では、サーバーサイドのプログラムは主にPHPを使っています。

元記事を表示

JavaScriptを動かすことができるWordpress用チャットボット

一応プラグインが存在しますが、いろいろとあるので(特にチャットボットでJSを動かしたい)
単純なサーチ系のを作ってみました

入力キーワードのHTMLはすべてエスケープして受け付けませんが
botはほぼすべてのHTMLタグを返すことができます。

あなたの実装&運用能力で、月額1万は少なくともかかるチャットボット費用を節減することができます

ライセンス MIT (C) neet.co.jp

## 利用例(まだbeta版)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149448/257183fe-2063-939d-0d2f-9c80caf6daa1.png)

:::note info
永遠の18才を実現するために、誕生日の西暦はJavaScriptで描画しています
:::

### 永遠の18才のコード(2/10 誕生日用)
“`
**!