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

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

30歳未経験おじさんの日記帳 7/24

## Laravelなんとなくわかってきたぞ、、、!

本日もLaravel日和。
本日は、データベースからデータを取得してViewに表示することができたぞ。

Laravelの概要もなんとなくわかってきた。
MVCというのはなんとなく知っていたが、
今日は真理に一歩近づいたかもしれない。

### route
使うのはweb.phpとauth.php(laravel breeze)を使用する。
そのまんまルーティングの設定。
こいつへの記述を忘れてエラーになりまくった
今後は忘れない(忘れる)

### model
主にバックエンド操作を記述する
今回はデータベースへデータを入れたり取り出したり
更新したり、削除したり。
いわゆるCRUD操作をすルため

### view
ブラウザ上に表示される部分。
フロントエンドやね。
react触ってたからここはなんかイメージしやすい。
データベースからとってきたデータとかを自在に表示するのが私の夢。

### controller
こいつが曲者。
modelとviewの架け橋になるやつで、
model→controller→view
view

元記事を表示

【PHP】定数constの使用方法

変数は何度でも値を変更することができますが、定数は一度設定した値を変更することができません。定数は変わらない数と覚えておきましょう。

# 使用例

“`php
const MAX = 10;

echo MAX;
“`

定数は通常の変数と区別するために、基本的に**アルファベットの大文字**で記述するのが慣例となっています。

変数の先頭に$の記号は付けませんので注意しましょう。

### 表示例

“`php
10
“`

かわらない数なので以下のように書いても一番上の文字が優先的に表示される

“`php
const MAX = 10;
const MAX = 11;

echo MAX;
“`

### 表示例

“`php
Warning: Constant MAX already defined in C:\xampp\htdocs\php_test\index.php on line 4
10
“`

すでにMAXという定数は存在しているためエラー文を表示させています。

元記事を表示

【PHP】変数($)とは表示方法や値の代入方法について

変数は簡単に言うと**値を入れて置ける箱**みたいな物です。

“`php
$変数名 = 値;
“`

“`php

元記事を表示

Amazonエンジニアの年収上限が4000万円にアップした背景まとめてみた

![pasted image 0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3456084/0073f1e8-5257-e7f4-1e8a-4a853b3e8a23.png)
https://oceans.tokyo.jp/article/detail/36460

2022年2月からアメリカのAmazonで働くエンジニアや管理部門で働くスタッフの基本給の上限が4000万まで引き上げされたのなんで?と思ってまとめています!!

しかもこの4000万に引き上げられたのは、マネージャー、ディレクターなどの管理職を除く一般社員だというから驚きです。。
基本年収の他にも、入社時の一時金や譲渡制限付株式ユニットなども含まれるため、実際の支給額はさらに増える見込みで、改善前と比べると約2倍の給料増額になっています。。

Amazonすごい!ってなるところですが、実はこれでも他Apple、Googleなどのライバル企業に比べると若干劣勢になるのだとか。
他大手の企業も特別賞与を支給したりしているそうです。

##

元記事を表示

【PHP8.3】PDOでデータベース固有機能が使えるようになる

[PDO](https://www.php.net/manual/ja/book.pdo.php)は汎用データベースドライバです。

“`php
// MySQL
$pdo = new PDO(‘mysql:host=localhost;dbname=test’);

// PostgreSQL
$pdo = new PDO(‘pgsql:host=localhost;dbname=test’);

// SQLite
$pdo = new PDO(‘sqlite:/path/to/sqlite_db.db’);

