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

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

Laravel アプリケーションファイルを$ git clone 後に実施することメモ

# 目的

– LaravelアプリをGitHubからcloneした後に実施しないといけないことを毎回忘れるので自分用にまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qii

元記事を表示

【Laravel】usersテーブルにカラムを追加する

# 内容
はじめにマイグレーションを行うと、usersテーブルにnameとemailなどができるが、プロフィールを作成しようとすると、性別や年齢、自己紹介文などが欲しくなります。
そこで、既存のusersテーブルにカラムを追加する作業を行います。

# 前提
laravel7で行います。
すでにマイグレーションを行っているものとします。

“`zsh
% php artisan migrate
“`

# 方法
1. マイグレーションファイルを作成
2. カラムを追加
3. マイグレーション

## マイグレーションファイルの作成
“`zsh
% php artisan make:migration add_column_to_users_table –table=users
“`

どういう操作をするかわかりやすいファイル名にすると良いでしょう。
–tableオプションでどのテーブルを編集するか指定します。

## カラムを追加
“`php:20XX_00_00_000000_add_column_to_users_table.php
class AddColumnT

元記事を表示

【PHP】画面にエラー表示させる方法(デフォルト設定方法も説明)

MAMP等を立ち上げてPHPファイルをブラウザで閲覧した時に、エラーが発生して
画面が真っ白になることありますよね。
そんな時は、コードのどの行でエラーが発生しているのかを突き止められるよう
エラーメッセージを画面に表示するように設定すると便利です。

そのためには、主に以下の2つの方法があります。

***
**①PHPファイルにコードを1行追加する方法**
 →ファイル毎に追加する必要があります

**②PHPの設定ファイルを変更する方法**
 →一度設定すると、①のように毎回コードを追加する必要がなくなります
***

それでは、それぞれの方法について説明させていただきます。

# ①PHPファイルにコードを1行追加する場合

こちらは至ってシンプルで、エラーを表示させたいPHPファイルに
以下のコードを1行追加します。
これでエラーが表示されるようになります。

~~~php

元記事を表示

超初心者がherokuにPHPアプリを公開してみた!~デプロイ編~

前回投稿した[アカウント登録編](https://qiita.com/youth_case/items/f053e6542a8b65ad21aa)の続きです。
実際にアプリケーションをherokuにデプロイ(上げる)してみたので、手順をまとめました。

###デプロイしたもの
言語:PHP
FW:Laravel6.0
DB:MySQL
エディタ:Visual Studio Code

#アプリケーションの作成
herokuにデプロイするアプリケーションを作成します。
アプリケーション名は[前回登録したもの](https://qiita.com/youth_case/items/f053e6542a8b65ad21aa#%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90)と同じものにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50

元記事を表示

PHPのアクセス修飾子

##はじめに
PHPのアクセス修飾子の違いについて今更ながらちゃんと理解できました。
今までちゃんと考えないで使っていたので復習しました。

##PHPのアクセス修飾子について
まずはアクセス権が厳しい順にprivate→protected→publicとなっています。

**・private**
同じクラスの中でのみアクセス可能。
非公開で継承クラスからもアクセス不可能。

**・protected**
そのクラス自身と継承クラスからアクセス可能。
非公開だがが、継承は可能。

**・public**
どこからでもアクセス可能。
アクセス修飾子がない場合は、publicを指定したものと同じになる。

まずprivateにできないか考えてそれば無理ならprotected→publicみたいな順に考えるのが良いでしょう。
publicを使えば動くは動くのですが、安定したサービスの運用のためには適切なものをつかうのが良いでしょう。

##おわりに
実装していく中で細かい部分に関してはいったんおいておいて大枠をとらえるようにしていましたが、これからは細かい要素も学んでいきたいと思います。

元記事を表示

PHPの連想配列を使ってポケモン図鑑を作ってみた

連想配列を使って

ポケモンのタイプを検索できるようにしてみた。

“`php
‘くさ’,
‘フシギソウ’ => ‘くさ’,
‘フシギバナ’ => ‘くさ’,
‘ヒトカゲ’ => ‘ほのお’,
‘リザード’ => ‘ほのお’,
‘リザードン’ => ‘ほのお’,
‘ゼニガメ’ => ‘みず’,
‘かメール’ => ‘みず’,
‘カメックス’ => ‘みず’,
‘キャタピー’ => ‘むし’,
‘トランセル’ => ‘むし’,
‘バタフリー’ => ‘むし’,
‘ビードル’ => ‘むし’,
‘コクーン’ => ‘むし’,
‘スピアー’ => ‘むし’,
‘ポッポ’ => ‘とり’,
‘ピジョン’ => ‘とり’,
‘ピジョット’ => ‘とり’,
‘コラッタ’ => ‘ノーマル’,
‘ラッタ’ => ‘ノーマル’,
‘オニスズメ’ => ‘とり’,
‘オニドリル’

元記事を表示

Laravel 6 $ composer require laravel/uiを実行するとエラーが発生する

