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

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

Laravel 関連でストックした記事まとめ

# 目的

いつか読もうがたまる → 読まないの流れをストップさせるため
ストック&いいねした記事のインデックスを作成しました。

# もくじ

| |もくじ| |
|:——-:|:———-:|:———-:|
|1|[**心得/マインド系**](#心得マインド系)|
|2|[**参考レファレンス**](#参考レファレンス系)|
|3|[**基本コマンド/メソッド系**](#基本コマンドやメソッド系)|
|4|[**初期設定/ライブラリ系**](#設計やアーキテクチャ系)|
|5|[**設計/アーキテクチャ系**](#心得マインド系)|
|6|[**ディレクトリ構成/命名規則**](#ディレクトリ構成や命名規則)|
|7|[**デバック系**](#デバック系)|
|8|[**ログ出力系**](#ログ出力系)|
|9|[**マイグレーション系**](#マイグレーション系)|
|10|[**Docker系**](#コンテナ系)|
|11|[**キャッシュ系**](#キャッシュ系)|
|12|[**バリデーション系**](#バリデーション系)|
|13|[**

元記事を表示

PHPでMDB2の接続確認をする

MDB2の接続周りを確認した時のメモ。

“`php:動作確認用のコード
getMessage() . “\n”;
exit;
} else {
echo “OK\n”;
}

// SQLを実行
$query = ‘select * from hoge limit 5’;
$q = $db->query($query);

// 実行結果を出力
while($row = $q->fetchRow()) {
var_dump($row);
}
“`

元記事を表示

php バリデーションルール

電話番号
‘phone_number’ => [‘required’, ‘regex:/^\d{2,5}-?\d{1,4}-?\d{4}$/’, ‘between:10,13’],

チェックボックス一つ以上選択

$target_type_rules = [
‘section1.is_full_time_employee’ => ‘required_without_all:section1.is_contract_employee,section1.is_part_timer,section1.is_part_time_job,section1.is_part_time_employee,section1.is_employment_type_other’,
];
$target_type_messages = [
‘section1.is_full_time_employee.require

元記事を表示

Eloquentを使ったLIKE検索機能の作り方

#はじめに
検索結果をモデルコレクションで欲しいためクエリビルダではなくEloquentを使う必要があったのですが、調べるとクエリビルダのものしかヒットしなかったため、今回記事にします。初学者なため瑕疵や不備があると思うので、ツッコミやより良い方法があればどんどんお願いします

#環境
Laravel 8.79.0
PHP 8.1.1

#検索機能
“`php:PostController.php
public function search(Request $request)
{
// searchが検索ワードが入力されたフォーム部品 requiredは入力必須のバリデーション項目
$request->validate([‘search’ => ‘required’]);
// 検索ワード取得
$search = $request->search;
// 全角スペースを半角に変換
$spaceConversion = mb_convert_kana($search, ‘s

元記事を表示

GitHub Actionsで複数のPHPのバージョンとOSでまとめてPHPUnitを動かしてみる

PHPのライブラリなどを開発しているとPHP7.4 / 8.0 / 8.1 on Linux / macOS / Windowsのように複数の環境の組み合わせでテストを実行したい事があると思います。
手元でこれらの環境を作って毎回テストするのはあまりにも効率が悪いので、今回はGitHub Actionsを使って複数の環境でまとめてテストを実行できるようにしてみました。

## 用意するもの
– 手元でPHPUnitが動くようになっているプロジェクト
– GitHubのレポジトリ(publicでもprivateでもよい)
– `composer.json`が存在して`composer install`で必要なライブラリが揃う状態になっているプロジェクト

## GitHub Actionsの設定を入れる
`.github/workflows/phpunit.yml` に以下のYAMLファイルを配置します。おしまい!

**とても簡単ですね。**

今回は、Ubuntu(Linux)とWindowsとmacOSでPHP7.4と8.0と8.1を動かす設定を入れてみます。

“`yml:.g

元記事を表示

Susan Donovan

https://susandonovan.com/

元記事を表示

【THE THOR】トップページだけフレームを非表示するカスタマイズ【CSS・PHP】

https://10to1travel.com/thethor-topframe-hide-36240.html

元記事を表示

【PHP】Laravelとは??

## はじめに
Laravelの学習や開発経験のあるエンジニアです。
今までインプット重視になってしまっていた反省も踏まえ、アウトプットしていきたいと思います。
今回は、Laravelとは何ぞやという事について書いていきます

## PHPとは
前提としてLaravelはPHPのフレームワークです
PHPを簡単に解説します
> PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。 PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
引用(https://www.php.net/manual/ja/intro-whatis.php)

PHPはWebアプリケーションの開発を手軽に実現することができる、という特徴を持ったプログラミング言語です。
初学者にもおすすめなプログラミング言語だと思います

注意点としては動的なHTMLの生成もデータベースへの接続も柔軟にできてしまいます。柔軟ということは、整理されていないプログラミングが容易に出来上がってしまうという側

元記事を表示

Laravel 画像アップロード機能 手順

### 超わかりやすい記事

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

この方の記事は非常にわかりやすくい。
具体的にいうと、ただコードを書くだけではなく
各コードに対してのポイントが書いてあるところが良い。

noteフォローしておこう。

### 参考にした記事

https://readouble.com/laravel/5.5/ja/validation.html#rule-image

【PHP】矢印「->」「=>」の意味をわかりやすく解説

元記事を表示

【PHP】値があれば先頭にくっつける、無ければ何もしない

#コード
“`PHP

元記事を表示

その7(6の続きとエスケープシーケンス、ヒアドキュメント)

シングルクォートとダブルクォートの違いについて

変数を展開するか

ダブルクォートは文字列に含まれる変数を解釈し、その値で変数の箇所を置き換える。

そのような処理のことを変数展開または変数のパース(Parse)と言う。

シングルクォートは変数展開せずそのまま表示される。

前回の例

“`
“;

$data2 = ‘怖かったホラー映画は「{$title}」です。
’;

print $data1;
//結果: 怖かったホラー映画は「死霊館シリーズ」です。

print $data2;
//結果: 怖かったホラー映画は「{$title}」です。

“`

変数全体を{~}で囲んでいるのは、変数の範囲を明確にするため。

例えば次の例

“`
“I am $modifier_man!!”
`

元記事を表示

先週の1週間を取得

#先週
$last_sunday = date(“Y-m-d”,strtotime(“last Sunday”));
$last_week_cast_ranking_list = RankingCastDaily::getRankingListByCondition([
‘area_id’ => $area,
‘not_price_0’ => ‘true’,
‘start_date’ => date(“Y-m-d”,strtotime(“-6 day” .$last_sunday)),
‘end_date’ => date(“Y-m-d”,strtotime(“last Sunday”)),
]);

元記事を表示

PHP imagick convolveImage の引数の変更

PHP imagick の convolveImage は画像の畳み込み処理するメソッドです。
この convolveImage は、imagick 3.3.0 => 3.4.0 を境に受け取る引数の形式が変わりましたが、公式マニュアルが分かりにくいのでメモを作りました。

– 公式マニュアル
– https://www.php.net/manual/ja/imagick.convolveimage.php

# convolveImage の機能

画像に対して畳み込みの処理ができます。
例えば、以下のような畳み込みカーネルを与えるとブラー効果を得られます。

“`math
\frac{1}{16}
\begin{vmatrix}
1 & 2 & 1 \\
2 & 4 & 2 \\
1 & 2 & 1 \\
\end{vmatrix}
“`

| 元画像 | convoveImage 適用後 |
|—|—|
![input.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798/163

元記事を表示

CodeSnifferを利用してコーディング規約を自動チェック

#初めに
開発を行っていく中、コーディング規約(PSR12)が守られているかをチェックを行うことは必須です。
しかし、自分で目視してもどこかで見落としがあったりリファクタリングに時間がかかったりしないでしょうか?

そんな時に、自動でコーディング規約を守られているかをチェックするツールが CodeSniffer です。

※今回のチェック対象は Laravel8 のWebアプリケーションです。

#PSR12とは

>PSR-12 は、コーディングスタイルガイドである PSR-2 の拡張および置き換えと、基本的なコーディング標準である PSR-1 への準拠が必要になります。
PSR-2 と同様に、PSR-12 の目的は、異なる作成者のコードを理解する(読む)際の認識の摩擦を減らすことです。

詳しい詳細は以下URLを参照。
[【PHP】PSR-12 Extended Coding Style(拡張コーディングスタイル)](https://www.ritolab.com/entry/208

元記事を表示

Laravel MAMP DBに接続設定

php artisan を実行しても

SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = laravel_db and table_name = migrations and table_type = ‘BASE TABLE’)

上記のエラーが返されて、接続にうまくいかないケース。

①MAMP websiteで接続パラメータの確認をします。
ページの下の方に「MySQL」と書かれたタブをクリックして開くと、パラメータ情報が記載されています。
![スクリーンショット 2022-02-16 20.45.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/677104/62f8cf0d-ed3a-3f50-e153-483005492903.png)

②.envとdatabase.phpの編集
.envファイルを開

元記事を表示

【#1932エラー】phpMyAdminがおかしいとき

ローカルのDBって日頃手入れしていないと突然おかしくなったりしますよね。

昨夜の自分もそうでした。
急いでるときこそすぐ壊れる、phpMyAdminの応急処置について備忘録として記載します。

##①エラー:#1932 – Table ‘phpmyadmin.pma__tracking’ doesn’t exist in engine

自分はXAMPPからインストールしたphpMyAdminをそのまま使っていたのですが、突然上記のエラーが出てphpMyAdmin上の操作が何もできなくなりました。

phpmyadmin.pma__trackingはあります。
phpMyAdminのDBを物理的に削除し再度XAMPPから入れなおしてもエラー解消せず。

調べたところ、phpMyAdminのバージョンによってはバグで#1932のエラーが出続けるケースがあるようです。(このエラーに関する情報少なかったので、どのバージョンなのかは不明。自分は4.5.1で上記の事象になりました)
phpMyAdminのログイントップ下部により安定していると表示されていたバージョンをオフィシャルサイトから落と

元記事を表示

MySQLでdumpしたビューがテーブルとして登録されてしまう件を解消する

## 概要

* RDSのMySQL(5.7.33-log)からdumpしたデータをインポートしたらビューがテーブルとして登録されてしまった

## 解決方法

* ビューはビュー、テーブルはテーブルで別々にdumpする

## 解決例

私は業務の都合上PHPで実施しなければいけなかったので、こんな感じで実施しました。

“`sample.php
$ignore_views = [];
$sql = ‘select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = “schemaname” and TABLE_TYPE = “VIEW”;’;
$select_view_cmd = “/usr/bin/mysql -uusername -ppassword -hhostname schemaname -e'” . $sql . “‘”;
$views = [];

exec($select_view_cmd, $views, $result_code);
$view_tables = ”;
if ($res

元記事を表示

Nginx PHP(laravel) MySQLのDocker環境を作る途中の話

# 概要

– Nginx PHP(laravel) MySQLの組み合わせでDocker環境を作ったので途中経過も含めてまとめてみる

# 作ったもの

– システム要件

| 項目 | 情報 | バージョン | 備考 |
| — | — | — | — |
| Webサーバー | Nginx | 1.15.6 | |
| 言語 / フレームワーク | PHP / Laravel | 8.0 / 9 | |
| データベース | MySQL | 8.0 | |

# ディレクトリ構成

“`
laravel9_test/
├── docker
│ ├── docker-compose.yml
│ ├── mysql
│ │ ├── db
│ │ ├── initdb.d
│ │ │ └── create_database.sql
│ │ └── my.cnf
│ ├── nginx
│ │ └── default.conf
│ └── php
│ ├── Dockerfile

元記事を表示

PHPのPDOをDockerコンテナ内で使おうとしたところ、”No such file or directory” エラーが発生した話

# はじめに

docker-composeでPHP用とDB用の2つのコンテナを立てて、PHPのPDOの挙動を確認したところ、 `SQLSTATE[HY000] [2002] No such file or directory` というエラーが発生してしまったので、その時の解消方法を備忘のために残しておこうと思います。

# リポジトリ
https://github.com/b-coffin/pdo-tutorial

# 結論
結論としては、新規PDOを作成する際のhost名を、**docker-compose.ymlで指定したservice名**にすればよかっただけでした。

“`diff:src/index.php(一部)
-$pdo = new PDO(‘mysql:host=localhost;dbname=homestead;’, ‘root’, ‘secret’);
+$pdo = new PDO(‘mysql:host=db;dbname=homestead;’, ‘root’, ‘secret’);
“`

# 解説
composeを起動すると、デフォルトで単一の

元記事を表示

Laravelのログイン機能でRegister(情報登録)ができない時の対処法

### 発生したエラー

“` php
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘mmictltd.admins’ doesn’t exist
“`
ブラウザ上で、上記エラーが発生してしまいました。
これは簡単にいうとテーブルがないよ。ということ。

### エラーまでの流れ
Laravelのログイン機能をインストールして、ログイン機能を表示するところまで
できたのですが、会員登録をしようとするとエラーが起きました。

認証機能をインストールすると、
>ユーザ登録のためのテーブルマイグレーションファイルは database/migrations/2014_10_12_000000_create_users_table.php と database/migrations/2014_10_12_100000_create_password_resets_table.php として標準で準備されている.

https://rinsaka.com/laravel/u03-auth.html

らしいのですが、自分

元記事を表示

OTHERカテゴリの最新記事