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

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

Laravel8 + Vue.js を利用したSanctum認証

# 概要
筆者はエンジニア歴がまだ1年も経っていませんが、主にphpをメインとしたシステムエンジニアをしております。
普段の実務ではLaravelは使用しておらず、個人的に勉強するべくLaravelを用いたSPA開発において、認証サービスにSanctumを使用するため自分向けにまとめておきます。
Laravelには他の認証サービスも備わっているため、その辺の違いや実装方法もいずれまとめていきたいと考えています。
基本的にはドキュメント通りに進めているだけなので、下記のドキュメントを参考にしていただければと思います。
それに付随して、自分に起きたエラーの解決方法等も共有していきたいと思います。

https://laravel.com/docs/8.x/sanctum

# 環境
PHP 7.3.11
Laravel Framework 8.33.1
## Sanctumインストール
メモリ確保エラーを回避も含めて、以下のコマンドを実行します。

““
$ COMPOSER_MEMORY_LIMIT=-1 composer require laravel/sanctum
$ php

元記事を表示

PHPのORM idiorm 自分的メモ

# select
### 基本select
“`php
// find_many
$people = ORM::for_table(‘person’)->find_many();

// select_many
$people = ORM::for_table(‘person’)->select_many(‘name’, ‘age’)->find_many();
“`

### selectその他いろいろ
“`php
// カラムのalias
$people = ORM::for_table(‘person’)->select_many(array(‘first_name’ => ‘name’), ‘age’, ‘height’)->find_many();

// limit
$people = ORM::for_table(‘person’)->where(‘gender’, ‘female’)->limit(5)->offset(10)->find_many();

// group by 
$people = ORM::for_table(‘person’)->whe

元記事を表示

Ubuntu(WSL2)にPHP8をインストールする

# はじめに
こんにちは。GutHubで管理している職務経歴書が定期的にcloneされている筆者です:thinking:

新しいPCのセットアップをしてまして、PHPをインストールしたいのですが、せっかくなので最新のPHP8をインストールしていこうと思います :muscle:

# 手順
## 1. software-properties-commonをインストール
外部リポジトリを使用するため、リポジトリ管理に必要な**software-properties-common**をインストールします。

“`sh
$ sudo apt install software-properties-common
“`

## 2. リポジトリ追加
**ppa:ondrej/php**リポジトリをaptに登録します。

“`sh
$ sudo apt-add-repository ppa:ondrej/php
“`

↓ こんなの出てきますが、**続けるならEnter押して**と言われているので**Enter**押してください。

“`
Co-installable PHP vers

元記事を表示

PHPで開発する方法。LAMP,MAMP,XAMPPについて

phpで開発してみたいけど、どうしたらいいかわからない人向けです。

まずパソコンでphpの実行環境をつくるには
phpをダウンロードし,サーバーを立てることが必要です。
さらに、
データを保存したい場合はMySQLが必要です。
![ev024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/002d2925-cb90-96ef-44f9-9e606a6e3820.jpeg)
この実行環境作りって結構めんどくさく、初心者にはハードルが高いです。

それを解決してくれるのが
**LAMP,MAMP,XAMPP**です。
![ev025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/0bdbe74b-25ca-b846-ac3d-1e87d4dff8a9.jpeg)
仮想化・・・コンピュータの中に別のコンピュータを再現すること。

それでは説明していきたいと思います。

#仮想化

||LAM

元記事を表示

dockerでcomposer require が killed になる場合の対応

