GitHubでcloneしたLaravelプロジェクトをDockerを使ってローカル環境構築するまでの手順
#はじめに
GitHubでcloneしたLaravelプロジェクトをDockerで環境構築したい人に向けて簡潔に手順を解説します
5分程度で終わります
#1.リモートリポジトリをローカルにcloneしてbuildする
“`
#GitHubからcloneする
$ git clone {リポジトリURL(https://〜.git}
# イメージを作成
$ docker-compose build
#cloneしたディレクトリに移動してbuild
$ docker-compose up -d
“`
#2.パッケージのインストール
・Dockerコンテナ内に入って以下のコードを実行
“`
$ docker-compose exec {サービス名} bash
$ composer install
“`
#3.APP_KEYの作成
“`
$ chmod 777 -R storage/
$ cp .env.example .env
$ php artisan key:generate
“`
#4.localhostでウェルカムページを確認
[localhost](localho
# はじめに
以前、Laravel で作成した Web アプリケーションに favicon を追加する方法を Laravel 公式ドキュメントから参照しようとしましたが、記載がなく調べました。その備忘録としてまとめさせていただきます。
# 環境
OS: Ubuntu-20.04 (Windows 10 の WSL2 上に設置)
PHP: 8.0.10
Laravel: 8.61.0
# 事前準備
検証のために、favicon を事前に2つ作成しておきます。favicon の作成自体はフリーのサイトを用いて、PNG や JPEG を ICO 形式に変換することで可能です。
今回私は Favicon ジェネレーター様を用いました。
https://favicon-generator.mintsu-dev.com/
また、変換対象の画像としては、いらすとや様の地球儀とノートパソコンの画像を用いました。
地球儀の画像
https://www.irasutoya.com/2013/02/blog-post_3995.html
ノートパソコンの画像
https://www.irasuto
[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
今回はblastengineを使ってPHPでメール送信を行うまでの流れを解説します。
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/b07d7d9d-6150-d5f9-1bb7-b13846c8ddfc.jpeg)
## 送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
“`
txt @ v=spf1 includ
##はじめに
今回の内容は
PHPで簡単なレビューサイト作成する際に星評価機能を実装するために
jQueryのプラグインを使用した際に表示画面と編集、投稿画面の時に苦労したので
後で見返せるように記述していきたいと思います。
初めて投稿するので至らないところがあると思いますがよろしくお願いします。
##表示画面
一覧画面などでforeach文を使い各評価毎に表示する方法
“`PHP:PHP
「PHPフレームワークLaravel入門 第2版」のユニットテストをLaravel 8で行う
##はじめに
Lravel 8になり、「PHPフレームワークLaravel入門 第2版」(いわゆる青本)のユニットテストの解説部分のコードが大幅に変更されました。
そこで、本の内容に沿いながら、Laravel 8でのユニットテストの記述方法を紹介したいと思います。
##テスト用データベースの準備
touchコマンドやDB Browserを利用して、databaseフォルダ内にdatabase_test.sqliteを作成します。
#####リスト7-36
変更はありません。
プロジェクトフォルダ内のphpunit.xmlを開き、``タグ内に以下を追記します。
“`xml:phpunit.xml
“`
##ダミーレコードの用意
###Userファクトリ
#####リスト7-37
デフォルトで用意されているdatabase\factories\UserFactory.phpの内容がクラスベースになっています。
UserFactory.php
#1.ログフォルダを作成する
C:\xampp\php\logs\配下に”php_error.log”を作成します。
#2.php.iniファイルを開く
C:\xampp\php\ 配下にあるphp.iniファイルを開きます。
#3.以下の設定を変更する。
**・log_errors=On**
→もしOffの設定がされている場合、Onにします。
**・error_log = php_errors.log**
→php_error.logのコメントがされている場合コメントを外します。
**・タイムゾーンを東京にする**
;date.timezone=Europe/Berlin
date.timezone=Asia/Tokyo
→ログに時刻を表示する場合、上記の設定にします。
#4.xamppを再起動する。
xamppよりapacheを再起動します。
—
#テストプログラムで確認する。
以下のtest.phpをC:\xampp\htdocs配下に作成します。
そしてhttp://localhost/test.php にアクセスします。
~~~php
[test.ph
# はじめに
Laravel8でLINEログインの実装を行ったので備忘録として残しておきます。
# 環境
PHP 7.4.27
Laravel 8.78.1
#事前準備
LINEログインの機能を使用するには[LINE Developersコンソール](https://developers.line.biz/console/)でプロバイダー及びLINEログインのチャネルを作成しておく必要があります。
下記のドキュメントを参考に作成していきますが詳細は割愛します。
https://developers.line.biz/ja/docs/line-login/getting-started/
チャネルを作成することでチャネルID、チャネルシークレットを取得できます。
コールバックURLも忘れずに設定しておきましょう。
#実装
LINEログインの実装部分に焦点を当てているためLaravelプロジェクトの作成や通常のログインなどの認証関連のパッケージの導入は省略しています。
### Laravel Socialiteをインストール
今回はLaravelの公式パッケージであるLara
#本記事の概要
本記事は筆者の備忘録的な位置付けで作成したものとなっております。
私でもわかるよう丁寧に(独特な)表現になっておりますことご了承ください。
また、以下のサイトで気軽に関数を試すこともできますので、ぜひ試しながら遊んでみてください。
https://paiza.io/projects/mL8PaRyCwNERG3TGBOTwAQ
#phpとは
html,cssなどで作成する静的webページと異なり、`動的なwebページを作成する`ことができる。
動的なWebページとはアクセスしたタイミングや状況によって表示内容が変わるページ。
JavaScriptがクライアント側の処理をするのと異なり、webサーバー側の処理をすることができる。
#ビルトイン関数とは
phpに用意されている関数。
これとは他に、自身で定義することができるユーザー定義関数がある。
# 公式サイト
php.netで確認できる。
英語で出てくるので、調べる際は`文字列 関数 site:php.net`と調べると日本語で出てくるのでおすすめ。
#関数
|目的|関数|注意点|
|—|—|—|
|
後継のPHPSpreadsheetの登場により、すでにメンテナンス対象外で、アーカイブされているPHPExcel。
ですが、PHPの動作環境上やむを得ず使用することになり、試しに動かしてみたので、覚え書きしておきます。
## 環境
* OS: Amazon Linux2
* PHP: 5.4.16
→ 本記事では、EC2インスタンスは準備済を想定。PHPのインストールから行います
## 事前準備
EC2インスタンスにSSH接続して、以下を実行。
### PHP5系のインストール
[Remi’s RPM repository – Configuration wizard | rpms.remirepo.net](https://rpms.remirepo.net/wizard/)
にアクセスして、以下の通り設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/9b928c90-5fea-0fe4-da6c-9a4f33325aa1.png)
PHPのバー
##初めに
作成中のポートフォリオでPHPのバージョンを確認したいと思い、`php -v`をターミナルで叩いたところ、`-bash: php: command not found`と表示されてバージョン確認できなかったので、その解決方法についてご紹介していきます。
##エラー原因
“`
アプリディレクトリ $ php -v
-bash: php: command not found
“`
`-bash: php: command not found`で「そんなコマンド無いよ!」と指摘された時は、パスが通ってないことが原因です。
なので、`.bash_profile`ファイルにパスを通す設定をしてあげることで解決できます!
##1.パスを通す
###`.bash_profile`の確認
先ずそもそも自身のホームディレクトリに`.bash_profile`が存在しているのか確認してみます。
“`
アプリディレクトリ $ cd #ホームディレクトリに戻る
ホームディレクトリ $ ls #ホームディレクトリ下に配置されているファイルを確認
Applications OneD
“`php:test.php
“`
説明
①preg_match — 正規表現によるマッチングを行う
https://www.php.net/manual/ja/function.preg-match.php
②/\A ←ここまでの意味・・・文字列の先頭を意味します。
③\d{3} ←これの意味・・・「d」が数字指定、{3}数。数字で3文字入力しなさい。
④[-] ←これの意味・・・郵便番号のハイフンです。ハイフン無し入力をユーザーにした正規表現を記述したい場合はこれは不要です。
⑤\d{4} ←これの意味・・・「d」が数字指定、{4}数。数字で4文字入力しなさい。
⑥\z/ ←これの意味・・・文字列の末尾を意味します。
“`php:test.php
PHPでのExcel操作に関し、PHPExcelとPhpSpreadsheetを比較したので覚え書き。
## 概要
### 共通点
– いずれも[PHPOffice](https://github.com/PHPOffice)シリーズのひとつ
– スプレッドシートファイルフォーマットの読み込み/書き込みができるライブラリ
### [PHPExcel](https://github.com/PHPOffice/PHPExcel)
– 2015年に最終バージョン1.8.1をリリースした後、2017年非推奨 → 2019年にアーカイブされた
### [PhpSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet)
– PHPExcelの後継で、互換性はなく、品質がよくなっている
– 名前にSpreadsheetとあるが、Excelファイルの操作も可能
## 比較
表でその違いを比較してみました。
| | PHPExcel | PhpSpreadsheet |
| —- | —- | —- |
|
使い分ける際の判断基準を簡潔に。
①値を変えたらだめなもの
②値を変えてもOKなもの
クラス(class)とは、言わば『設計書』。
繰り返し使う処理をまとめたものです。
内部的に使う処理は「private」にして値を固定にして、外部からは変更できないようにします。
(店で売っている商品の価格を消費者は自由に変えられない。)
外部的に変更したい処理は「public」にして値を変動できるようにして、外部から変更できるようにします。
(寿司の価格はprivateだけど、「刺身醤油とわさび」は自由に持って帰ってイイよ。個数は消費者に委ねるよ。って状態にする)
Publicとは?
クラス内外問わず、どこからでもアクセス可能
purotectedとは?
そのクラスと子クラス(継承先のクラス)からのみアクセス可能
privateとは?
そのクラス内でのみアクセス可能
WSL2(Ubuntu)を使用して、Windows上にLinuxの仮想環境を構築し、PHP + Apacheの開発環境を整えます。
本稿は2部構成となっております。WSL2・Ubuntuのインストールは第1部で解説していますので、未読の方はこちらからお読みください。
https://qiita.com/Michi1090/items/2ff58970fd95c0b366c7
# VScodeのインストール
##拡張機能のインストール
まず、**Windows側**でVScodeを開きます。
Marketplaceで`Remoto Development`と検索し、該当の拡張機能をインストールします。これは簡単に言うと、WSL上でVScodeを使用できるようにするための機能です。
![2022-01-18 (14).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2485055/d13f74f1-c342-4098-7a0e-174b10729541.png)
インストールできたら、VScodeを閉
# はじめに
この記事ではVirtualBoxを使用して、LAMP環境(Linux,Apache,PHP,MySql)を構築します。
VirtualBoxを使用した、CentOSの環境構築については以下の記事を参考にしてください。
[VirtualBox(Windows10)にCentOS7環境を構築し、TeraTermでssh接続をする](https://qiita.com/fumo_fumo/items/c079d688e33a9752398c)
# 環境
– VirtualBox:6.0
– ホストOS:Windows10
– ゲストOS:CentOS 7.9
– Apache:2.4.6
– PHP:8.0.15
– Mysql:8.0.27
# 1.初期設定
全パッケージのバージョンを最新のものに更新する。
“`
# yum -y update
“`
SELinuxを無効にし、設定を反映させるために再起動する。
“`
# vi /etc/selinux/config
SELINUX=disabled
# reboot
“`
# 2.Apacheのインストー
## この記事の概要
IntelliJ IDEAでPHP x Dockerプロジェクトを作成した時のメモ。
## この記事で触れないこと
それぞれについての詳細。(IntelliJ IDEA、PHP、Docker)
## 環境
– Windows 10 Pro 21H1
– Docker Desktop 4.4.3
– IntelliJ IDEA 2021.3.1
– PHP 8.0
## 環境構築
### 1. IntelliJ IDEAをインストール
[ダウンロード IntelliJ IDEA](https://www.jetbrains.com/ja-jp/idea/download/)
**Ultimate版**をインストールする。
後述のPHPプラグインはUltimate版しかサポートしておらず、Community版では使用できないらしい。
:::note warn
30日間の無料体験か、購入しての利用になる。
:::
### 2. プラグインをインストール
PHP x Dockerプロジェクトに必要なプラグインをインストールする。
– PHP
–
## どういうことか
laravelのリレーション、migrateファイルに書くだけならそこまで難しいことはないけど、
実際にmodelやbladeでhasOneとか使ってそれらしく書こうとすると
結構ごちゃごちゃになりがち(私だけかもしれないが)
Laravelのドキュメントは丁寧で分かりやすいが
実際のDBが載せられていないからちょっとイメージしづらくて、
「あれこれどっち何を書いたら?」ってなってしまったので、
実際の実装例を載せながら、備忘録として残しておく。
## 環境
laravel 8.17.0
mysql
## 前提
以下のような2つのテーブルがある。
**アイドル名テーブル**
アイドルの名前と、そのイメージ写真のファイル名が格納されたテーブル。
本来はいろいろな情報が格納されているがここは一旦分かりやすさ重視で簡略化。
| id | name | age | img_path |
|:———–:|————|————|————|
| 1| アイドルA| 19| a.png|
| 2| アイ