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

PHP関連のことを調べてみた2021年08月05日
目次

Herokuで簡単なPHPプログラムを動かす

Heroku上で簡単なPHPプログラムを動かします。

##環境
OS:Windows10 Pro 64bit

##事前準備

* Herokuにアカウントを作成
* Gitのインストール
* Heroku CLIのインストール

####Herokuにアカウントを作成
Herokuを利用するにはアカウント登録が必要です。
[https://jp.heroku.com/](https://jp.heroku.com/)
なお、無料、有料どちらのプランもありますが、個人で利用する程度ならば無料プランで十分でしょう。無料枠の制限についてはこちらに説明があります。
[https://jp.heroku.com/free](https://jp.heroku.com/free)

登録したアドレスにメールが届くので、記載のURLからパスワードを設定します。
初回ログイン時に、以下のような画面が表示されたら “Accept” ボタンを選択します。
heroku_firstLogin基礎について①〜文字列、数値、変数〜 php

-はじめに-

基礎的な部分の理解度が思ったよりできていなかったため自分なりにまとめてみた。

-内容-

・PHPについて

言語としての特徴 

・web開発に適しており、HTMLに組み込むことができる
・JavaScript とは異なりコードがサーバーで実行されその結果クライアントに送信することがでる

参考:https://www.php.net/manual/ja/intro-whatis.php

・文字列と数値の違いについて

クオテーションを使用しコンピューターの中で言語を文字として認識してもらう、数値として認識してもらうことを指します。

例1:

echo 1+1 ;
//結果: 2

上記の場合クオテーションを使用しなかったため、コンピューター上において数値と認識されたため、結果として「2」という答えがでました。

例2:

echo “1+1”;
//結果: “1+1”

上記の場合ダブルクオテーションを使用したため、コンピューター上で文字列と判断され結果として「”1+1”」という答えがでました。

注意!)クオテーショ

元記事を表示

加算子,減算子 , count PHP

-はじめに-

問題を解いていく中でcountと$++についてつづいたので自分なりに調べ考えをまとめてみた。

-内容-

・countについて 

count

変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数えます。
参考:https://www.php.net/manual/ja/function.count.php

・加算子/減算子について

++\$a 前置加算子 $a に 1 を加え、$a を返します。
$a++ 後置加算子 $a を返し、$a に1を加えます。
–$a 前置減算子 $a から 1 を引き、$a を返します。
$a– 後置減算 $a を返し、$a から 1 を引きます。

インクリメント演算子=増加させる演算子
for文などの繰り返し文で、1ずつ増やす処理をする時によく使われる。

「i」が変数で「++」がインクリメント演算子で対象の値を1つ増やすことがわかったら、「i++」の意味も分かってくる。

「i++」は

変数「i」に値を1追加する

という意味になる。

参考:https://w

元記事を表示

【Laravel】Class (…) not foundの対処

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/874156/f96022de-e4c3-5807-a5bf-d6130d77060a.png)

#結論
###自分で作成したモデルのnamespace宣言が誤っていた。

`php artisan make:model`コマンドでモデルを作成した場合は自動的に名前空間が登録されるようですが、
コマンドを使用せず自分でモデルを追加した場合、別途登録してあげる必要があるようです。

#発生したコード

“`php
// App\Models\PasswordResetsという名前空間をインポートしているのに
use App\Models\PasswordResets;

class ResetPasswordController extends Controller
{

public function showResetForm(Request $request, $token = null)
{
/

元記事を表示

ポートフォリオ「Fishing App」

PHPをお使いになる会社のインターンが決まったので、これを気にLaravel、Vue.jsを使ってポートフォリオを作成しました。

#ポートフォリオ
URL: https://fishingapp.work/
![topImage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/848640/3260524d-ed49-58ce-3ced-83ea9958f087.png)

Fishing Appとは、釣りスポットを投稿し、釣りスポットにコメントして釣果などを共有するアプリです。また、釣りスポットにおすすめの釣り方を選択することもできます。さらに、カレンダーで釣りの予定、記録をすることができ、このアプリ1つで満足できます。

##制作背景

1,初心者に釣りの知見を広めてほしいため

現在は釣りの技術が発展しており、釣りを始める人が日々増加しています。しかし、初心者の場合、どこで釣りができるかわからない、どんな釣り方があるのかわからないという方々がほとんどだと思います。そこで、釣りスポット

元記事を表示

Laravel IDE helperのide-helper:modelで生成されるPHPdocはどこに記載すべきか

## 背景

Laravel + PHPStormで開発しているとmodel等の補完が効かず辛い。

そこで[Laravel IDE Helper Generator](https://github.com/barryvdh/laravel-ide-helper)の出番

これを導入すると、modelに定義してあるプロパティやスコープなどをサジェストしてくれる。

## 問題

この機能はライブラリがモデルのPHPdocを自動生成しIDEが参照することで実現している。

PHPdocをどこに生成するかはコマンドのオプションで選択可能。

“`shell
# モデルクラスに直接生成
php artisan ide-helper:model –write

