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

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

PHP学習まとめ〜FW学習前はこれだけ知ってほしい〜

## まずはじめに

#### PHPでできること・作れるもの:Web開発
PHPはもともとC言語で書かれていたプログラムで、動的なWebサイトを作成するためのツールでした。そのため動きのあるWebサイトの作成が得意な言語です。
CakePHPやLaravelといったフレームワークを使って、大規模なWebアプリケーションを作ることもできます。

#### ・ビルドインサーバーで確認方法

“`
//index.phpの内容が上記質問に記載されているソースコードとする。
$ ls
index.php
“`

“`
# Webサーバーを起動する。
$ php -S localhost:8080
“`

下記URLでアクセス
localhost:8080/ディレクトリ名/index.php

#### ・コメント方法
“`php
// コメント
or
# コメント

/* 複数行コメント
複数行コメント */
“`

#### ・改行
__“\n”__
PHPで変数を出力(echo)した際に、改行コードも記述して見やすくする
改行コードを””(ダブルコーテーション)で囲ってやると

元記事を表示

【Laravel入門】マイグレーションファイルでDB操作を行う

## はじめに

ドメイン駆動設計を学ぶ上で、データベース設計も一度振り返っておこうと思い書いていきます。

備忘録的な記事ですので、読みにくい部分があるかも知れませんが、ご了承の上でお読みください。

また、当方も学習中の身なので間違いなどありましたらご指摘いただけますとありがたいです。LGTMなどもよろしくお願いします。

## マイグレーションとは

そもそも「マイグレーションって何?」と言うところから書いていきましょう。Laravelの公式リリースノートには、以下のように解説されていました。

マイグレーションとは
[>> Laravel公式リリースノートより](https://readouble.com/laravel/8.x/ja/migrations.html)
> マイグレーションはデータベースのバージョン管理のようなもので、チームがアプリケーションのデータベーススキーマを定義および共有できるようにします。ソース管理から変更を取得した後に、ローカルデータベーススキーマにカラムを手動で追加するようにチームメートに指示する必要があったことを

元記事を表示

Laravelページネーションの表記がおかしい時の対処法。

変なエラーはここに載っている。
・CSSが適用されていないなど

https://nebikatsu.com/8350.html/

元記事を表示

AWS EC2 AmazonLinux2 composerをバージョンを指定してインストールする

# 概要

– EC2のAmazonLinux2インスタンスにcomposerを入れて`$ composer`コマンドを実行できるようにする。

# 前提

– 下記の記事を参考にAmazonLinux2インスタンスにPHP8.0が入っているものとする。
– [AWS EC2 AmazonLinux2 extrasを使ってPHP8をインストールする](https://qiita.com/miriwo/items/9d876de230b66c70bb39)

# 方法

1. 下記コマンドを実行してcomposerの2.2.6バージョンを指定してインストールする。

“`
$ php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”
$ php composer-setup.php –version=2.2.6
$ php -r “unlink(‘composer-setup.php’);”
$ sudo mv composer.phar /usr

元記事を表示

Deep dive into Laravel Pagination – PHP IteratorAggregate

![1_j7QLwyWSomxwVlUT327I-g.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1709868/56528188-7d64-4c14-7260-4e2727e2c289.jpeg)

Regarding to [Laravel pagination doc](https://laravel.com/docs/6.x/pagination#displaying-pagination-results), when calling the paginate method, you will receive an instance of [Illuminate\Pagination\LengthAwarePaginator](https://laravel.com/api/6.x/Illuminate/Pagination/LengthAwarePaginator.html). When calling the simplePaginate method, you will receive

元記事を表示

【PHP】__construct(コンストラクタ)の練習

# コード
“`PHP
name = $name;
$this->weight = $weight;
$this->height = $height;
}

public function introduce(){
$this->introduce_name();
$this->introduce_weight();
$this->introduce_height();
}
private function introduce_name(){
echo ‘僕の名前は’. $this->name. ‘だワン!’.PHP_EOL;
}

元記事を表示

Rails を CakePHP4 に置き換えた時のメモ

## 目的

CakePHP4の勉強がてら、Railsのプロジェクトを置き換える作業を実施した。

## 環境
Ruby On Rails 3.2.11
CakePHP 4.3.5

## 基本文法の比較

#### 文字列操作

“`ruby:Ruby
# 結合
str = str1 + str2
str += str3
# 部分取得
str = str[0,3]
# 分割
str = str.split(‘,’)
“`
“`php:PHP
# 結合
$str = $str1 . $str2;
$str .= $str3;
# 部分取得
$str = substr($str,0,3);
# 分割
$str = explode(‘,’, $str);
“`

#### 配列

“`ruby:Ruby
hash[:col] = 1
array[0] = 2
“`
“`php:PHP
$hash[‘col’] = 1;
$array[0] = 2;
“`

#### if文

“`ruby:Ruby
if str.nil?
# 処理1
elsif str

元記事を表示

【PHP】__construct(コンストラクタ)の実践的なやつ

# コード
“`PHP
name = $name;
$this->age = $age;
self::$count++;
}
public function introduce(){
echo ‘名前は’.$this->name.’、’ .$this->age.’歳です’.PHP_EOL;
}
}
$cats = [];
$cats[] = new Cat(‘ポチ’, 3);
$cats[] = new Cat(‘ミケ’, 5);
$cats[] = new Cat(‘タマ’, 4);
foreach($cats as $cat){
$cat->introduce();
}
echo ‘動物の合計数:’.Cat::$count.’匹’;
“`
# 結果
“`
名前はポチ、3歳です

