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

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

【エラー】新しいパソコンに違うバージョンのPHPを入れてしまった。

今回、新しいパソコンに変更するにあたり、一から新しいパソコンにXAMMP、composer、laravelをインストールしました。

そして、以前のパソコンでphp,laravelの作成していたポートフォリオの開こうと、
「php artisan serve」を入力したら、えらい勢いで怒られました((+_+))

それがこの写真(コマンドプロンプトの写真を撮り忘れたので、コピペを張り付けた写真です)
![dobonerr0.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1203654/69c9aba5-6a6c-1339-c147-4a492098a653.png)

wordに横設定した用紙に張り付けた書類です。写真には#11の項目で終わってますが、
実際には3ページ分続きました。しかも・・赤いラインも入って、、、

まじ、ビビりました((+_+))

で、なぜこのようなエラーで返されたかというと
結論から申し上げますと、
__パソコンにインストールしたバージョンと、ポートフォリオのデータの内容のバ

元記事を表示

クラス・インスタンスってなに?を言語化してみる

大抵の初学者仲間の方とは違い、RubyとRailsではなくPHPとLaravelを使ってはおりますが、オブジェクト指向プログラミングを行っている点では同じでしょう、ということで。

コーディングにもそこそこ慣れてきた気がしますので、ここらで「クラスって何すか、インスタンスってなんすか」を言語化してみたいと思います。

説明的な文体を取りますが、教えるつもりなどではなく、あくまで己の説明能力を試したいという次第でございます。

## クラスって何
クラスを使ってプログラミングするのがオブジェクト指向プログラミングです。

じゃあクラスは何かといえば、簡単にいえばデータにまつわるメソッドや情報をひとまとめにしたものです。

Progateで勉強したとき出てきましたね。値を取り出す「ゲッター」とセットする「セッター」みたいなやつ。これらは単なるデータの出し入れですが、Webアプリケーションにおいてはもっといろいろやることがあります。いろいろメソッドを書きます。そして情報ごとに必要な処理は違いますから、`User`や`Post`といった種類があるごとにクラスを作るわけです。

その中で、「どう

元記事を表示

【Laravel,MySQL】 hasOneメソッドで関連付けられるテーブルの項目名はどのように決まっているのか

#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。
今回はhasOneメソッドで関連付けられるテーブルの項目名の決まり方について、疑問を調べたのでまとめました。

#環境
– Docker
– Laravel Sail
– MySQL8.0

#今回の疑問
なぜ以下のようにhasOneメソッドを使用することで、Personモデル(peopleテーブル)のidとBoardモデルクラス(boardsテーブル)のperson_idが結びつけられるのか疑問に思いまし

元記事を表示

【MySQL超入門】データベース・テーブル作成・CRUD

#はじめに
最近プログラミングの勉強を始めた初心者です。:baby:
MySQLのデータベースの操作を行っている際、SQL文をたまに忘れてしまうことがあるので、
**データベース・テーブルの作成**・**CRUD**のSQL文をここにまとめてみました。

記事に関して、間違っている点などありましたらご指摘いただければと思います。
###MySQLとは?
* 世界で最も人気のある、基本無料のオープンソースデータベース:girl_tone1::boy_tone2::girl_tone5::boy_tone3:
* 操作方法がシンプルかつ、高速性・堅牢性・利便性に優れている:eyeglasses:

###CRUDとは?
データベースの基本操作で、以下のそれぞれの頭文字からとった総称です。

頭文字|CRUD|機能|SQL文|
|:—:|:—:|:—:|:—:|
|C|Create|データ追加|INSERT文|
|R|Read|データ取得|SELECT文|
|U|Update|データ更新|UPDATE文|
|D|Delete|データ削除|DELETE文|
#データベース作成

元記事を表示

Amazon Linux 2 で Nginx, MariaDB, PHP7.2 から 7.4 にアップグレードする方法

Concrete CMS をインストールしているサーバーで

– PHP7.2.x or PHP7.3.x -> PHP7.4.x
– MariaDB 5.5.x or 10.2.x -> 10.5.x
– Nginx 1.12.x -> 1.16.x

にアップデートした時のコマンドメモです。

めっちゃくちゃざっくりです。