# 目的

– Laravel6 のアプリにユーザ認証機能を付与しようと思い`$ composer require laravel/ui`を実行した時にエラーになった話をまとめる。

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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 |

# 問題までの経緯

1. 下記の記事の方法でDockerにてLaravelの環境を構築した。
– [先輩に用意してもらったDockerFileを使用してLaravel6の環境を作成した話]()
1. 下記の記事の「ライブラリのインストール」の作業まで実施した。
– [D

元記事を表示

PHPでlike検索かける方法

#likeを使った検索方法
###誤った方法
“`
$lists = $db->prepare(‘SELECT * FROM example WHERE like “%?%” ;’);
$lists -> execute(array($_SESSION[‘key’]));
}
“`
これだと、%も?もエスケープされていないので、期待した値が得られない

###正しい方法
“`
$lists = $db->prepare(‘SELECT * FROM example WHERE like ? ;’);
$lists -> execute(array(‘%’.$_SESSION[‘key’].’%’));
}
“`
つまり、「%」ごと挿入すると考えることが重要であると分かった。

元記事を表示

【超初心者用】MacでphpMyAdminからアクセスできない時の対処法

###ターミナルからはログインできるのに!
ターミナルからmysql起動してログイン。

“`
起動
$ mysql.server start
“`

“`
ログイン
$ mysql -u root -p
“`

phpMyAdminからログインしよう!
http://localhost/phpmyadmin/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/92feb891-e35a-a6c9-5596-82849e131937.png)

ユーザ名:root
パスワード:(mysql -u root -pの後に入力するパスワード)

するとエラーが出てきました。

“`
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
“`

これともうひとつ出てきましたが、これを調べて対処したら解

元記事を表示

PHPで動的な変数名に値を設定する

“`php
$arr = [‘a’, ‘b’, ‘c’];
$test1 = ”;
$test2 = ”;
$test3 = ”;
for($idx = 0; count($arr) > $idx; $idx++) {
${‘test’ . ($idx + 1)} = $arr[$idx];
// $this->{‘test’ . ($idx + 1)} = $arr[$idx];とするとクラスのプロパティも行ける
}
// $test1 = ‘a’
// $test2 = ‘b’
// $test3 = ‘c’
“`

元記事を表示

変数と関数のネーミング

# 変数・関数のネーミング

今更ですが変数・関数のネーミングについてリーダブルコードを元にまとめました。
上から順番に重要だと感じている順です。

## リーダブルコード 4 章

### 一貫性

「同じデータ」は同じ変数名にしましょう。
(プロジェクト単位で良いです)

“`php
// a.php
$studentname = ‘yamada’;
// b.php
$username = ‘tanaka’;
“`

↓↓↓

“`php
// a.php
$studentname = ‘yamada’;
// b.php
$studentname = ‘tanaka’;
“`

## リーダブルコード 8 章

### 説明変数

「処理」(の結果)を説明する変数

“`php
if (substr($str, 0, strcspn($str,'(‘)) === ‘root’) {… }

// ↓↓↓

$username = substr($str, 0, strcspn($str,'(‘))
if ($username === ‘root’) {… }

元記事を表示

PHP 関数の戻り値とは?

#はじめに
これは初心者エンジニアがフルスタックエンジニアを目指す備忘録である:point_up:

#目次
⑴ 戻り値とは
⑵ 戻り値がない場合
⑶ 戻り値がある場合と戻り値がない場合の違い
#⑴戻り値とは

前回投稿した sum関数を使って説明していきたいと思う。
コードは以下になる。

“`

“`
今回で言うと戻り値と言うのは

“`
return $result;
“`
の部分になる。

これは return のあとに書かれた$resultが、関数が実行された結果として出力している意味となる。

つまりこの return のあとに書かれた

元記事を表示

APIを使用して検索した首都の天気を表示させる

#はじめに
今回この記事を書く背景として、工場勤務からit企業へ転職し普段の業務でAPIを使用するので、自分が勉強した内容のアウトプットとなります。
ちなみに、転職して4ヶ月目になりますが、まだポンコツなのでこれからも記事を量産していくので、良かったらご指摘等あればご教示お願いします。

#環境
ローカルサーバー:MAMP
OS:Mac
エディタ:VScode

#APIとは
Application Programming Interface(アプリケーションプログラミングインタフェース)。
公開しているソフトウェアを他からをもってきてガッチャンこするイメージ。
外部のソフトウェアを使用する事により、効率的に開発が行えます。

#今回のお天気APIを使用する手順
①APIを公開しているサイト(今回は下記URL)に登録。
https://openweathermap.org/

②ヘッダーにある「API」から「Current Weather Data」の「Subscribe」から無料枠を選んで、「APIkeys」からAPIkeyを発行する。

—ココからはエディタで作業します-

元記事を表示

PHPでデータサイズを単位付きに変換する(KB・MBなど)

“`php
function byte_format($size = 0, $units=array(‘byte’,’KB’,’MB’,’GB’,’TB’)) {
for ($i = 0; 1024 < $size; $i++) { $size /= 1024; } return round($size) . ' ' . $units[$i]; } ``` これでどうでしょう?

元記事を表示

PHP 関数とは?一緒にやってみましょう!!

#最初に
これは初心者からフルスタックエンジニアを目指す男の備忘録である:point_up:

#目次
⑴ 関数とは?
⑵ 関数で覚えておきたい3つのこと
⑶ ユーザ定義関数の基本的な書き方
⑷ 実際に関数を実行

##⑴ 関数とは?

あるデータが返される(IN):point_left:
それに応じて
あるデータを返す(OUT)機能のこと:point_right:

2つに分けることができる
▶︎ 内部(ビルトイン)関数
 phpにデフォルトで用意されている関数。

▶︎ ユーザ定義関数
 独自に作成した関数

実際に使っていくことになるのは「ユーザ定義関数」になるかと思います。

##⑵ 関数で覚えておきたい3つのこと

▶︎ 引数
 関数に渡されるデータのこと

▶︎ 仮引数
 関数に渡す際に変数のような箱を設置してあげるデータのこと

▶︎ 返り値(戻り値)
 関数から返ってくるデータのこと

##⑶ ユーザ定義関数の基本的な書き方

“`
▶︎ 関数を定義
 function 関数名(引数) {
return 返り値;

“`
↑ だけでは定義しただけな

元記事を表示

CarbonとCarbonImmutableのsetTestNowは別

テストのときに便利な`setTestNow()`ですが、`Carbon::setTestNow()`と`CarbonImmutable::setTestNow()`はそれぞれ効果が独立しています。

別の時刻に設定したいことはないと思うのですが、そういうものなようです。
`CarbonImmutable`にリファクタしたときにテストを直し忘れたのでメモ。

元記事を表示

LaravelのGateでロール毎に権限を分ける

# 今回設定するrole
今回はレベル0が管理者でなんでも出来るユーザー。あとは1-4まで分けようと思います。
調査の段階なので、管理者と一般ユーザーとしてレベル4が分かれているのを確認できれば良しとします。
ちなみにプロジェクト名はappとしています。各ファイルのパスの最初に出てくるところがプロジェクトの名前になってますね。

# 開発環境
Laradockです。
PHP 7.4, MySQL 8.0, Laravel 6 で実行
構築は以下の手順で実施。
バージョンはそれぞれ自分が使いたい環境に合わせる。
https://qiita.com/ryuseino/items/e0e3a77245635b7cc101

# カラム追加用のマイグレーションファイルを作成
今回はユーザーテーブルにroleを追加して、それを使ってアクセス出来るページを制御してみます。
まずはファイルを作成。

“`
php artisan make:migration add_column_role_users_table –table=users
“`

# 出来たファイル編集
“`php:app

元記事を表示

Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する(4.PDO使用)

#はじめに
[Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する
(3. LoggingとController)](https://qiita.com/erik_t/items/308091f436e74e2a232e)の続きです。

#前提
下記記事で構築した環境を前提とします。

– Windows10にVagrantをを入れてCentOS7をインストールしよう([1](https://qiita.com/erik_t/items/d7f7abbf7deafa4c6fe4)、[2](https://qiita.com/erik_t/items/909efb63fd389f486ec3)、[3](https://qiita.com/erik_t/items/2e3c43cfe8731621b82d)、[4](https://qiita.com/erik_t/items/8d006b599815c8fbf38b)、[5](https://qiita.com/erik_t/items/9fbe7b5630b1f62893a1)、[6](ht

元記事を表示

隣接都道府県・隣接県を配列で(都道府県コード準拠)

[都道府県コード(PrefCode)](https://nlftp.mlit.go.jp/ksj/gml/codelist/PrefCd.html)に則り隣接県を示した配列。

## 地続き
“`
$AdjacentPrefectures = [
1 => [],
2 => [3, 5,],
3 => [2, 4, 5,],
4 => [3, 5, 6, 7,],
5 => [2, 3, 4, 6,],
6 => [4, 5, 7, 15,],
7 => [4, 6, 8, 9, 10, 15,],
8 => [7, 9, 10, 11,],
9 => [7, 8, 10, 11,],
10 => [8, 9, 11, 15, 20,],
11 => [8, 9, 10, 12, 13, 19, 20],
12 => [11, 13,],
13 => [11, 12, 14, 19],
14 => [13, 19, 22],
15 => [6, 7, 10, 16,

元記事を表示

Laravel ログイン時に処理を加える。

Laravel 5.5
PHP 7

ログインと同時に処理を行いたいと思い、
調べたのでここに記したいと思います。

vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.phpに
ログイン処理のリダイレクト直前で実行される authenticated() メソッドが書かれていますが、
何も設定されていません。

“`vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/

protected function authenticated(Request $request, $user)
{
//
}
“`

これ

元記事を表示

OTHERカテゴリの最新記事