元記事を表示

【PHP】解析中のインスタンスとコンストラクタ

“`PHP
name = $name;
$this->food = $food;
array_push(self::$animals, $name);
}
static function list() {
echo “ここに” . join(“と”, self::$animals) . “がいます” . PHP_EOL;
}
function eat() {
echo $this->name . “は” . $this->food . “を食べます” . PHP_EOL;
}
}
$cat = new Animal(“猫”, “キャットフード”);
$dog = new Animal(“犬”, “ドッグフード”);
$bird = new Animal(“鳥”,

元記事を表示

laravel学んで2か月で自サービスを開発した話 Part8

こんにちは、ブログの更新で転職活動がなかなか進まないワイです。

今までの開発記録はこちらへ
胡蝶蘭を捨てるくらいならワイが欲しいので、サービス開発する編
公式ドキュメントの言う通り、パッケージをインストールされたら、Inertia.jsが導入されて???になった編
マルチログインを作ってみた編
デザインをtailwindcssに丸投げする編
Larastan(PHPStan)のレベルを5から6(以上max未満)に上げたときの話

## はじめに

はいさい。
今回はLarastan(PHPStan)のレベルを、5から6(以上max未満)へ上げたときに自分がぶち当たった壁みたいなものについて書いてみたいと思います。
自身の[OSS](https://github.com/shimabox/laqu “shimabox/laqu: Laqu is Laravel Db Query Helper.”)で対応したときにつまづいた際の話であり、スコープが何より狭いですし望むものが得られるか分かりませんが、何か参考になるものがあれば幸いです。

## Larastan(PHPStan)とは

### PHPStanとは

Larastanの前に、まずはPHPStanとはなんぞやという話ですが、PHPStanはPHPの静的解析ツールです。
[Getting Started | PHPStan](https://phpstan.org/user-guide/getting-started “Getting Started | PHPStan”)

コードを実行せずに

– 構文エラーはないか?
– 関数に渡すパラメ

元記事を表示

【PHP】__construct(コンストラクタ)をなぜ使うのか?

# ※__constructをなぜ使うか?

インスタンスの生成した瞬間実行できるから
※クラスの初期値を設定できる

“`PHP
id = $id;
$this->name = $name;
$this->age = $age;
}
function profile(){
return ‘社員番号:’.$this->id.PHP_EOL.’名前は’.$this->name;
}

function introduction(){
return $this->name.’の年齢は’.$this->age;
}
}

$id = 12;
$name = ‘雅也’;
$age = 34;
$height = 176;
$weight = 80;