// 以後は同じように使える
$data = $pdo->query(‘SELECT * FROM table’);
“`

接続先のDBがどんな種類であろうと、DSNを変えるだけで全く同じに書くことができます。
素晴らしく便利ですね。

逆にいうと汎用ドライバであるため、それぞれのDBに固有の機能とかは使いづらいです。
そういうのはわざわざ[固有モジュール](https://www.php.net/manual/ja/refs.database.vendors.php

元記事を表示

ITエンジニアなのにまだ投資やってないの?ChatGPTでクオンツシステム作って儲けようぜpart3

## 前回まで
[ITエンジニアなのにまだ投資やってないの?ITエンジニアならChatGPTでクオンツシステム作って儲けようぜ](https://qiita.com/kazukichi/items/fa6433c3d0115c2b627b)
[ITエンジニアなのにまだ投資やってないの?ITエンジニアならChatGPTでクオンツシステム作って儲けようぜpart2](https://qiita.com/kazukichi/items/b211fca9c414aeff0e92)

## ネトフリは面白い
僕はネトフリのヘビーユーザーなんですが、投資系にも
リーマンショックまでの経緯と仕組みを実録インタビューで振り返る「インサイドジョブ」や

AIテック系の話で、チェスは機械には勝てないと言われてAIが勝ち、「人間の高度な知的能力でしか勝てない」と言った囲碁の世界王者に勝ち、今では7、8年も訓練を積んでようやくなる戦闘機のエースパイロットにも勝ち、AIの実用速度の高さをドキュメントした「アンノウン」なんかも面白いし勉強になります。

## 投資思考では技術力UPは悪手
投資思考って事業でも人生

元記事を表示

AIと言えば簡単だが、AIと言わない私の信念。

はじめての投稿ですので、乱文や間違った表現はご容赦ください。
一部宣伝を含みますが、全体としては私個人的なAIに対しての考え方ですので、あわせてご容赦ください。

独学でプログラムを覚えて・・・

去年暮れぐらいから、独学でプログラミングを勉強してきました。
作りたいWEBアプリケーションがあり、制作会社に見積もりを出していただいたところ、200万円という金額だったので、「無理無理、自分でつくろう。」と思い自分で作りました。

結局勉強時間含め、10ヶ月ぐらいの歳月が経ってしまいました。
(見積もりでは3ヶ月だったので、3倍の時間がかかってしまいました。)
が、今回完成しました。

完成したサービスは…
「広告主とメディアをマッチングする広告の直売所」

というコンセプトでサービスを作成しました。
良ければ、御覧いただけると幸いです。
https://frame.adpentas.com/top_page

検索アシスト

このサービスの機能に検索アシストというサービスを実装しています。

この検索アシストは質問に答えて行くと「最適なアイテムを自動で

元記事を表示

DockerのMySQLに接続できなくて困った話

## 開発環境

M1Mac
PHP,Laravel
Docker
(nginx:1.17-alpine,php 7.4,mysql 8.0.32)

## Laravelとデータベースが接続できなくて困った( ´Д`)y━・~~

LaravelとDockerを使ってでサイトを作っていたのだが、
データベースに接続できなくて、php artisan migrateができない!
という所で詰まった。

.envファイルの内容もあっている様だが、どうにも接続できない、

## 解決方法

ターミナルからDockerに入ってphp artisan migrateしたらmigrateできましたとさ。

結局のところは、
ローカルのLaravelからDockerのMySQlに接続するのではなく、
DockerにあるMySQLにはDockerに入って接続すればよかった様です

自分が今ローカルで作業しているのか、Dockerで作業しているのかを考えるのが大事かも。

## まとめ

Dockerのデータベースに接続するには、Dockerに入って接続するべし!
ということで引き続き開発を進めてい

元記事を表示

Laravelを学んでいるエンジニアがPHPの基礎を勉強する日記

![PHP](https://upload.wikimedia.org/wikipedia/commons/2/27/PHP-logo.svg)

## はじめに
私は普段、Laravelを使ってWebアプリケーションを開発していますが、PHP自体をきちんと勉強したことがあまりありませんでした。そこで、プログラミングPHP 第4版というオライリーの書籍を手に取り、PHPの基礎を学ぶことにしました。

## 今日学んだこと
今日は字句構文や変数、配列の基本について学びました。

## 初めて知ったこと

### 1. 可変変数
PHPでは可変変数という特殊な機能があります。これは、変数の中身の値を別の変数として利用できるというものです。以下に簡単なコード例を示します。

“`
$foo = ‘bar’;
$$foo = ‘Hello, World!’;

echo $bar; // 出力結果: Hello, World!
“`

この例では、$fooの値がbarであり、それを可変変数として利用して新しい変数$bar

【速報】 #LaraconUS 2023 が開催された模様です

こんにちは。やまゆです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332028/a1cdcdbe-fde8-3070-30ba-8ec4c777d226.png)

https://laracon.us

Laravel で最大規模のイベントである **LaraconUS 2023** が日本時間の 2023/07/20~2023/07/21 の2日間、アメリカテネシー州のナッシュビルで開催された模様です。