# はじめに
dockerで構築したLaravel環境にて[nunomaduro/larastan](https://github.com/nunomaduro/larastan)をinstallしようとしたところKilledとなり失敗。

“`shell-session
$ composer require –dev nunomaduro/larastan
(中略)
Killed
“`

# 環境
– docker for mac

# 解決策
調べてみるとどうやらPHPのメモリ不足が原因のようで一旦メモリ使用量を無制限に。

“`php:php.ini
memory_limit = -1
“`

コンテナ内にて反映確認。

“`shell-session
$ php -i | grep memory_limit

memory_limit => -1 => -1
“`

再度実行してみるも解決せず。。

“`shell-session
$ composer require –dev nunomaduro/larastan
(中略)
Killed
“`

Dock

元記事を表示

[PHP] json_encode の第2引数を整数で指定する

値をJSON形式にして返す関数が json_encode です。
第2引数にエンコードのオプションを指定できます。

# 結論

定数と整数,どちらで指定しても同じです。
以下が対応表になります。[参考](https://www.php.net/manual/ja/json.constants.php#115783)

“`php
JSON_HEX_TAG => 1
JSON_HEX_AMP => 2
JSON_HEX_APOS => 4
JSON_HEX_QUOT => 8
JSON_FORCE_OBJECT => 16
JSON_NUMERIC_CHECK => 32
JSON_UNESCAPED_SLASHES => 64
JSON_PRETTY_PRINT => 128
JSON_UNESCAPED_UNICODE => 256

JSON_ERROR_DEPTH => 1
JSON_ERROR_STATE_MISMATCH => 2
JSON_ERROR_CTRL_CHAR => 3

JSON_ERROR_SYNTAX => 4

JSON_ERROR_UTF8 => 5

元記事を表示

git push heroku main時のエラー

laravelで制作したものをherokuでデプロイしようと思い、git push heroku mainコマンドを実行した時のエラーを記載します。

““
remote: In order to use the Auth::routes() method, please install the laravel/ui pa
remote: ckage.
remote:
remote:
remote: Script @php artisan package:discover –ansi handling the post-autoload-dump event returned with error c

元記事を表示

Laravel + XAMPP + macで環境構築

## 今回やること
以下の環境でHelloWorldを出力するところまでやります。

OS macOS BigSur 11.2.2
Laravel 6.20.18
XAMPP 7.3.27

## composerのインストール
Composerとは、PHPのパッケージ管理システムです。
Laravelのインストールで後々使うことになるので、まずはComposerをインストールする必要があります。
以下のページのManual Downloadから最新版をダウンロードしてください。(この記事執筆時点では2.0.11)
https://getcomposer.org/download/ 

これでcomposer.pharがダウンロードフォルダにダウンロードされたと思うので、/usr/local/bin/composer に配置します。

“`
mv ~/Downloads/composer.phar /usr/local/bin/composer
“`
composerのパーミッションを設定し、実行権限を付けます。

“`
chmod a+x /usr/local/bin/comp

元記事を表示

Laravel はじめました [3. 構成の概念]

※前回の記事は以下です

https://qiita.com/soso555/items/94a1d97545599dd18035

# 概要
– 今回は [構成の概念](https://readouble.com/laravel/5.7/ja/lifecycle.html) 編

元記事を表示

【Laravel】LaravelでMVCの「M」にあたるモデルを作成する

“`
$ docker-compose exec workspace php artisan make:model Product –migration
“`

“docker-compose exec workspace“これでworkspaceコンテナへ向けてということ。

“`
php artisan make:model
“`
これで、モデルをつくってくださいね!ということ。
その後ろに、作りたいモデル名を記述する。
ここではProductテーブルを作成したいため、頭文字は大文字で“php artisan make:model Product“とする。

“`
–migration
“`
最後に上の“–migration“オプション、これを記述することでマイグレーションファイルも一緒に作成してくれる。

元記事を表示

【Laravel】.envファイルの情報を編集して、DBを作成する。

“`php

DB_CONNECTION=mysql
DB_HOST=<サーバー名>
DB_PORT=3306
DB_DATABASE=clothes_app
DB_USERNAME=<ユーザーネーム>
DB_PASSWORD=<パスワード>
“`
これで、phpmyadminなどでDBにアクセスすることができる。

元記事を表示

【PHP】特殊文字をエスケープするhtmlspecialchars

htmlspecialchars() は、HTMLタグなどに使われる特殊文字をエスケープし、XSSや悪意のあるスクリプトによる攻撃を防ぐためのPHPの関数です。

##XSS(クロスサイトスクリプティング)とは
クロスサイトスクリプティングとは、Webサイトの中にHTMLやJavaScriptを埋め込むことでサイト管理者が意図しない動作を引き起こす攻撃手法のことです。

この攻撃を受けると、Cookieを盗み取られたりセッションハイジャックを行われたり、Webサイトを改ざんされてしまう可能性があります。

##XSSの攻撃例
実際にXSSの攻撃例を考えてみましょう。

例えばユーザが入力した任意のユーザーネームを、プロフィールに表示するWebページがあるとします。

ユーザーネーム設定フォーム

“`



“`
プロフィール

“`

元記事を表示

【Docker】ファイルの所有者501はどこからやってくる?ディレクトリマウント時の困りごと

発端

phpの`get_current_user()`でファイル所有者が取得できない。
スクリプトに下記のように書いても、

“`php
var_dump(get_current_user());
“`
こうなる訳です。

“`php
string(0) “”
“`

元々下記のようなコードがありwarning出力&所有者変更が行われなくなってしまいはまっていた。

“`php
chown($filename, get_current_user());
“`
warningの内容。
forの後に不自然なスペースが、、

“`php
chown(): Unable to find uid for in
“`

これ、仮に存在しないユーザーを所有者に変更しようとした場合にはここにユーザー名が入る。

“`php
chown(): Unable to find uid for test in
“`

環境

・Vagrantfileで作成したVM上で、Dockerコンテナを利用
・ローカル(Mac)のディレクトリをコンテナと共有

###ローカルで試してみた
M

元記事を表示

Laravel5.5 FormRequest が実行されない??

#はじめに

入力フォームのバリデーションにはいくつかの種類があるんやけど。
わいが一番好きなのは`FormRequest`なんや。

なんでかって??
それはバリデーションだけ別ファイルに書くことになるからや。
コントローラーにバリデーション書くとコントローラーが読みにくくなるのを防いでくれるところがいいよね。

そんな、FromRequest大好きなわいが時々起こしてしまう事件に対してのQiitaです。
みんなもこんなことならんようきいつけて〜や。

#現象

入力フォームで何かしら入力し送るとバリデーションエラーないし、データ送信ができるはずなんやけど、何も表示されないまま、入力フォームに画面が戻ってくる現象に関してWHY :disappointed_relieved:となったのでQiitaを書きます。

なんも表示されてないから何が起きているのかわかんない。そんな時、大体ここら辺が原因かなって心当たりがあることを書いていきます。

・FormRequestの指定が間違ってる。
・入力フォームにエラー表示されるようなコードを書いていない。
・誤字

FormRequestを作成す

元記事を表示

Laravel Auth ログイン後のリダイレクト先をデフォルトから変更する リメイク編

# 目的

– Authのログイン認証後にリダイレクトするページをデフォルトの設定から変更する方法をまとめる

# 環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Lara

元記事を表示

【Laravel】seedデータの作り方

“`php

create();
User::create([
‘id’ => ‘100’,
‘name’ => ‘田中太郎’,
‘name_kana’ => ‘タナカタロウ’,
‘email’ => ‘test@rikai.technology’,
‘tel’ => ‘1234567890’,
‘password’ => bcrypt(‘password’),
]);
}
}
“`

database/seeds/UserTableSeeder.phpにこ

元記事を表示

ajaxで連想配列を渡す際にハマった話

#ajaxで値を渡せずにハマった話

###発生した問題
javascriptのajax通信でphpに連想配列を渡そうすると、\$request->xxxや\$_POST[‘xxx’],\$reuqest->input[‘xxx’]の方法を使ってもnullになって、手も足も出ませんでした。

###解決方法
エンコードが必要

“`js
var hoge = {
name : ‘hoge’
}
$.ajax({
type: ‘POST’,
url: ‘1’, //個人で変えてください
contentType: “application/json”,
data: JSON.stringify(hoge),
dataType: ‘text’,
})
“`

このように記述することで、phpで\$request->nameで呼び出す事が出来ます。js側でエンコードした連想配列を渡しただけなので、おそらく、php側でのデコードも必要だと思いますが、とりあえず動いたので、後日調べようと思います…
投稿中に気づ

元記事を表示

PDO 接続までの流れ一覧

#はじめに

この記事を見ればMacのローカル環境に“`MySQL“`をインストールして、“`PDO“`を使いターミナル上で実行結果を表示させるまでの流れが分かります。
(※PHPはローカル環境にインストールされている前提です。)

環境は“`PHP7.3.11“` 、“`MySQL8.0.23“`になります。

PHPを学習する中、現代は“`MAMP“`や“`Docker Compose“`での環境構築の方法が巷に溢れているせいでなかなか“`MySQL“`単体をローカルに入れて使用するという機会が少ないように思います。 また、“`TablePlus“`などのGUIツールの発展によりターミナルで完結させる機会も減ってきていると思うので改めて復習をしました。

##1、 HomebrewでローカルにMySQLがインストール済みか確認する
“`
$ brew list
“`

##2、 HomebrewでローカルにMySQLをインストールする (※ローカルにMySQLがインストールされていない場合)
“`
$ brew install mysql

元記事を表示

Laravel はじめました [2. 準備]

※前回の記事は以下です

https://qiita.com/sosobl/items/616307285bee984ce60f

# 概要
– 日本語訳された公式ドキュメントに沿って実践していきます
– [Laravel Document 5.7 日本語(終)](https://readouble.com/laravel/5.7/ja/installation.html)
– 今回は [準備]編
– [インストール] は割愛

# 準備 > 設定
## 環境設定
– ルートディレクトリにある “`.env.example“` ファイルに環境周りの設定を書きましょう
– ソース管理に含めてもよい

– “`.env“` ファイルはソース管理ファイルに含めない
– こちらは環境により内容を変更しましょう
– サーバ内の環境変数として各変数を定義してもよい。最終的には環境変数で上書きされるとのこと。
– docker で動かす場合には環境変数を注入する仕組みが必要

– “`.env“` ファイル内

元記事を表示

ボディマス指数の計算方法(BMI)

HTML





適正体重サンプル


m


PHP

元記事を表示

OTHERカテゴリの最新記事