$food = new Food($i

元記事を表示

【Docker】最小限の構成でcomposer実行環境を作る

ライブラリ単体でちょっとした動作確認を行いたい時に便利です。
最小限の構成のため、コードを1行ずつ理解しながら進めやすいと思います。

# ゴール
composerを利用してPHPUnitをインストールし、動作検証まで実行します。
– Dockerを利用してcomposerをインストールできる。
– コンテナにライブラリをインストールできる。

## 最終的なディレクトリ構成
“`bash
.
├── Calculation.php
├── CalculationTest.php
├── Dockerfile
├── composer.json
├── composer.lock
├── docker-compose.yml
└── vendor
“`

# 注意点
記事中のコードは自習用を想定しているため、下記は考慮していません。
– vendor/のマウント設定
– composer.jsonの詳細な設定

# composerのインストール
## ディレクトリ構成
“`bash
$ tree
.
├── Dockerfile # New!
└── docke

元記事を表示

LaravelのCashierでusersテーブルではなく他のテーブルを使いたい

Laravelで決済処理をするためにCashier(Stripe)を導入した際に、
Stripeの顧客をusersじゃないテーブルにしたかったのですが、
そのときのあれこれを備忘録として残します。
– Laravelのバージョン:**8.63.0**
– Cahierのバージョン:**v13.8.0**

## ■ まずLaravelにCashierを導入する
composerでCashierパッケージをインストールします。
“`
composer require laravel/cashier
“`

## ■ マイグレーションを実行する前に必要なこと
無事導入できたら、
デフォルトでは
ここでマイグレーションを実行すると、
既存のusersテーブルにStripeのためのカラムがいくつか追加されて、
新たにsubscriptionsというテーブルと、
subscription_itemsというテーブルが追加されます。

>usersテーブルにStripeのためのカラムがいくつか追加されて、

usersテーブルに追加されたカラムのいくつかのうちのひとつに、
**stripe_id

元記事を表示

旅の思い出投稿サービス『Travel notes』の紹介

# サービス概要
旅の思い出を投稿して、他ユーザーと共有できるWebアプリケーションです。
URL:https://travel-notes.online/
![スクリーンショット 2022-03-06 13.59.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/891391/723ae14d-5cd6-b6ae-87ac-2bec977cf9f2.png)

## 開発背景
– 趣味のみで繋がり共有し合える平和なSNSサービスを作りたかった
家族や親戚、友達も旅行や名所巡りなどの趣味を持っており、有名なSNSアプリなどに登録して共有したいという気持ちはあるが、多種多様の趣味嗜好価値観の人間が集まるSNSはあまり利用したくないとの意見があったから
(過激でセンシティブな投稿が流れてきたり、誹謗中傷コメントなどの影響で)
趣味という限られたテーマに絞ることにより、同じ趣味思考同士で穏やかにやり取りできるサービスを作りたかった
– SNSサービス開発を通じて、バックエンド、フロントエンド、インフラの技術

元記事を表示

DockerでLaravel環境構築

業務でVirtualBox利用したので、仮想環境ついでにやってみることに。
以前からDockerに興味はあったが壁が高いかなと思っててできていませんでした。ちなみに自分のエンジニアレベルは初級です。

# Docker for Macのインストール
下記にアクセス。
https://docs.docker.com/desktop/mac/install/
![Install Docker Desktop on Mac.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1007978/1572a475-920f-86b4-56d4-fd767f627899.png)
docker.dmgファイルをダウンロード。
少し待つ。

終わったらダブルクリックで展開。検証される。
![Pasted Graphic 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1007978/174b59a6-75ea-d4c5-4374-a493

元記事を表示

複数選択のチェックボックスは順位付きにしないか?

# 順位・順序って大事でしょ

何かと優先順位を付けたがる割に、チェックボックスには順位がない。なもんで、第一希望・第二希望って質問項目を並べて、長ったらしいアンケートになったりする。
と思って、順位付きチェックボックスを作ってみました。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27181/a92bdaed-eeb0-096e-6e63-4da900207c83.png)
“`php

元記事を表示

SESSIONとCookieの違いとログイン処理

「SESSIONとCookieの違いってなんだろう?」をまとめてみたのと、一緒に利用されているログイン処理についての備忘録。

## SESSION とは
サーバー側で保有している、ユーザーと紐ずくデータをサーバー側に一時的に保存できる仕組みの事。

### SESSIONが使われる例
複数のページ間で情報を共有する必要がある「ログイン」「アンケートフォーム」などで利用される。

## Cookieとは
ブラウザ側で保有している、ユーザーが選択した情報やSESSION IDなどをブラウザ側に一時的に保存できる仕組みの事。

### Cookieが使われる例
ブラウザを閉じても一定期間ブラウザ側に保存されるので、ログイン機能と合わせて利用されたり、
オンラインショッピングのカートの中身情報などを保存する目的などで利用される。

## PHPのログイン処理
1. SESSIONを生成して、サーバー上で**SESSION ID**を発行する
2. SESSIONを生成したブラウザのCookieに**SESSION ID**を書き込む
3. **SESSION変数** を **SESSION

元記事を表示

【加筆・修正版】PHPでお問い合わせフォームを作成する

過去に執筆した記事ですが、学習を進めるにあたって投稿した内容では不十分な点があることに気づいたため、大幅加筆修正いたしました。
過去に一度読んでいただいた方も、再度目を通していただけると幸いです。

**PHPでお問い合わせフォームを作成する①**

https://qiita.com/Michi1090/items/a575375e3db3fc6a2a90

**PHPでお問い合わせフォームを作成する②**

https://qiita.com/Michi1090/items/150f4cd178155072f44c

元記事を表示

AWSからWordPressを起動する際に詰まったところ

# この記事なんの記事
結構前に購入した「[Amazon Web Service 基礎からのネットワーク&サーバー構築](https://www.amazon.co.jp/Amazon-Web-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%EF%BC%86%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-%E6%94%B9%E8%A8%823%E7%89%88-%E5%A4%A7%E6%BE%A4-ebook/dp/B084QQ7TCF)」という本を基にAWS上でWordPressを起動するところまでをやってみました。
私が持っていたのは2019年2月発行の第4版ですが、書籍通りの手順でやってみてできなかった箇所がいくつかあったので、解決方法をメモしておきます。
エラーメッセージ含め、色々とメモが残っていなくて雑気味です。すみません。

# 前提
AWSなど

元記事を表示

OTHERカテゴリの最新記事