現地参加は出来なかったので、 Twitter 等で情報収集して発表された内容をいくつかかいつまんでまとめてみます。

## スタート

8時半から受付開始とのことで、朝はえーすげーとなりました。

会場は 800 人の開発者で埋め尽くされたそうです!凄い活気!

https://twitter.com/jbrooksuk/status/168186862818

laravel10のログをCloudWatchに送信する方法

https://github.com/tarfin-labs/laravel-cloudwatch-logger
を実行する。

これだけだと下記のようなエラーが出る
```
Declaration of Maxbanton\Cwh\Handler\CloudWatch::write(array $record): void must be compatible with
Monolog\Handler\AbstractProcessingHandler::write(Monolog\LogRecord $record): void
```

その場合、monolog/monolog のバージョンを2.91に下げる

PHPで作った便利な自作関数集

```php
$val ) {
if ( is_array( $val ) ) {
$key = htmlspecialchars( $key, ENT_QUOTES, 'UTF-8' );
$_input[ $key ] = _h( $val );
} else {
$key = htmlspecialchars( $key, ENT_QUOTES, 'UTF-8' );
$_input[ $key ] = htmlspecialchars( $val,

PHPの正規表現のuフラグっていつ使うの?

PHPの`preg_*`系関数で使う正規表現は、区切り文字の後ろにいろいろなフラグを付けることができます。
その中で私が用途をすぐ理解できなかった`u`フラグについて書きます。

## tl;dr
- `u`フラグなしだと、マルチバイト文字のマッチが思った通りにできない可能性がある
- `u`フラグによって`\d`や`\w`の挙動が変わる

注:以降の記述では、扱う文字列はすべてUTF-8であることを前提とします。

## preg正規表現の`u`フラグ
なにはともあれ公式マニュアルを確認します。

> u (PCRE_UTF8)
この修正子は、Perl 非互換な PCRE の機能を有効にします。パターンと対象文字列は、 UTF-8 として処理されます。 無効な対象文字列を preg_* 関数に渡しても、何もマッチしません。 無効なパターンを渡すと、E_WARNING レベルのエラーが発生します。 5オクテットおよび6オクテットの UTF-8 シーケンスは無効とみなされます。

https://www.php.net/manual/ja/reference.pcre.pattern.m

dh key too small を試す

# はじめに

通信先が脆弱なキーサイズを使っているとクライアント側が自衛のために発生するらしい

クライアント側のセキュリティレベルを下げると発生しなくなる(下げるな)

https://weakdh.org/

> What Should I Do?
If you run a server…
If you have a web or mail server, you should disable support for export cipher suites and use a 2048-bit Diffie-Hellman group. We have published a Guide to Deploying Diffie-Hellman for TLS with step-by-step instructions. If you use SSH, you should upgrade both your server and client installations to the most recent version of OpenSSH, which prefers

Javaしか知らない10年目プログラマが転職を機にPHPを学び始めた話 #1

# 対象読者

* これからPHPを学ぼうとしている方
* ある程度プログラミング経験がある方
* 転職による環境の変化に不安を抱いている方

# 今回の結論

* PHPは*Hypertext Preprocessor*である
* 語弊はあるがHTML生成を目的としていると言える
* PHPの文字列リテラルの`"`と`'`の特徴について
* 複数行になる、またはテンプレートが必要な場合は`"`が適している
* 単行で短い文字列の場合は`'`が適している

# 本記事作成の経緯

アルバイトから数えて10年ほどJavaとSpringbootで受託開発を行っていましたが、
初めての転職を機にPHPとLaravelを使った自社サービス開発の環境へ飛び込んで得た、
知見と感想を共有させてください。

# PHPとは?

私: 「PHPとは?」

ChatGPT:
>‐‐‐
PHPは、主にウェブ開発に使用されるスクリプト言語です。
PHPは「PHP: Hypertext Preprocessor」という再帰的な略称であり、
動的なウェブページやウェブアプリケーションを作

Amazon AWS Cloud9 でPHP8.2系のLAMP開発環境を速攻で作る方法

# はじめに
https://qiita.com/qwe001/items/d3270b0de7f8b17a4f85