アップグレード元のバージョンが違ったり、レポジトリが違ったりあって、
いろんなケースの手順をまとめてます。

**PHP+MySQL のサーバーに詳しい人しか参考にしないでください。**

“`
# PHP7.3 まであった Exntesion & 古い Concrete CMS でも使用していたが
# PHP7.4 では利用不可 & Concrete CMS 最新版では不要になるので削除
sudo yum remove php-pecl-mcrypt php-recode

# 旧バージョンの Amazon Linux Extra や MariaDB の公式レポジトリを Disable or 削除
sudo amazon-linux-extras di

元記事を表示

WordPressのcode snippetsでhtml,phpを併用する

# 導入
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698479/ce29897c-10d5-9757-259f-1cfad694d6e1.png)
おなじみのWordpressのPost Snippets機能
直接,function.phpとかわからなくてもphpでコードがかける機能
でもそのままじゃ,phpの機能しか使えない
つまりは
``
の中身だけしか書けない
phpを書いてたらやりたくなるのは
`

`
である
でもこれを書くと`Error`を吐くのだ

# 本編

たぶん,自動で記入した部分の前後にphpの囲いのコードが書かれるのだと思う

``

こんな感じ

ということで,
“`php
?>

元記事を表示

laravelBreezeにvue.js3ど導入しようとした件

laravel breezeをインストールしたんだけれど、breezeのJSは**Alpine.js**で**Vue.js**が入ってなかったので、

####じゃあ、alpine.jsを使えばいいじゃん!####

資料が少なすぎて無理・・・

ということで、breezeにvue.js3を導入します!
Laravel ~Mvcモデルを使ってDBのデータを表示 その2~

##✧MVCモデル編(第5幕)✧
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1782859/feb58784-ef0e-329a-2ff3-090a2478fcbb.png)

今回は、MVCモデルを使って、データベースにかかれているものをweb上で表示する仕組みの、views編です。

####新たに出る文

アロー演算子(->)・・・a->bみたいな形で使う。aの中にあるbを取り出しますみたいな形で使う。
“`例: $get = $time -> $date($timeの中にある$dateの情報を取り出して、$getに格納します)“`

####viewsの続き

前回作った$valuesから、アロー演算子を使い、idとtextを、抜き取り、表示をします。

“`
@foreach($values as $value)
{{$value->id}}
{{$value->text}}
@endforeach

“`

といった形で、処理を書く。
また、コ

元記事を表示

Laravel8 マルチログイン時のメール認証

## 初めに

Laravel8でマルチログイン、メール認証それぞれの単体記事はたくさんあるのですが、マルチログインを実装した際のメール認証がなく私自身が少し詰まったので、まとめようと思います。初めての記事投稿ですので、お手柔らかに?‍♂️

## 環境

“`php
PHP: 8.0.9
Laravel: 8.52.0
laravel/breeze: 1.4
“`

## 準備

マルチログインの実装に関する記事はたくさんあるので、マルチログイン実装部分は割愛させていただきます。
ModelはUserとAdminを作成して、prefixとasをつけています。

“`php:RouteServiceProvider.php
public function boot()
{
$this->configureRateLimiting();

$this->routes(function () {
Route::prefix(‘api’)
->middleware(‘api’)

元記事を表示

composer require linecorp/line-bot-sdk導入時のエラー解決

#概要
composer require linecorp/line-bot-sdkのエラー解決。いくつかネット記事を回ったものの、同じ解決法をとっている人がいなかったので。

環境は以下です。
Cloud9
PHP 7.3.30
Laravel Framework 6.20.44

#エラー内容
“`
$ composer require linecorp/line-bot-sdk
Using version ^7.3 for linecorp/line-bot-sdk
./composer.json has been updated
Running composer update linecorp/line-bot-sdk
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

Problem 1
– Root compo

元記事を表示

LiteSpeed Web Server と CodeServer で作る PHP 開発環境

# はじめに

雑に書いていますが後で直します

# 下準備
LiteSpeed をインストールします

https://qiita.com/dxa/items/b7b5a9e1f8aa12b545e7

# Xcodeをインストール

