- 1. 【PHP】晩御飯ルーレットWebアプリケーション開発
- 2. ハマりを回避してDockerでLaravel6系環境構築
- 3. 【PHPUnit】Laravelでのテストデータ作成のTips(seeder、factory、faker)
- 4. PhpStormで自分が入れているプラグインをまとめる
- 5. for文使って配列をファイルに保存
- 6. CentOS 8にPHP 7.4をRemi Repositoryからインストールする
- 7. CentOS 8にPHP 7.4を標準リポジトリからインストールする
- 8. laravel プロフィール編集機能 ユーザー名・メールアドレス、パスワードの変更(更新)
- 9. laravel エラー解決集
- 10. Apacheインストールチートシート for Windows
- 11. 【ポエム】Android6.0のタブレットでSlackが見たい
- 12. composer installでprivateリポジトリのソースコードを取得できない
- 13. PHP 正規表現を用いて文字列のマッチを判定する
- 14. vscodeでPHP開発環境作ってみた(日本語化・Git・PHP Intelephense)
- 15. PHPで /tmp のファイルが見つからない
- 16. Laravel6系をPHP8で動かす
- 17. php artisan make:migration create_blogs_table 実行時にPHPのバージョン違いによるエラーが発生する
- 18. 備忘録~今日学んだ配列関係の変数まとめ~
- 19. PHPの=>と->の違い
- 20. PHP + Instagram API で画像取得する
【PHP】晩御飯ルーレットWebアプリケーション開発
PHPを独学で勉強しだして4ヶ月。。
そろそろポートフォリオがてらWebアプリケーションを作成してみようと動き出しました。作っていくのは【**晩御飯ルーレット**】です。
今日の晩御飯を決めてくれるありがちなやつです笑(発想力が欲しいです。。)# アプリ開発の流れ
今回は**初めてのアプリ開発**なのでしっかり流れに沿ってやっていきたいと思います。
1. 要件定義
1. 設計
1. 制作
1. テスト
1. 公開◇環境
– Mac
– VS Code(エディタ)
– MAMP(ローカル環境)
– Xサーバー## 要件定義
まずはアプリの**要件定義(要望と実現方法を定義)**から始めます。
◇アプリの概要
– 今日の夜ご飯の献立を決めてくれる
– カテゴリごとに絞り込める
– 食材でも絞り込める◇アプリの目的
:::note info
今晩の夜ご飯に悩まないように
ポートフォリオ制作として
:::## 設計
次にアプリを作る上での**フローチャートやアプリの設計、データベース設計**をまとめます。◇アプリの流れ
1. (前準
ハマりを回避してDockerでLaravel6系環境構築
## 執筆の経緯
– [前回の記事](https://qiita.com/2san/items/662a2b90fc8a94fa9a62)が結構見てもらえて、Qiita執筆の味を占めたから。
– 自分がハマりまくったので、これはハマり回避できる環境構築記事を書かねばという使命感を感じたから。## 想定読者
– [前回の記事](https://qiita.com/2san/items/662a2b90fc8a94fa9a62)を理解している方。
– 前回の記事の構成をLaravel用に編集する形で環境構築します。## 今回のゴール
– DockerでLaravelの環境構築を行い、welcomeページを拝む。## 実行環境と筆者のレベル感
### 実行環境
– PC : MacBookAir(M1, 2020)
– OS : macOS Big Sur11.4
– チップ : Apple M1
– メモリ : 16GB
– DockerDesktop : 3.5.2
– Docker : 20.10.7### 筆者のレベル感
– 2021年10月から勤務開始した新米エン
【PHPUnit】Laravelでのテストデータ作成のTips(seeder、factory、faker)
DBが絡むテストを行う際は、テスト用のダミーデータが必要となります。
seeder, factory, fakerの使い方については色んな情報がありますが、実際にテストコードを書いた際に、それぞれをどのように使いわけ、どうやってダミーデータを作成するのか、学びがたくさんあったので記録しておきます。
※テストでデータベースを使う際は、テスト用のデータベースを事前に別途用意しておくこと!!
今回はsqliteのインメモリ機能を使うように設定済みです。
[[Laravel]ユニットテストをする(phpunit設定など)](https://codelikes.com/laravel-tests/#toc9)
## その前に補足。マスターデータとトランザクションデータについて
seeder, factory, fakerの使い分けにも大きく関わるので、先にこれらについて書いておきます。
– マスターデータ
システムの運用上変更が頻繁になく、システムに最初から必要なデータ。
テーブル名の頭に「m_」とつけることがある。
– トランザクショ
PhpStormで自分が入れているプラグインをまとめる
今年から使い始めたInteliJ系のPhpStormです。VS Codeほどではないですが結構プラグインがたくさんあったのでまとめようと思いました。
## プラグインが好き
VS Code出身の自分はプラグインが大好きです。ふと面倒だなぁ〜と感じていたことが解決する快感と生産性が上がっていくのを実感するからです。
そんな自分がVS CodeからPhpStormに乗り換えたので普段使っているプラグインを紹介がてら載せておこうと思います。## プラグイン一覧
### ネタ系
ネタの心を忘れてしまったら終わりだと思っています。
#### [Nyan Progress Bar](https://plugins.jetbrains.com/plugin/8575-nyan-progress-bar)
https://plugins.jetbrains.com/plugin/8575-nyan-progress-barPhpStormに使われるプログレスバーをNyanCatに置き換えます。かわいい。
#### [Nyan Tray](https://plugins.jetbr
for文使って配列をファイルに保存
##概要
https://qiita.com/naozoh/items/317c7647bc6eead2233a上記事では複数のテキストフォームの内容をファイルに保存した。
今回は配列データをfor文使ってファイルに保存する。“`php5
CentOS 8にPHP 7.4をRemi Repositoryからインストールする
# What’s?
CentOS 8に標準リポジトリからPHP 7.4をインストールする記事を書いてみたのですが、今度はRemi Repositoryからインストールしてみたいと思います。
https://qiita.com/charon/items/74350fd75c8fa1cf12ac
# 環境
今回の環境は、こちら。CentOS 8.4です。
“`shell
/etc/redhat-release
CentOS Linux release 8.4.2105$ uname -srvmpio
Linux 4.18.0-305.19.1.el8_4.x86_64 #1 SMP Wed Sep 15 15:39:39 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
“`# Remi Repository
https://rpms.remirepo.net/
Remi Repositoryがなんであるかは、こちらを。
https://qiita.com/charon/items/6d34ae798e9b05e8bd0a
利用
CentOS 8にPHP 7.4を標準リポジトリからインストールする
# What’s?
CentOS 8の標準リポジトリで、PHP 7.4がインストールできそうだったので試してみようかと。
# 環境
今回の環境は、CentOS 8.4です。
“`shell
$ cat /etc/redhat-release
CentOS Linux release 8.4.2105$ uname -srvmpio
Linux 4.18.0-305.25.1.el8_4.x86_64 #1 SMP Wed Nov 3 10:29:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
“`# CentOSとPHP
CentOSでPHPをインストールするといえば、Remi Repositoryを使うような気がします。
https://rpms.remirepo.net/
Remi Repositoryを使うと、PHP 7.4までではなく、現時点でPHP 8.0までインストール可能なのですが、今回はCentOSの標準リポジトリを使うことにします。
Remi Repositoryを使用してインストールする場合は、こち
laravel プロフィール編集機能 ユーザー名・メールアドレス、パスワードの変更(更新)
#やりたいこと
プロフィールの編集(ユーザーのユーザー名・メールアドレス、パスワードの変更)
#準備
まずが【プロフィール編集画面】に飛べるように設定
“`php
プロフィール編集
“`“`web.php
Route::group([‘middleware’ => ‘auth’], function () {//プロフィール編集画面表示
Route::get(‘/profile’, ‘UserController@show’)->name(‘profile’);
//プロフィール編集
Route::put(‘/profile’, ‘UserController@profileUpdate’)->name(‘profile_edit’);
//パスワード編集
Route::put(‘/password_change’, ‘UserController@passwordUpdate’)->
laravel エラー解決集
MethodNotAllowedHttpException
→POST、GETなどの確認
Apacheインストールチートシート for Windows
## こちらは、zennに公開したもののコピーとなります。
[Apacheインストールチートシート for Windows](https://zenn.dev/sakots/articles/30c5544b22e6b6)
## XAMPPのアップデートがクソめんどい
いやそもそもコンパネのアップデートなのかphpのアップデートなのか。
phpのアップデートだけだったらphpだけ入れ替えれば済むんですよね。
んでもってXAMPPは差分の上書きインストールができないので、一旦アンインストールしてから再インストールすることになるが、これがまた時間かかる。
あとphpのバージョンも7.3系、7.4系、8.0系、そしてきたるべき8.1系と複数管理したい。
よって、俺はapacheとphpとDBを別々にインストールすることにした。ん、perl? 知らない子ですね…## 思考
### XAMPPのapacheは便利
まず素のapacheでphpを動くようにだけして、比較してみた。
![phpinfo_su.png](https://qiita-image-store.s3.ap-n
【ポエム】Android6.0のタブレットでSlackが見たい
この記事は、誰にも役にたたない内容なのでポエムです。
## 0.初めに
私は、以下の理由で未だにAndroid6.0の8インチタブレットを使ってます。
* そもそも貧乏
* 最近、8インチの良いAndroidタブレットが発売されない
* 電車の中でSlackの特定チャンネルの投稿が見たいし、投稿もしたいSlackはAndroidアプリもあるので、それで見ていたのですが、先月(2021年10月)からアプリが利用できなくなりました。
どうも、Slackのサポート期間を過ぎたため、みたいでした。
[オペレーティングシステム、アプリのバージョン、ブラウザに対する Slack のサポートライフサイクル | Slack](https://slack.com/intl/ja-jp/help/articles/1500001836081-%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%80%81%E3%82%A2%
composer installでprivateリポジトリのソースコードを取得できない
ただのミスなのですが、備忘も兼ねて記事化
## 先にまとめ
– githubにSSHキーを登録してなかったことが原因
– またはhttpsのアドレスを指定すれば取得できる## どういうエラーか
“`
[RuntimeException]
Failed to execute git clone –mirror — ‘https://ghp_XXXXXX:***@github.com/sample/sample.git’ ‘/Users/user/.composer/cache/vcs/git-github.com-sample-sample.git/’Cloning into bare repository ‘/Users/user/.composer/cache/vcs/git-github.com-sample-sample.git’…
remote: Repository not found.
fatal: repository ‘https://github.com/sample/sample.git/’ not found
“`PH
PHP 正規表現を用いて文字列のマッチを判定する
# 目的
– PHPにて正規表現を用いた文字列評価の方法をまとめる
# 情報
– 下記のサービスを用いて動作を確認した。
– [https://paiza.io/ja](https://paiza.io/ja)# 方法
– `preg_match()`メソッドを使用する。
– 下記のように記載する。
– 例
– `preg_match(‘正規表現’, ‘評価する文字列’)`
– 正規表現にマッチしていた場合は1が、マッチしていなかった場合0が返される。
– 具体例
– 下記を実行した時は1が返される。“`php
vscodeでPHP開発環境作ってみた(日本語化・Git・PHP Intelephense)
久しぶりにPHP案件に復帰するので、せっかくなら新しいエディタで始めてみようと思い、vscodeでPHP開発環境を準備してみた。
## vscodeのインストール
https://code.visualstudio.com/
ここからダウンロード。ダウンロード完了したらファイルを開き、成り行きでインストール。## 日本語化
へぼへぼエンジニアなので、英語が怖い。日本語化する。
### 日本語拡張機能の追加
左のメニューの一番下をクリックし、拡張機能の画面を開く。
「japanese」まで入力すると、日本語の拡張機能が一番上に表示されるので、Installをクリックする。
![日本語インストール.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109315/35cc0983-1e06-16db-c7dd-64c7c106f58a.png)
### 言語の切り替え
インストールが完了しただけだとまだ英語のままだ。
`ctrl`+`sift`+`P`を押すと上に入力欄が出るので、「display」と入力す
PHPで /tmp のファイルが見つからない
PHPでデプロイ時にも削除されないように `/tmp` にキャッシュファイルを作成したが、ファイルが存在するのに`file_exists()` が `false` になったり、PHPからプロセス起動しての `ls` コマンド実行でも “No such file or directory” になり、ドハマリした。
ファイルの存在はもちろんファイル権限や状態など確認しまくっても、既存のファイルとPHP内で取得してきたファイルに全く違いがない。謎すぎた。PHPのプロセスごとにバーチャル `/tmp` が使用されているのが原因だった。。。
https://stackoverflow.com/questions/21615786/content-of-tmp-is-not-visible-from-php-fpm-when-using-systemd
知っていればなんてこと無かったことだが、数時間を無駄にしてしまった。
追記:
そもそも、`/tmp`ではなく、キャッシュならば`/var/cache`を使用すべきか。
Linuxディストリビューションによっても異なるが、例えばCentOS
Laravel6系をPHP8で動かす
dockerで動かした時、STATUSがrestartingで正常に起動しない。
“`
% docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
〜
local-laravelproject-php-1 “docker-php-entrypoi…” laravelproject-php restarting
〜
“`logsで原因を探る。
“`
% docker-compose logs
〜
local-laravelproject-php-1 | Installing dependencies from lock file (including require-dev)
local-laravelproject-php-1
php artisan make:migration create_blogs_table 実行時にPHPのバージョン違いによるエラーが発生する
#目次
[概要](#概要)
[実施環境](#実施環境)
[問題発生まで](#問題発生まで)
[問題](#問題)
[結論](#結論)
[解決するまでにやったこと](#解決するまでにやったこと)#概要
こちらの動画を参考にしてLaravelアプリを作成する過程で以下のエラーが発生したので解決するまでにしたことを記しました。
#実施環境
#####ハードウェア環境
| 項目 | 情報 |
|:-:|:-:|
| OS | MacOS Big Sur (11.5.2) |
| ハードウェア | MacBook Pro (Retina, 13-inch, Late 2013) |
| プロセッサ | 2.4 GHz デュアルコアIntel Core i5 |
| メモリ | 4 GB 1600 MHz DDR3 |
#####ソフトウェア環境
| 項目 | 備考 |
|:-:|:-:|
|
備忘録~今日学んだ配列関係の変数まとめ~
“`
array_slice — 配列の一部を切り取る。
array_slice(array $array,int $offset,?int $length = null)
$input = array(“a”, “b”, “c”, “d”, “e”);$output = array_slice($input, 2); // “c”, “d”, “e” を返す。
$output = array_slice($input, -2, 1); // “d” を返す。
$output = array_slice($input, 1,3); // “b”, “c”, “d” を返す。
$output = array_slice($input, 0, 3); // “a”, “b”, “c” を返す。
“`“`
array_chunk - 配列を分割する。
PHPの=>と->の違い
PHPに最近入門したのですが、JSを既に知っているとPHPの`=>`と`->`に大変混乱させられます。アロー関数では全くないんですよね。。(Javaでも=>は同じような意味なのに…)
###`=>`は配列にアクセスするときに使う
“`index.php
$arrSamp = array(
0 => ‘Ringo’,
1 => ‘Mikan’,
2 => ‘Ichigo’,
3 => ‘Kiwi’
);print_r($arrSamp);
//表示結果
//Array
//(
// [0] => Ringo
// [1] => Mikan
// [2] => Ichigo
// [3] => Kiwi
//)//Json Objectにも
echo json_encode([“error” => [“type” => “server_error”, “message”]]);//結果
//{“error”:{“type”:”server_error”,”0″:”message”}}
“`###`->`は
PHP + Instagram API で画像取得する
自分のサイトにInstagramの最新の画像を表示するために
phpでInstagram APIを叩いて画像URLを取得できるようにする。公式のヘルプ
https://developers.facebook.com/docs/instagram# 準備
1. Facebookアプリを作成
1. https://developers.facebook.com > アプリを作成 > アプリタイプ: なし
1. 表示名とメールアドレス設定 ![スクリーンショット 2021-11-06 21.25.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6568/c457d367-300f-a1b9-33b0-ddd83597a388.png)
1. アプリダッシュボード画面が表示される
1. 設定 > ベーシック > プラットフォームを追加 > `Website` を選択
1. サイトURLを入力![スクリーンショット 2021-11-06 21.35.28.png