- 1. 手順
- 2. 1:dockerによる開発環境構築
- 2.1. 2:ファイルディレクトリの準備
- 2.1.1. PHPのオブジェクトの代入には気をつける
- 2.1.2. [Windows]ロリポップにssh接続してphpファイルを実行するまで
- 2.1.3. 新・FizzBuzz
- 2.1.4. 【Docker】php.iniはどこにある?
- 2.1.5. macOS Montereyで”zsh: command not found: php”が出る際の対応方法
- 2.1.6. Dockerを用いてNginxをWebサーバーとし、PHP(Laravel)、DBはPostgresSQLの開発環境を作成する。
- 2.1.7. Laravel6で自動処理(タスクスケジュール)を実装する
- 2.1.8. WindowsでマルチPHPをもっと楽に実現する
- 2.1.9. 【PHP】xDebug.soの読み込みエラーが発生した時の対処法
- 2.1.10. 未経験がLaravelでポートフォリオを作成
- 2.1.11. Elasticsearch 6ではindex定義に’_type’が必要
- 2.1.12. Query BuilderとEloquentどっちがどれくらいなぜ速いのか証明しようず!
- 2.1.13. 【個人開発】都道府県同士を対決させるサイトを作った
- 2.1.14. CentOS+DockerComposeを用いたPHPの環境構築
- 2.1.15. PHPでSSL証明書期限を監視する処理を作ってみた
- 2.1. 2:ファイルディレクトリの準備
【備忘録】【Laravel8】フォームに入力 〜 Requestで受け取って表示させるまで
Laravelを1から学習しており、自分のための備忘録です。
間違っている点がありましたらご指摘いただけますと幸いです。
※掲示板を作っていると仮定して記事を投稿しています。# 入力フォームを作る
まず、入力フォームを作ってみます。
/bbs でアクセスできるように、routes/web.phpの一番下に下記を追記します。“`php:routes/web.php
Route::get(‘/bbs’, ‘BbsController@index’);
“`/bbs にアクセスが来た場合にBbsControllerのindex関数を参照します。
次に、その参照先である、BbsControllerを作っていきます。
app/Http/Controllers/BbsController.phpというファイルを作成してください。中身は以下のようにします。
“`BbsController.php
【備忘録】foreachの基本的な使い方
Laravelを1から勉強しており、foreachの基本的な使い方を忘れないために備忘録です。
間違っていることがありましたらご指摘ください。
画像のような本を管理するアプリに例えて考えていきます。![スクリーンショット 2021-11-21 23.07.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/985164/f37b2f60-de36-8d97-1289-69b4545337c8.png)
### booksテーブルには以下のようなカラムが作成されていることとします。
“`php:booksテーブルにあるカラムの一部抜粋
id
book_name
created_at
“`### bookコントローラーには以下のようにindex関数が定義されていることとします。
“`php:BookController
class BookController extends Controller
{
public function index()
{
// DBより
【備忘録】【Laravel8】controllerからbladeに変数を渡して表示させる
Controllerのファンクションで定義した変数を、bladeに渡して表示させる方法を
自分用に残しておきます。# Controller
“`php:
public function index ()
{
$test1 = “テスト”;
$sample = “サンプル”;return view(‘index’, [
‘test_blade’ => $test,
‘sample_blade’ => $sample,
]);
}
“`return viewでbladeに変数を渡します。
第二引数でbladeに渡す変数を指定しています(左辺と右辺がある)。### 第二引数の左辺
bladeに渡す変数の部分です。
上記の例ではtest_bladeとsample_bladeが当てはまります。### 第二引数の右辺
関数で定義した変数です。上記の例では$testと$sampleが当てはまります。
# Blade
{{ $変数名 }}と記述します。
この変数名の部分に、controllerで渡した左
LaravelのmigrateでSQLSTATE[HY000]エラーが発生
##はじめに
「php artisan migrate:refresh」を実行するとエラーが発生しました。作成した時からMigrationファイルはいじっていないのですが、、
(エラー文は長いので略しました。)“`php:migrationファイル
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;class Projects extends Migration
{
public function up()
{
Schema::create(‘Projects’, function (Blueprint $table) {
$table->id();
$table->char(‘name’,20);
$table->timestamps();
});
dockerでのphp開発環境を構築する
自宅でもphpについて学びたいと思い、ローカルで開発環境を構築しようと思いました。
MAMPでもいいと思いましたが、せっかくなのでdockerで作ってみたいと思います。
開発中に色々詰まってしまったので備忘録がてらの記述です。手順
1:dockerによる開発環境構築
2:ファイルディレクトリの準備
3:各ファイルの作成
4:コンテナ起動
5:サイトにアクセス1:dockerによる開発環境構築
Dockerを使用するには「docker for mac」が必要なんですが、導入方法などはすでにQiitaなどで分かりやすく書かれてる方々がたくさんいますので、今回は割愛させていただきます。
今回はDockerで以下のコンテナを使います。
・nginx
・PHP
・MySQL
・PHPMyAdmin使用するコンテナが複数あるため今回は「docker compose」を使用していきたいと思います。
2:ファイルディレクトリの準備
まずはDockerを起動するための場所を作成します。
ファイル構造は次のようにします。“`
ph
PHPのオブジェクトの代入には気をつける
# はじめに
PHPのobjectについての忘備録。# これはだめ
“`PHP
$a = new stdClass();
$a->name = ‘Yamada’;$b = $a;
var_dump($a === $b); // bool(true)$b->name = ‘Sato’;
var_dump($a === $b); // bool(true)var_dump($a->name) // string(4) ‘Sato’
“`# 正しい代入の仕方
“`PHP
$a = new stdClass();
$a->name = ‘Yamada’;$b = clone $a;
var_dump($a === $b); // bool(false) この時点で別のobjectになってる$b->name = ‘Sato’;
var_dump($a->name) // string(6) “Yamada”
var_dump($b->name) // string(4) “Sato”
“`# なんで
objectは参照型なので、同じオブジェクト
[Windows]ロリポップにssh接続してphpファイルを実行するまで
##概要
最近仕事でPHPを触り始め、ようやく理解も始まってきた。
node.js含め、jsばっかり触ってたので、これを気にnodeではさわれなかったレンタルサーバーで遊びたい。
手始めにロリポップで借りてるレンタルサーバーで遊べるか確認することにした。
が、どうもコマンドプロンプトで普通に[ssh]しても接続できない。
ロリポップのssh自体が自己責任やらなんやら、自分の力でやってください。とのことなので、自力で頑張るしかないようだ。##環境
執筆日・2021/11/20
ロリポップ契約:スタンダードプラン
ssh接続:Putty
FFFTP事前使用##準備
1. ロリポップ>ユーザー専用ページ>サーバーの管理・設定>SSH
より、SSH機能をONにしておく。
2. サーバー・アカウント・接続ポート・SSHパスワードが現れるので、メモするかウィンドウ開いておく。
3. SSH接続に、今回はPuttyというやつを使ってみた。インストールする。
* 解説分かりやすかった:https://qiita.com/ponsuke0531/items/43491db4e8e8fed
新・FizzBuzz
##新・FizzBuzz
自分の中で「これは新しいFizzBuzzだ!」と思っただけなので、感じ方に個人差はあると思います。なるほどなっと私は感じたのでこんな書き方もありますよということです。。。
PHP8から導入された[「match式」](https://www.php.net/manual/ja/control-structures.match.php)を使ったFizzBuzzの書き方です。
matchは「値を返せるswitch式」のようなものです。“`FizzBuzz.php
function FizzBuzz (int $min, int $max) {
foreach(range($min, $max) as $value){
$output = match(true){
$value % 15 === 0 => ‘FizzBuzz’,
$value % 5 === 0 => ‘Buzz’,
$value % 3 === 0 => ‘Fizz’,
【Docker】php.iniはどこにある?
PHPの環境設定ファイルであるphp.iniの居場所を見失ったので.
#### コンテナ内にあります
Dockerfileの下のようなところに記載されている
“`:Dockerfile
(例)
COPY php.ini /usr/local/etc/php/
“`###コンテナ内に入って確認
“`
コンテナのnameを確認
$ docker ps
(docker-composeを使っていたら) $ docker-compose ps
“`
コンテナの中に入る“`
$ docker exec -it コンテナname bash
(docker-composeを使っていたら) $ docker-compose exec -it コンテナname bash
“`移動して確認
“`
$ cd /usr/local/etc/php/
$ cat php.ini
“`
macOS Montereyで”zsh: command not found: php”が出る際の対応方法
MacBook Pro M1 Proが手元に届いたので、開発環境を整えてzshでhomebrewインストールも完了。PHP@7.4をインストールしてPATHを通すところでつまづいた。
“`terminal
php -v
“`
をしても“`terminal
zsh: command not found: php
“`が表示されてしまう。
“`terminal
brew list | grep php
“`
では問題なくPHP@7.4が表示されるのでおかしい。結論、リンクが必要だった。
macOS MontereyのPHPインストール手順としては、
“`terminal
brew install php@7.4
“`“`terminal
brew link –overwrite –force php@7.4
“`するとそこに表示される
“`terminal
echo ‘export PATH=”/opt/homebrew/opt/php@7.4/bin:$PATH”‘ >> ~/.zshrc
echo ‘export PATH=”
Dockerを用いてNginxをWebサーバーとし、PHP(Laravel)、DBはPostgresSQLの開発環境を作成する。
#目的#
ローカルでのLaravelの開発環境を作ってみたいので、Dockerを用いてNginxをWebサーバーとし、PHP(Laravel)、DBはPostgresSQLでローカルの開発環境を作成したいと思います。選定理由はそれぞれ以下の通りです。
Docker → ローカルの環境への影響をなるべく少なく開発環境を作りたい、および新しい技術の習得
Nginx → 使用したことがないので、使用してみたい。
PHP → 一般的なWeb用のプログラミング言語だと思うので、使用してみたい。
Laravel → MVCモデルのフレームワークを使用してみたい。
PostgresSQL → 最終的にHerokuへのデプロイを考えており、HerokuにおいてはデフォルトのDBであることと、使用したことがないので使用してみたい。#事前準備#
https://qiita.com/roughstorm/items/6a4fec7c99f7c8dec7a4#参考#
https://www.membersedge.co.jp/blog/laravel-development-environme
Laravel6で自動処理(タスクスケジュール)を実装する
Laravel案件を担当している時に、サーバー側で定期的に自動処理をしてほしいというバッチ処理的な依頼がありました
その時に使ったタスクスケジュールと機能が便利だったので、実装の流れを備忘録として記事にしてみました# 環境
– Laravel 6.20.34
– Ubuntu 20.04.2 LTS(homestead)# どうやって実装するか
cronを簡単に利用することのできるLaravelのタスクスケジュールという機能を使うことで実装が可能です
# この記事で実装するもの
この記事ではLaravelタスクスケジュールの使い方を理解するために、storage配下のlogファイルへ現在日時を5分毎に残す処理を実装してみます
# 仮想環境へログイン
今回はhomesteadでLaravelの環境構築をしているので、仮想環境へログインしておきます
“`
vagrant ssh
“`#crontabへエントリー追加
Laravelではcrontab(crontable)のエントリーがひとつだけで完結します
各タスクのスケジュール設定はLaravelフ
WindowsでマルチPHPをもっと楽に実現する
[windowsでマルチPHPを実現する](https://qiita.com/marveloussound/items/4cccc17edcaad7855940)という記事を見かけたのですが、ジャンクションを使ったほうがもっと楽なのでやり方を紹介します。
シンボリックリンクでもいいんだけど何故か管理者権限が必要だし、今回の用途であればジャンクションで十分です。
なおショートカットでは駄目です。# PHPをインストール
[PHP For Windows](https://windows.php.net/download)から適当にファイルをダウンロードして、適当にディレクトリに展開します。
今回はとりあえず
`C:\xampp\php7.4.26`
`C:\xampp\php8.0.13`
ってかんじに配置しました。なんで`xampp`なのかって?
そりゃ[XAMPP](https://www.apachefriends.org/jp/index.html)を使ってるからに決まってる。# エイリアスを設定
参考記事に合わせて記述すると、こんなかんじになるでしょうか
【PHP】xDebug.soの読み込みエラーが発生した時の対処法
AWSのCloud9でPHPファイルを実行したときにxDebug.soの読み込みエラーが発生した時の対処法。
PHPのバージョンとxdebugが揃っていない場合などに生じるエラー。
## エラー文
“`
Failed loading /xxxxx/xxxxx/xxxxx/xdebug.so:
/xxxxx/xxxxx/xxxxx/xdebug.so: undefined symbol: gc_globals
“`
xxxxxの部分は`xDebug.so`があるパスです。## 解決方法
`xdebug`を削除してインストールし直せばエラーが解決されます。
“`
sudo pecl uninstall xdebug
sudo pecl install xdebug
“`## 参考
https://error-search.com/error-post/detail/168/Failed%2Bloading%2B%252Fusr%252Flib64%252Fphp%252Fmodules%252Fxdebug.so%253A%2B%2B%252Fusr%252
未経験がLaravelでポートフォリオを作成
##はじめに
未経験からエンジニア転職を実現する為、Laravelを使用し
ポートフォリオを作成しましたので復習も含め簡単に紹介をさせていただきます。
間違っている部分が多々あるかと思いますが、温かい目でお願いします?##アプリ概要
備品管理ができるwebアプリケーション「equipsy」– 備品の登録・編集・削除
– 備品情報一覧
– 備品名を入力し検索(部分検索)[![Image from Gyazo](https://i.gyazo.com/77c4e3149dd3a64d162fc920a550af6c.png)](https://gyazo.com/77c4e3149dd3a64d162fc920a550af6c)
##機能一覧
– ユーザー登録・ログイン・ログアウト
– CRUD
– レスポンシブデザイン
– 部分検索
– ページネーション##使用技術
###フロントエンド
– Bootstrap
– HTML
– CSS###バックエンド
– PHP 8.0.10
– Laravel 8.61.0###その他
– PHPMyAdmin
Elasticsearch 6ではindex定義に’_type’が必要
Elasticsearch 7以上の場合はindexのmapping定義の`_types`
# 環境
Docker環境で以下の時
– Elasticsearch 6.8.20
– kibana 6.8.20
– PHP7“`yml:docker-compose.yml
version: ‘3’
services:
# 省略…
es:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.20
environment:
– discovery.type=single-node
– cluster.name=docker-cluster
– bootstrap.memory_lock=true
– “ES_JAVA_OPTS=-Xms1g -Xmx1g”
ulimits:
memlock:
soft: -1
hard: -1
ports:
– “920
Query BuilderとEloquentどっちがどれくらいなぜ速いのか証明しようず!
## はじめに
通勤中駅に向かっていた時の話です。
目の前の男子高校生4人組の内一人が荷物を仲間に預けて、来た道と逆に爆走して僕の隣を風のように駆け抜けていきました。
僕が駅に着いたとき男子高校生は3人組のままで、彼の荷物だけが運ばれていくのでした…はい。プログラムも人も走る速度は大事ですねという話ですw
ちゃんと比較していきますよ〜## 速度比較の為にまずデータを作ろう ☆
※ 今回Laravelは使わずEloquentのみをInstallしています。
postsテーブルに10万件、commentsテーブルに100万件データを突っ込んでいます。
ちなみに使用したDBはMySQLです。“` sql:migration.sql
CREATE DATABASE q_speed_test;CREATE TABLE posts (id INT NOT NULL AUTO_INCREMENT, title VARCHAR(191) DEFAULT NULL, PRIMARY KEY (id));
CREATE TABLE comments (id INT NOT NUL
【個人開発】都道府県同士を対決させるサイトを作った
#【個人開発】都道府県同士を対決させるサイトを作った
はじめまして。@nura0927と申します。
私は旅行が好きで、その影響で地理に興味を持つようになりました。そして今回、「地理バト」というWebサイトを作りました。
http://chiribt.com/サイトのTwitter
Tweets by chiribt地理に関する投票を行い、リアルタイムでのランキングを見れるサイトになっています。
このサイトの特徴は投票。
対決形式での投票というのがこのサイトの1番の特徴です。
![スクリーンショット (2519).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1207272/aef7c0c7-849e-a605-1568-4d936911a8f8.png)対戦形式での投票は、ひろゆき氏の「萌えネコ・萌え犬写真館」を参考にしました。
https://www.itmedia.co.jp/news/articles/0807/07/news049.html#使用した技術
CentOS+DockerComposeを用いたPHPの環境構築
# はじめに
WindowsでVagrantのCentOS上にPHPの環境を構築します。
今回はVagrant上に更にDockerComposeをインストールしコンテナごとの管理を行いました。
各バージョンは以下の通り| | バージョン |
| —- | —- |
| CentOS(Vagrant) | 7.9 |
| Docker | 20.10.7 |
| docker-compose | 1.25.0 |
| nginx | 1.15.6 |
| PHP | 7.2 |
| MySQL | 8.0 |# Dockerのインストール
– yumのアップデート
“`bash
yum update
“`– 必要なパッケージのインストール
“`bash
yum install -y yum-utils device-mapper-persistent-data
PHPでSSL証明書期限を監視する処理を作ってみた
PHPでSSL証明書期限を監視してChatWorkに通知する方法を紹介します!
## やり方
“`
/dev/null | openssl x509 -noout -e