“`bash
[root@vm opc]# dnf -y install gcc make lsphp80-devel lsphp80-pear
[root@vm opc]# /usr/local/lsws/lsphp80/bin/pecl install xdebug
~(中略)~
+———————————————————————-+
| |
| INSTALLATION INSTRUCTIONS |
| ====

元記事を表示

[Vulnhub]DEFCON TORONTO: GALAHADの脆弱性診断

# はじめに

以下よりダウンロードできます。

https://www.vulnhub.com/entry/defcon-toronto-galahad,194/

## 免責事項

:::note alert
本記事で紹介する内容は、教育目的または脆弱性について仕組みを理解し周知、啓発を行うためだけに作成しております。
記載されているコードを実行した場合の損害は一切責任を負いません。
また、ハッキング行為をいかなる稼働環境・サービスに対しても行わないでください。成功しなくても試みること自体が違法行為にあたる場合があります。
上記の内容を十分理解された方のみ本記事をお読みください。
:::

また、本記事の記載内容で、法的または倫理的に問題があると思われる箇所、その他お気づきの点などがございましたら、お手数ですがコメント欄までお知らせください。

## DEFCON TORONTO: GALAHADについて

> デフコントロントによって2016年9月にホストされたオンラインCTFで使用されるVMの1つは、boot2rootの課題に合わせてわずかに変更されました。
難易度: 簡単

元記事を表示

Drupalの管理画面ダッシュボードをリッチにするContent Plannerモジュール

WordPressや他のITツールを使ったことがある方であれば、管理画面にログインをしたらダッシュボードが表示されるということに慣れているのではないでしょうか?

それに対してDrupalはログイン後にはフロント画面のトップページが表示され、ページ上部に管理用のナビゲーションが表示されます。訪問者が実際に見る画面でコンテンツの作成・編集が行える利点があるものの、「ログインしたらダッシュボードが見たい!」といったユーザー向けに「Content Planner」が利用できるので紹介します。

# Content Plannerモジュールでできること

Content Plannerは以下の3つの機能があります。

1. コンテンツ状態ダッシュボード
2. 公開予定カレンダー
3. Kanbanボード

## コンテンツ状態ダッシュボード

コンテンツ状態ダッシュボードはコンテンツの状態(下書き中の記事が5件、レビュー中の記事が2件、等)や、最近公開されたページ一覧、今後公開される記事一覧に加え、任意の情報やViewを埋め込むことができる画面です。

CMS内のコンテンツ作成作業の状況が一目

元記事を表示

やっと分かった「インスタンス化」

##■よく分かんないけどnewする
プログラミングを始めてから、ずっと分からなかったんです。
インスタンス化。
なんだかよく分かんないけど、
newしないとできないことがあって、
newするとできるようになることがある。
どうやらこれがインスタンス化って言うらしい。
ふーん?
newするって何なの…って思いながらいつもnewしてました。

調べると記事は色々出てきますよね。
設計図を実体化するみたいな感じ、とか大体そんなふうに。

ふむふむなるほど、、、、
**わ〜、全然ピンと来ないなあ** ?

あ、決してわたしの見た記事がダメだったとかそういうことはなくて
わたしの理解力のなさがピンと来なかった原因なんですが、
つい先日ようやく開眼(?)いたしまして、
今回はそれを記事にしたいと思います。

##■インスタンス化っていうのは
思ったんですよ。
インスタンス化っていうのはもしかして、

**召喚獣を召喚するのと同じなんじゃない?? ** って。

いきなり召喚獣とか言い出して大丈夫でしょうか。
大丈夫です。
(あまりゲームに馴染みのない方には意味不明ですね、すみません汗)

元記事を表示

【PHP】session_start(): Failed to read session data: user (path: /var/lib/php/session) in …が発生したときの対応

# はじめに
セッションハンドラでセッション管理をしていたときに**session_start()**を呼び出すと下記エラーが発生。

“`
session_start(): Failed to read session data: user (path: /var/lib/php/session) in …
“`
本記事ではエラーの原因、解決方法を備考録としてまとめております。

# 原因
####セッションハンドラ実装の流れ
* session_set_save_handler関数を定義
関数の説明は[公式](https://www.php.net/manual/ja/function.session-set-save-handler.php)を参照

* session_set_save_handler関数にSessionHandlerInterfaceインタフェースを実装したクラスのオブジェクトを渡す
* SessionHandlerInterfaceを実装するには、以下の6つのメソッドを実装する

1. “close(): bool“
1. “destroy(s

元記事を表示

composer self-updateできない

##はじめに
環境変数の設定中に、phpdotenvというライブラリを導入する際に、複数のエラーにハマったので、備忘録として残します。

##現状①

– phpdotenv導入のために、下記コマンド入力後に、Composer2へアップデートして下さいとのエラーが出ている状況。

“`
docker-compose exec app composer require vlucas/phpdotenv
“`
“`
Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2 is now available and you should upgrade. See https://blog.packagist.com/deprecating-composer-1-support/
“`

– [https://blog.packagist.com/deprecating-composer-1-support/](https://blog.pack

元記事を表示

command not found:phpを解消する

##はじめに

phpのバージョンを確認するコマンドを入力した際にエラーにハマったので、備忘録として残します。

##現状

– `php -v`入力後に下記エラーが出ている現状。

“`
$ php -v
zsh: command not found: php
“`

##原因

– パスの通し方が間違っていたのが原因でした。

##対応

– まずは、phpのパスを調べる。

“`
brew –prefix php@7.4
“`
– 私の環境では、`usr/〇〇/opt/php@7.4`なので`/Users/ユーザー名/.zshrc`を編集します。`cat`コマンドを使用して、現在の設定を確認します。

“`
cat ~/.zshrc
“`

– `vi`コマンドでパスを編集します。編集方法は、`i`を押して、インサートモードに入る。`esc`を押して戻る。`:w`で書き込みをして、`:q`で終了する

“`
vi ~/.zshrc
“`

“`
export PATH=(brew –prefix php@7.4で返ってきたパス)bin:$PATH
“`

元記事を表示

League/Csvで5C問題を回避してCSVを読む

PHPのCSV操作ライブラリ[League/Csv](https://csv.thephpleague.com/)では文字コードがShift-JISのCSVを読むことができますが、5C問題のためにフィールドがうまく区切られない場合があります。**5C問題**はShift-JIS固有の問題で、バックスラッシュとして解釈される`0x5c`が一部の文字コードの先頭に含まれることに起因する問題を指します。これを発生させる文字はいわゆる[ダメ文字](https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp)として知られており、例として「貼」「表」「能」などが挙げられます。

この記事では、League/Csvを利用してCSVを読む際に5C問題を回避する方法について記します。記事中で利用するLeague/Csvのバージョンは9.8.0、PHPのバージョンは8.1.0となります。

## フィールドをうまく区切れない例
読み込むCSVファイルが

– 文字コードがShift-JISである
– ダメ文字がエンクロージャの**直前**

元記事を表示

WSL2(Ubuntu)でPHP + Apache環境を構築する①

WSL2(Ubuntu)を使用して、Windows上にLinuxの仮想環境を構築し、PHP + Apacheの開発環境を整えます。
本稿は2部構成となっております。第1部では、WSL2・Ubuntuをインストールして、Linux環境を構築するところまで進めます。

# 前提条件
– Window10環境
– 当記事は2022年1月時点の情報に基づいて、執筆しています。WSL関連の情報は頻繁にアップデートされているようですので、実行前に公式ドキュメントを確認することをお勧めします。
– 公式ドキュメント : https://docs.microsoft.com/ja-jp/windows/wsl/install

# Windowsのバージョン確認
作業に入る前に、まずはWindowsのバージョンを確認しておきましょう。
`Windowsキー` + `R`でファイル名を指定して実行画面を開きます。名前欄に`winver`と入力してOKをクリックすると、Windowsのバージョン情報が確認できます。
![2022-01-16 (16).png](https://qiita-image-st

元記事を表示

PHPで発生したエラーを画面に出力する方法

PHPのエラーをブラウザに表示させる方法

“`
sudo vi /etc/php.ini
“`

「/display」で検索

「エラーをHTML出力の一部として画面に出力するかどうか」の設定。OffをOnに変更。

“`
display_errors = Off → display_errors = On
“`

「display_errorsをOnにしても、自分で書いた内のプログラムエラーしか表示しませんよ」という設定。OffをOnに変更。

“`
display_startup_errors = Off → display_startup_errors = On

“`

元記事を表示

OTHERカテゴリの最新記事