# 専用のファイルに別で生成
php artisan ide-help

元記事を表示

Brefを利用したサーバレスLaravelアプリケーションの構築

Brefを理解するためにプロジェクト作り直して一から勉強中の忘備録。

[Bref](https://bref.sh/)とは[Serverless Framework](https://www.serverless.com/)を利用して[AWS Lambda](https://docs.aws.amazon.com/lambda/)のPHPアプリケーションを簡単に構築してくれるもの。
以下は[Laravel](http://laravel.jp/)でのBref導入時の手順。

### 1. Serverless Frameworkのインストール

“`
$ npm install -g serverless
$ serverless config credentials –provider aws –key –secret
“`

Serverless Frameworkとは、AWSならCloudFromationなどクラウドの構築管理サービスといい感じに連携してくれるやつ。(説明雑

### 2. Laravelプロジェクトを作成

“`
$

元記事を表示

ポートフォリオとして、絵本読み聞かせ記録のWebアプリを作成しました。【Laravel / Docker / AWS / CircleCI】

# はじめに
### 記事の目的
**ポートフォリオとして作成したWebアプリケーションの紹介記事です。**
![スクリーンショット 2021-07-29 20.52.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527226/9a393f98-b233-a80a-63db-fcc85f076133.png)
注: 絵本読み聞かせ記録 とは、録音再生などの機能ではなく、テキストのみの記録です

主な使用技術は、言語/フレームワークは**PHP/Laravel**、開発環境は**Docker**、本番環境は**AWS(EC2,RDS,S3など)**、CI/CDパイプライン構築は**CircleCI**で作成しています。

また、**アプリ自体のご紹介**のほか、**アプリ作成に至るまでの学習内容**などにも触れられたらと思います。

目次は以下のとおりです。
[1. 作成したアプリについて](#1-作成したアプリについて)
[2. 作成した目的・背景について](#2-作成した目的背景について)
[

元記事を表示

htmlspecialchars関数とは PHP

#■htmlspecialchars()とは
PHP上でコードをテキストとして表示させる時に使うメソッド
エスケープを行うとも言う。
エスケープしないとXSSが行えてシステムに問題が起こる。

“` php
htmlspecialchars(第一引数,第二引数,第三引数);
“`

▼第一引数
エスケープしたい文字を入れる。
変数でも良い。

▼第二引数
変換のパターンを入れる。

|変換パターン|説明|
|:–|:–|
|ENT_QUOTES|ダブルクオテーション、シングルクオテーションどちらも変換|
|ENT_COMPAT|ダブルクオテーションのみ変換|
|ENT_NOQUOTES|ダブルもシングルも変換しない|
|ENT_COMPAT|デフォルト|

▼第三引数
文字コードの指定
UTF-8など

###■htmlspecialchars()を使わない場合
コードがテキストとして表示されずコードの能力が発揮されている。
*危ない

“` php
こんにちわ

“;
echo $a;
?>

//結果 こんにちわ
“`

##

元記事を表示

【PHP】今更ながらPHP/JavaScriptチャレンジレスポンス認証を実装してみる

# 1. まず初めに
#### https環境が「普通」になりつつある今更、あえてチャレンジレスポンス認証を実装する必要性は無いような気がします。

しかし、「無いよりマシ」という言葉がある通り、念には念をという事で私が作っているとあるプログラムのログイン画面に勉強も兼ねてチャレンジレスポンス認証を実装してみたいと思います。
# 2. チャレンジレスポンス認証とはなんぞや?
チャレンジレスポンス認証は他にも「チャレンジ・レスポンス認証」「チャレンジレスポンス方式認証」など、いろいろな呼び方があります。

ネットワークスペシャリスト試験(NW)ではチャレンジレスポンス方式という呼び方がされていますが、個人的にチャレンジレスポンス認証の方が言いやすい(?)ので今回はチャレンジレスポンス認証という呼び方をしたいと思います。

そして、中身についてですが、
####・とりあえず認証方法の一種
####・そもそもパスワードをネットワーク上に流さない
####・サーバー側で発生させた疑似乱数を利用してお互いにパスワードからハッシュ値を求め、両者のハッシュ値が一致したらログイン成功
という特徴があり

元記事を表示

laravelにおいてのbootstrap導入方法

ダウンロードとかいろいろ書いてあるけど、、、
headの部分に

“` “`
を書くだけでOK!

#テンプレート
“`


PDOのqueryの中に変数を入れる方法

ひじょーに単純

$table ="hoge";
$query = "SELECT * FROM $table";

RubyとかJavaとかやってるとこんがらがってくるけど、
PHPはダブルクォーテーションの中に書くだけです。

元記事を表示

つくって学ぶDIコンテナ

## はじめに
LaravelのControllerは、引数をタイプヒントすると依存性を解決してくれますが、
仕組みはどうなっているのか気になったので、簡易的なものをつくってみました。

以下のコードが依存性解決の例です。不思議なことに(?)Requestのインスタンスを自動で引数に渡してくれます。
今回は、DIコンテナを自作し、これと似た挙動を実装します。

### 例

“`php
public function store(Request $request)
{
$name = $request->input(‘name’);
}
“`

## サンプルコード
[GitHub](https://github.com/ksrnnb/di_container)にPHPのサンプルコードを載せています。

## DIコンテナとは
interfaceなどの抽象と、それに対応する具象を管理するオブジェクトだと認識しています。

基本的には、DIコンテナは以下の流れで使用されます。

– 抽象と具象を渡してDIコンテナに登録する
– 抽象を渡して、対応する具象を返す

これができる

元記事を表示

【個人開発】郵便番号APIサービスを作りました。または個人でクレジット決済導入について。

# どんなサービスか?

郵便番号が特定の地域に該当するかを判定するAPIです。
おまけとして、よくある郵便番号から住所を取得する機能も付けました。
ですが、一番の目的は地域の判定です。

【サービスURL】 https://api-zipcode.jp/

例えば、ある郵便番号が新宿区内の郵便番号か?を判定できます。

ここでクイズです。
163-8001 は新宿区内でしょうか?
答えは後ほど。

# なぜ作ったか

私は仕事でECサイトの開発をしてます。
ある日、同僚から相談を受けました。
配送先の郵便番号から、自動的に自社配送かを判定したいとのことでした。
このECサイトでは、都内23区は自社のドライバーが配送し、そのほかの地域は外部の配送業者に託しています。

そのようなサービスがないか探しましたが見つけられなかったので自分で作りました。

# 使用技術

PHP7.4
laravel8.x
AWS EC2,ALB など

# クイズの答え

先程の**163-8001**は**新宿区内**か? の答えですが、今回作ったサービスで調べてみます。

1 ユーザー登録

条件の作成

元記事を表示

【Laravel】mysqlに接続できず、migrateできなかった

Laravelをインストールして、migrateしようとしたら、

“`
[ec2-user@ip-172-31-39-229 mosaku]$ php artisan migrate

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

at /var/www/html/mosaku/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attempting to run a query, we’ll format

元記事を表示

composer require –dev barryvdh/laravel-ide-helperしようとすると[errorexception] include(/var/www/src/vendor/composer/package-versions-deprecated/src/packageversions/installer.php ): failed to open stream: no such file or directoyとエラーが発生する。

laravel ide-helperを入れようとしたときに詰まったのでメモ

##環境

– Vagrant (OS vento/ubuntu-20.04)
– Docker
– PHP 8
– Composer 2.1.3

##事象

Ide-helperインストールしようとすると以下のようなエラー発生

“`
$ composer require –dev barryvdh/laravel-ide-helper

[errorexception] include(/var/www/src/vendor/composer/package-vers ions-deprecated/src/packageversions/installer.php ): failed to open stream: no such file or directory
“`

## 調査

エラーメッセージで検索すると以下の記事がヒット

https://stackoverflow.com/questions/65149298/composer-2-0-8-issue-package-versi

元記事を表示

[個人開発]プログラマーなら気になっちゃうWebサービスを作ってみた。

# まえがき
こんにちは、北海道札幌市で活動しているWebエンジニアチーム「fact」です。
弊チームは2020/5より活動開始したチームです。現在エンジニア歴1〜2年のメンバーが2名で活動しています。メンバー募集中!(特にWebデザイナーが欲しい)

今回は、プログラミング言語を学習した人、学習する人なら一度は気になる「アレ」を可視化してみました!

この記事では、今回作成したサービスの概要から使用技術、どのような過程で作成したかを記載します。
個人開発に興味のある初学者にとっても有益な情報かもしれません!

ぜひ、最後までご覧ください。

# 目次
[1.作ったWebサービス](#1-作ったWebサービス)
[2.作成の流れ](#2-作成の流れ)
[3.使用技術について](#3-使用技術について)
[4.今後について](#4-今後について)
[5.あとがき](#5-あとがき)

#1. 作ったWebサービス

サービス名:プログラミング言語ランキングサイト
URL: https://programming-ranking.com
サービス内容:GitHubのプログラミング言語別リポ

元記事を表示

PHP初心者とお仕事した時に用意したコーディングルールのテンプレ

## 概要

プロジェクトによって色々なコーディングルールがあると思うけど、
PHP初めて触る人に `PSR` に準拠してね!ってだけじゃちょっと難しい時もある。
ただ1から説明するのはめんどくさい…そういう時のためにmarkdownファイルで独自のPHPコーディングルールのテンプレを作ったので配布します。

参考: [【PSR】PHPの標準コーディング規約](https://qiita.com/katsukii/items/e68183f14407722de9cc)

> ちなみにルールはその時に独自で決めただけで、PSRに準拠している訳ではありませんのでご注意を

## コーディングを統一する時のおすすめライブラリ

– `PHP-CS-Fixer`
– 余分な空白改行を削除したり、PSRに準拠した書き方に統一してくれたりする
– もちろん独自にカスタマイズも可能
– CIに設定することで細かなミスに実装者が気付けるのでレビューで細かなミスを指摘する必要がなくなる
– ちなみにライブラリとは別にエディタのプラグインでも設定すれば保存時に自

元記事を表示

【Laravel】バリデーション(条件付き必須項目)

## はじめに
Laravelでの必須項目のバリデーション設定にて、
「ここの項目に値があれば、こっちの項目を必須にしたい」
なんて思っていた際に便利なバリデーションがあったため、備忘録として残します。

## 開発環境
php 7.4.7
Laravel 8.16.1

##やりたかったこと
項目A, B, Cいずれかに値がひとつでもあれば、全て必須項目にしたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508299/33ee0ce8-a8c7-e538-5979-ef89506a3e45.png)
## 条件付きrequired種類
・required_if
 => “指定した項目” が “指定した値” であれば入力必須

・required_unless
 => “指定した項目” が “指定した値” でなければ入力必須

・required_with
 => “指定した項目” が “どれか一つでも記載” されていれば入力必須

・required_with_all
 => “指

元記事を表示

Webアプリケーションを作ってみる。[Laravel]

#Route
まず、Laravelを開いたときにページが開くが、なぜこのページが表示されるのか。
それは以下のファイル、コードが関係していて、
localhost:8000/ を開いたときにrerurn view(ファイル)で書かれている。

“`php:routes/web.php
Route::get(‘/’, function () {
return view(‘welcome’);
});
“`

ちなみに、view(‘welcome’) のファイルの場所は、
基本的にresources\views にある。

初期設定では、resources\views\welcome.blade.php というファイルが設定されている。

#MVCのM(モデル)をコマンドで作る
以前まで、modelは何も選択しないと、Procidersフォルダに入ってしまっていたらしいので、 Models/ファイル名としてファイルを整理していたらしいが、
今は、自動的にapp/Models/ 配下にmodelが作成されるので以下のコマンドで大丈夫。

“`bash
//-mcとすることで、m

元記事を表示

OTHERカテゴリの最新記事