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

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

Illuminate\Database\QueryException:SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES) の解決方法

## はじめに
タイトルに記載のエラーがなかなか解決できず、心が折れそうになりながらも
やっとエラーが解消できたので、備忘録として残しておきます。
また、同じようなエラーに苦しんでいる方がいたら、この記事が解決のきっかけや
ヒントに繋がる事を願っています。

## 対象者
Laravelを使って、webアプリ開発をしようと考えられている方

## 開発環境
・macOS Monterey(バージョン12.4)
・PHP 8.1.8
・MAMP & MAMP PRO 6.6(Intel)
・MySQL 8.0

## エラーが発生するタイミング
以下のコマンドを実行した時
“`
php artisan migrate
“`

## 原因
結果的に複数の問題が重なっていたので、今回のケースで言うと以下の3つでした。
1. phpMyAdminで作成したユーザ情報の不備
2. .envに設定している環境変数に指定している値
3. .envに本来あるべき環境変数(パス情報)の設定不足

## 解決方法

### 1. phpMyAdminで追加したユーザを再度作成
まず注目すべきなの

元記事を表示

html+cssでデザインしたPDFにデジタル署名を発行する

# 目次
[1.はじめに](#1-はじめに)
[2.wkhtmltopdfとTCPDFの準備](#2-wkhtmltopdfとTCPDFの準備)
[3.PDFをhtml+cssでデザイン](#3-PDFをhtml+cssでデザイン)
[4.3をwkhtmltopdfでPDF化](#4-3をwkhtmltopdfでPDF化)
[5.4にTCPDFでデジタル署名](#5-4にTCPDFでデジタル署名)
[6.おわりに](#6-おわりに)

# 1. はじめに

PDF用のライブラリはいろいろありますが、レイアウトにこだわりつつ、簡単にデザインできて、かつ、デジタル署名の発行までおこなうにはどれを使うのが一番よいのでしょう?

[Digital Signature Additions #4286](https://github.com/wkhtmltopdf/wkhtmltopdf/issues/4286)
*意訳)*
> wkhtmltopdfはデジタル署名の発行ができない
> TCPDFはCSSのサポートがひどい
> そしたらwkhtmltopdfで作成したPDFにTCPDFで署名を発行

元記事を表示

【PHP初級⑫】for文応用4

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksPrimary.html)
1から20まで順に表示するが、5の倍数の場合は数字の代わりにbarと表示するプログラムを作成せよ。

# コード
“`php
for($a = 1; $a <= 20; $a++){ if($a%5 == 0){ echo 'bar',PHP_EOL; }else{ echo $a,PHP_EOL; } } ``` # 結果 ``` 1 2 3 4 bar 6 7 8 9 bar 11 12 13 14 bar 16 17 18 19 bar ```

元記事を表示

if文で、「AまたはBまたはCまたは….の場合」の条件式をスッキリ書きたい(PHP, JavaScript)

## 初めに
if文で、
`「AまたはBまたはCまたは…の場合」`というように、
特定のOR条件のパターンでのみ実行したい処理がある場合
愚直に書くとif文の条件式が長くなりがちです

イメージ(PHP):
“`hoge_before.php

元記事を表示

【Laravel】 ControllerからViewへ変数を渡す

# 初めに
今までLaravelを使っていた際に、何となくcompact関数を使ってControllerからViewへ変数を渡していましたが、なぜ配列として渡す必要があるのかや、arrayやwithとの違いがいまいち分からなかったので、調べてみました。
今回はその備忘録になります。
何か間違っている箇所がありましたら、ご指摘いただけますと幸いです。

使用環境
・PHP 7.3.24
・Laravel 7.30.4
・M1 Mac

## viewメソッドを使った変数を送る際の仕組み
Laravelではviewメソッドを使うことで、指定したViewに変数を渡すことができます。
よくある書き方としては

“`php
public function show($id) {
$post = Post::find($id);
return view(‘posts.show’, [‘post’ => $post]); //viewメソッド
}
“`

などがあります。(よくController内で見かける書き方かと思います)
実はこのviewメソッドはvendor/larav

元記事を表示

WordPressから自作テーブルを利用する

本稿は下記案件の続きです。併せてご参照下さい。

https://qiita.com/mindwood/items/eccc97cc0eacff1bdc95

# やりたいこと
昨秋以降の原油価格上昇に加え円安とウクライナ情勢…と仕入コスト負担が急騰し、価格改定(値上げ)のニュースが後を絶ちません。
価格改定の度に、ホームページに記載している価格を手作業でひとつひとつ修正するのはしんどいので、データベースを参照するように直してみました。

# データベースを準備しよう
まず、システムから抜いた価格情報(下図はイメージ)をCSVファイルにしてサーバにアップロード。
MySQLにインポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/d44479fa-9f68-8250-1005-3ee847186a0a.png)

“`:MySQLにログイン
mysql -h example.com -u ユーザ名 -pパスワード データベース名
“`

今回は、WordP

元記事を表示

【MAMP(サーバ)が起動しない】※Startを押しても緑色ではなく、黄色に変化する現象について

## はじめに
こちらの記事は、サーバを起動しようとMAMPのStartボタンを押した際、
(Stopボタンが)黄色に変化し上手く起動しない問題に悩まされている方向けの内容です。
(正常に起動した場合はボタンが緑色に変化し、WebStartボタンが押せる状態になります。)
黄色に変化しサーバが正常に起動しない原因はいくつかあると思いますが、
googleで検索したいくつかの記事通り手順を行っても、なかなか解決できなかったので
同じように解決できていない方がもしいたら、是非参考にしていただきたいです。

## 本記事の対象者
・MAMPが上手く起動しない(既にインストール済みで、前までは正常に起動できていた)
・これまでに、何かしらの形でMySQL(DB)に接続した事がある
・最近PHPのバージョンをアップした
・使用しているポート番号を把握できていない
※上記の内容にいくつか該当する方は、この記事を見る価値はありそうです。

## 開発環境(解決前)
・macOS Monterey(バージョン12.4)
・PHP 8.1.8
・MAMP & MAMP PRO 6.6(Intel)
・M

元記事を表示

「’」か「”」どちらを使うか

# <学習記録>「’」か「”」どちらを使うか」
エンジニア転職を目指す24歳の学習記録です。
学習目標:平日2時間以上、休日6時間以上


#### 結論:時と場合によるが、基本的に「’」で良い。
– 「’」を使うと
– 「’」は「”」に比べて動作がやや高速
– 変数やエスケープ文字は展開できない

– 「”」を使うと
– 変数やエスケープ文字を展開できる(↓例)
“`php:qiita.php
$name = ‘たろう’;
echo ‘{$name}さん、ありがとう’; //「{$name}さん、ありがとう」
echo “{$name}さん、ありがとう”; //「たろうさん、ありがとう」
“`

元記事を表示

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (6)

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
前回は、PLCから取得したデータをデータベースに保存しました。

[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (5)](https://qiita.com/COOLMAGICPRODU1/items/92724b0908143275cfac)

タイトルに書かれたテーマは前回で完了しています。完了していますが、これでは何か物足りないと感じ、今回はデータベースに次々と書かれるPLCからのデータをブラウザに表示してみます。
![e6061bc3683ceff53f53e09554a0288e62dbf2a4188d4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/050d04b5-125b-4651-b5ef-77be2d9eb1d7.png)
## WEBアプリケーション
データベースのデータをWEBブラウザに表示するために、WEBアプリケーシ

元記事を表示

静的コナーセンスについて 「意味のコナーセンス」から「名前のコナーセンス」に弱めるコード実例

## 本記事の目的
現在、「ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ」を読んでいます。
*読んでいる途中で記事を書いているので、間違った解釈が含まれているかもしれません。

この本で「コナーセンス」という言葉が出てきます。
コナーセンスには、「静的コナーセンス」と「動的コナーセンス」という二種類に分けられますが、今回は、静的コナーセンスの中にある「意味のコナーセンス」と「名前のコナーセンス」について、コードベースでお話したいと思います。

新卒1年目の記事のため、説明が下手だったりすると思いますが、お手柔らかにお願いします。

## 静的コナーセンスとは
この本では、Page-Jonesという方が定義したと書かれていました。
> 静的コード解析によって発見可能な静的コナーセンスと、実行時の振る舞いに関する動的コナーセンスという、2種類のコナーセンスを定義した。

つまり、静的コナーセンスは、コード解析やコード部分でのコナーセンスである。

「意味のコナーセンス」…マジックナンバーとか。意味のある値
「名前のコナーセンス」…定数名、クラス名、メ

元記事を表示

Laravelで投稿機能を作る

# はじめに
Laravelで初めてのアプリケーションを作成中です。
学習しながら作成しているので、私自身の頭の整理をしつつ、超基礎的な流れや頻出コマンドをまとめてみました。
かなり長いですが、この通りにおこなえば簡単にできるはずです。

ちなみに前提として、モデル・コントローラーとは何かを理解しており、環境構築は終わっていることとします。
私はRuby on Railsは簡単なアプリケーションであればサクサク作成できる程度の知識がありますが、PHP、Laravelは学習開始して1週間程度の初学者です。間違えていることなどあれば、ご指摘ください。

# 目次

0. [開発環境](#intro)
1. [マイグレーションファイル・テーブル作成](#Chapter1)
2. [モデル作成](#Chapter2)
3. [コントローラー・ルート作成](#Chapter3)
4. [ビュー作成](#Chapter4)
5. [まとめ](#Chapter5)
6. [参考文献](#reference)


# 開

元記事を表示

PHPの変数、定数について

## 変数について

### 概要

変数とは値を格納する箱のことです。ドル記号の後ろに変数名が続く形式で記述し、値を代入して使用します。
基本的に、いつでも値を取り出したり、変更したりすることができます。

変数名のルールは以下の2つです。

– 大文字小文字を区別します。
– 文字またはアンダースコアから始まり、任意の数の文字、数値、アンダースコアが続きます。

変数の利用

“`php
$variable = ‘variable’;
“`

### 変数のスコープ

スコープとは範囲のことです。スコープは2種類あり、グローバルスコープとローカルスコープです。
以下のコードを例を用いて説明します。

“`php

“`

ローカル変数は、abc()が実行されている間のみ存在します。
そのため、ローカルスコープからグローバル変数へはア

元記事を表示

PHP Laravelのプロジェクトをgit cloneする手順

# はじめに

AWSよりFree Tier limit alertが届き、「やばい使ってないインスタンス消さないと」と思い整理したところ、間違えてcloud9で使用しているインスタンスを終了してしまうハプニングがあり、インスタンスを作り直しでgit cloneしました。

PHPを学習し始めたばかりで理解が乏しいですが、今後またgit cloneしなくてはならない場面に遭遇した時の自分のためにも整理してみました。

# 目次
1. [開発環境](#Chapter1)
2. [手順](#Chapter2)
3. [最後に](#Chapter3)
4. [参考文献](#reference)



# 開発環境

– AWS Cloud9
– PHP 8.0.2
– Laravel 9.21.6
– Composer 2.3.10
– MariaDB 5.5.68


# 手順
今回私が実際に行った手順です。
PHPやLaravelのインストールなど、環境は既に構築されてい

元記事を表示

VS CodeでDrupalコーディング規約の検出と整形を行う

VS Code上でDrupalのコーディング規約を検出/整形するためには、

– ComposerでPHP CodeSnifferとDrupalコーディング規約のルールセットのインストール
– [phpcs](https://marketplace.visualstudio.com/items?itemName=shevaua.phpcs)と[phpcbf](https://marketplace.visualstudio.com/items?itemName=persoderlind.vscode-phpcbf)(VS Codeの拡張機能)のインストール

の二つの作業が必要。(VS Codeの設定ファイルでphpcs/phpcbfの実行パスを入力する必要があるため)

### Composerで必要なライブラリをインストールする

Drupalのコーディング規約をPHP CodeSnifferで検出するために、drupal/coderをインストールする。

“`shell-session
$ composer global require drupal/coder
“`

dr

元記事を表示

herokuにLaravelアプリケーションをデプロイする

## はじめに
Laravelのアプリケーションを作成したのでherokuにデプロイしようとしてつまずいたので、書いていけたらとおもっています。
今回自分はLaravelでのアプリケーションをデプロイしますが、他の言語でもやることはあまり変わらないと思いますので少しでも参考になると幸いです。

herokuコマンドやherokuへの登録は終わってるものとします。
まだの方はこちらの記事を参考に実施してください
https://qiita.com/tetsu-sh/items/f6fcbb6b85df04e5cf3f

### 使用する環境
– MacOS(M1)
– PHP 8.0.19
– Laravel 9.19.0
– MySQL 8.0.29
– Docker
– LaravelSail

## 早速やっていくよ!!
herokuアプリを作成
“`
$ heroku create
“`
作成したアプリケーションに移動して
“`
#アプリケーション名の確認
$ heorku apps

# 確認した名前をアプリ名としてherokuと連携
$ heroku git:re

元記事を表示

Laravel 制約を設定したら name is too longのエラーが出た

# 概要

– laravelのマイグレーションファイルの記載で制約を設定したら「name is too long」のエラーが出てマイグレーションができなかったので解決方法をメモ的にまとめる。

# エラー内容

– エラー内容を下記に記載する。

“`
Syntax error or access violation: 1059 Identifier name ‘XXXX_YYYY’ is too long
“`

– laravelは制約の名前をテーブル名を用いて自動生成している。
– テーブル名が長すぎると制約名が長くなりすぎる。そのためエラーが出ていた。

# 解決方法

– 下記のように制約設定時にメソッドチェーンでnameを指定する。

“`PHP
$table->foreign(‘XXXX_id’)->references(‘id’)->on(‘XXXXs’)->name(‘hoge_fuga_piyo_id’);
“`

元記事を表示

PHPの基礎1

## はじめに

こんにちは。
私は現在未経験の駆け出しエンジニアとして様々な学習をしています。
先日PHPの基礎文法について学んだので、自分のアウトプットように記事を残します。
初めての投稿になりますので至らない点がありましたら申し訳ございません。

## 基本記述

“`PHP:lesson.php

“`

“`:出力結果
hallo world
good morning!
“`
PHP_EOLはPHPの定義済み定数であり、OSに応じて自動的に改行文字を設定してくれる。

## nowdoc(ナウドキュメント)とheredoc(ヒアドキュメント)

“`PHP:lesson.php

元記事を表示

Laravel Breezeを使ってみる

開発環境は、
– Windows10 Pro(64bit)
– PHP 8.1.7 (cli) (built: Jun 7 2022 21:45:53) (ZTS Visual C++ 2019 x64)
– Composer version 2.3.7 2022-06-06 16:43:28
– PostgreSQL 14
– node v14.17.5
– npm 6.14.14
– Laravel 9.21.4
– VITE v3.0.2

Cドライブ直下に、laravelディレクトリを作成し、カレントディレクトリへ
“`
cd c:\ && mkdir laravel && cd laravel
“`

以下のコマンドを入力し、Laravelのプロジェクトを作成します
“`
composer create-project laravel/laravel first_breeze –prefer-dist
“`

インストールが終わったら、first_breezeディレクトリをカレントディレクトリにします。
“`
cd first_breeze
“`

Pos

元記事を表示

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (4)

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
初回から前回にかけては、ゲートウェイを使って、PLCから取得したデータをMQTTでブローカーに送信するまでを実装しました。

[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (1)](https://qiita.com/COOLMAGICPRODU1/items/31513295943763365915)
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)](https://qiita.com/COOLMAGICPRODU1/items/370b1bd37dca8a4fd9ae)
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (3)](https://qiita.com/COOLMAGICPRODU1/items/08891c828736428c1b5c)

今回はデータベースを準備します。
![348f9673721149a9206023ad2b3ca8e062d7eb7ab1449.png]

元記事を表示

TOKYO FMのjet streamをphpで録音したい。

## 初めに
私は、ある時から東京FMで深夜12:00〜1:00で放送されるジェットストリームというラジオ番組にハマってしまい、毎日聞くことがことが日課になっています。
そこで、どんな音楽が今日流れていたのか、などを昼に確認したかったので、phpで東京FMを録音するスクリプトを作ってみました。
**注意!・このスクリプトはradikoのシステムにアクセスをします。ddos攻撃的なことになりかねませんので、最低1分間、実行間隔を空けてください。**

## 欲しい機能

– ラジオを録音する
– できれば東京FM以外も録音できるように。

## 案1・受信
ラジオを受信することを考えてみはしたのですが、さすがに無理だと思い、断念。

## 案2・php以外で?(ラズパイとか)
予算の関係で、断念。

## 案3・HLSを受信するか・・・
これはいけそうな気がする。やってみよう。

### どこで配信しているのか探してみる。
まずは東京FMのホームページを開いてみます。
するとメニューに「ポッドキャスト」という項目がある。
「使えるかも?」と思って、みてみたけどjet streamはな

元記事を表示

OTHERカテゴリの最新記事