上記の記事で書いた内容を8.2版にしただけです。
詳しい作り方は上記記事を参考にしてください。
最近php8.2環境を作ることが増えたので、ターミナルで実行するコマンドだけ絞って書きます。

# PHP8.2など必要ライブラリをインストール

```bash
# とりあえずyumアップデート
sudo yum -y update
# php7.2系をアンインストールする
sudo yum remove php*
# php8.2系をインストールする
sudo yum install -y --enablerepo=epel,remi,remi-php82 php82-php php82-php-{fpm,mbstring,mysqlnd,xml,xdebug,intl}
# phpのパスを通す
sudo ln -s /usr/bin/php82 /usr/bin/php
# MySQLサーバ(mariadb)をインストールする
sudo yum install -y

LaravelのFormatter(Pint)の導入

## 1. はじめに

PHPのFormatterで有名な`PHP-CS-Fixer`がありますが、Laravelでは`Pint`というFormatterがv9.3から標準搭載されました。

https://github.com/laravel/laravel/releases/tag/v9.3.0

本記事では`Pint`の使い方とプリセットの解説をしたいと思います。

## 2. 対象読者

- Laravel開発者
- コードの品質を向上させたいと考えている方
- チーム開発で一貫性を保つための方法を探している方

## 3. 目次
- [1. はじめに](#1-はじめに)
- [2. 対象読者](#2-対象読者)
- [3. 目次](#3-目次)
- [4. インストール方法](#4-インストール方法)
- [5. プリセット`laravel`](#5-プリセットlaravel)
- [5-1. **フォーマットとインデントに関する設定**](#5-1-フォーマットとインデントに関する設定)
- [5-2. **クラス、関数、制御構造に関する設定**](#5-2-クラス

掲示板の検索機能

最近掲示板の検索機能の実装方法を学んだのでこちらにアウトプットしておきます。
# 検索機能の実装
検索バーを`ransack`というgemを使って実装していきます。
Ransackはデータベースから特定の条件に一致するレコードを探すための検索クエリを生成する機能を提供します。

#### 手順
①`ransack`のインストール
②コントローラーの編集
③viewの編集
④国際化(任意)

# ①`ransack`のインストール
Gemfileに以下のコードを記入
```ruby:Gemfile
gem 'ransack'
```
```
$ bundle install
```

# ②コントローラーの編集
```ruby:boards_controller.rb
#編集前
def index
@boards = Board.all.includes(:user).order(created_at: :desc).page(params[:page])
end
↓↓
def index
@q = Board.ransack(params[:q])
@boards =

Swagger-PHP @OA\Items() is required when @OA\Schema() has type "array"の解決法

# はじめに
Laravel + Swagger/OpenAPI でAPIを開発する際に書くアノテーション(`@OA\`から始まるコメントみたいなの)に問題があり、Swaggerのドキュメントを出力する際にエラーが発生した。。。

```console
$ php artisan l5-swagger:generate

Regenerating docs default

ErrorException

@OA\Items() is required when @OA\Schema() has type "array" in \App\Http\Controllers\Mobile\Version1\SearchController->getJobs() in /var/www/html/app/Http/Controllers/Mobile/Version1/SearchController.php on line 247

at vendor/zircote/swagger-php/src/Loggers/DefaultLogger.php:31
27▕

株式会社ゆめみコーポレートエンジニアリングチームの新卒研修を全部公開します

# はじめに
株式会社ゆめみ(以下, ゆめみ)には,「コーポレートエンジニアリングチーム(以下, CE)」というチームがあります.
内製化支援がメインの事業であるゆめみの中で,CE は少し異質なチームで,組織の問題解決をすることに特化したチームです.普段は社内で使う Web サービスを開発しています.

詳しくは僕の過去のスライドや QiitaZine, CodeZine をご覧ください.

https://codezine.jp/article/detail/15419

「組織改善にダイレクトに関われるから面白い」ゆめみが語るコーポレートエンジニアの魅力〜Qiita Conference 2022イベントレポート

# ゆめみのコーポレートエンジニアに求められる力
以下は,コーポレートエンジニアを志望してくださる方のカジュアル面談や面接を担当していただく社内の担当者向けに私が用意した資料の抜粋です.

## 求める人物像
### 自分から率先してコミュニケーションが取れるひと
CE が開発・運用しているア