PHP関連のことを調べてみた

PHP関連のことを調べてみた

【未経験 / 独学】ポートフォリオ『チャレコ』を開発しました【Laravel / Vue.js / Docker / AWS】

# はじめに
こんにちは!りあるぱ([@realpa931](https://twitter.com/realpa931))と申します。

私がWebエンジニアへの転職過程で作成したポートフォリオを紹介します。

### 自己紹介
大学卒業後、新卒でメーカーに入社。技術職として機械部品の設計や評価に従事。
退職を機に、プログラミング学習を開始(2022年11月〜)。
2024年3月からWeb系企業(自社/受託/SES)で受託開発に従事予定。

# 目次
[1. ポートフォリオの紹介](#1-ポートフォリオの紹介)
[2. 選定技術の採用理由](#2-選定技術の採用理由)
[3. ポートフォリオ作成までに学習したこと](#3-ポートフォリオ作成までに学習したこと)
[4. ポートフォリオ作成の進め方](#4-ポートフォリオ作成の進め方)

# 1. ポートフォリオの紹介
### チャレンジャーが集うポジティブSNS『チャレコ』

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

元記事を表示

【PHP】307リダイレクトをよく理解してなかった話

# はじめに

PHPでリダイレクトをしなくてはいけない時があったのですが、その際に少しはまってしまったのでその話を書きたいと思います。

メソッドとパラメータを変えずにそのまま次の画面に渡す、ということをしようとしていました。

# 勘違いしていたこと

PHPにはheader関数があり、それを使用して
“`php
header(“Location: {リダイレクト先のURL}”, true, 307);
“`
というような感じで実装していました。

307リダイレクトは、

>メソッドと本文は変更しません。
(https://developer.mozilla.org/ja/docs/Web/HTTP/Redirections より引用)

というように記載してあったのでてっきりPOSTでもGETでもきたパラメータはすべて渡してくれるのかと思っていました。

# 実際に挙動を見てみる
`index.html`

⇓ GET POST

`index1.php`

⇓ 307リダイレクト

`index2.php`

というような感じでリダイレクトさせ、`index2.php`で

元記事を表示

Laravel Sailでサクッと環境構築!

今回は、Laravel Sailを使った環境構築を共有です。

以前にLaravelの環境構築について調べていた際に、発見した方法です!

docker-compose.yml書く手間を省き、手早く開発を始めたい方におすすめです!

Sailを使用するメリットは、開発に必要な環境を簡単に用意することができる点です。内部的にDocker Composeを利用し、Dockerの利用環境があれば簡単に開発環境を用意できます。

例えば、MySQLやComposer、Node.jsなどを、PCに個別にインストールする必要はありません。

その他、開発に便利なツールなどはSailで選択することができます。

まず、下記コマンドでLaravel Sailをインストールします。「laravel-app」という名前のディレクトリに新しいLaravelアプリケーションが作成されます。
“`
curl -s “https://laravel.build/laravel-app” | bash
“`
※ Laravel Sailは新しいLaravelアプリケーションとともに自動的にインストールされます。

元記事を表示

Dockerイメージのタグ構成(PHP&PostgreSQL)

# はじめに
初めまして!
エンジニアになって数年、今まで本を読むだけでしたが、もっとプライベートで楽しみながら成長したい!自分が学んだ足跡を残していきたい!と思い記事をかきました!
最終的には自在に開発できるようになりたいと思っています。:triumph:
いろいろな記事を参考にさせてもらっています。:bow_tone2:
その中でもこれってどういう意味?とかつまづいたところを念入りに書いていこうかと思います。:fist:

# 今回の目的
Dockerのイメージを選ぶときに、「これどう意味なの?何を基準に判断すればいいの?」となりました。使う範囲でいいから一通りの内容やルールを理解してから使いたいですよね。:thinking:
対象範囲はPHPとPostgreSQLに絞りました。長くなったので記事は二つに分けています!

今回は前回の続きになります!

https://qiita.com/mr_noppo/items/79e0dbcfaebea8c8192b

## 使用したものや事前準備
・Docker Hub
・PHP
・PostgreSQL

## 主に参考にさせていただいた

元記事を表示

PHPとは

## PHPとは
PHPは意識してみると至る所で使用されています。
PHPはユーザーが入力した情報を取得し保管をすることもできます。
その機能を使用すれば分かりやすい所でいうと、webサイトやアプリの登録やログインのシステム作成が可能です。
また他にも、様々な会員情報を自動入力する機能を実装することでユーザーの負担を減らすことも可能です。

### PHPを書いてみよう
PHPで画面出力するには echo が必要です。
“`php:php

“`
この記述により画面上では、Hello world が出力されます。

またPHPはHTMLに記述も可能です。
“`php:HTML





【Docker】Laravelの環境を作成してDockerを理解する

# はじめに

エンジニアのkeitaMaxです。

今までDockerに触れたことがなかったのですが、思い立ってDockerについて0から学習をしています。

まず最初にいつも使用しているフレームワークのLaravel の動作環境を作りたいと思っています。

PHPのコンテナ、Nginxのコンテナ、MySQLのコンテナの3つを作成します。

# 参考にする記事

https://qiita.com/hinako_n/items/f15646ea548bcdc8ac6c

この記事をもとに作成していきたいと思います。

# PHPのコンテナを起動する

まず作業用のフォルダを作成します。名前は`docker-laravel-app`にしました。

つぎに、Dockerの設定をしていきます。

`docker-laravel-app`フォルダ直下に`docker-compose.yml`ファイルを置きます。

そして`docker`フォルダを用意し、その中に`app`フォルダ、その中に`Dockerfile`ファイルと`php.ini`ファイルを置きます。

現在のフォルダ構成は以下

元記事を表示

Laravel入門 ~MVCについて~

# MVCとは
Laravelでアプリケーション開発をする際、MVCモデルという設計でアプリケーションの作成が行われます。MVCとは、プログラムをModel(モデル)、View(ビュー)、Controller(コントローラー)の3つに分けることで、プログラムをわかりやすくする手法です。

# Model(モデル)
システム内部のビジネスロジックを担当する。
データベースとのやり取りや、データの処理が含まれる。

https://readouble.com/laravel/10.x/ja/eloquent.html

Modelファイルをコマンドで作成すると、デフォルトで下記のように作成される。
“`php:Player.php

元記事を表示

Laravel 11のHTTPクライアント【Guzzle】

https://github.com/laravel/framework/pull/49784

もうGuzzleをインストールする必要はありません!ララベルをインストールするだけです!!

# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
“`

# GETリクエスト

“`php
$ php artisan tinker
Psy Shell v0.12.0 (PHP 8.2.13 — cli) by Justin Hileman
> $response = \Illuminate\Support\Facades\Http::get(‘https://httpbin.org/get’)
= Illuminate\Http\Client\Response {#5063
+cookies: GuzzleHttp\Cookie\CookieJ

元記事を表示

Laravel 11でコマンドラインアプリケーションを作成【コンソールアプリ】

# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
“`

# コマンドラインアプリケーションを作成

“`php:routes/console.php
comment(Inspiring::quote());
})->purpose(‘Display an inspiring quote’)->hourly();
“`

`$this->comment();`でコンソールに色を付けてくれます。`->hourly();`で毎時に実行されます!

# 実行

“`bash
$

元記事を表示

CentOS7 色々インストールしてみた!😎

VPSインストール関連で戸惑ったところをまとめてみました!
みなさんの参考になれば、と思います。

#MySQL
実際にMariaDBが入っていると、MySQLがインストールできないのでMariaDBが入っているか確認しましょう!

“`
# rpm -qa | grep maria
# mariadb-libs-5.5.50-1.el7_2.x86_64 //こんなふうに表示されればMariaDB入ってます。

//エラーの対応->MariaDBを削除し、MySQLをインストール。
# sudo yum remove mariadb-libs
# sudo rm -rf /var/lib/mysql/
# sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
# sudo yum -y install mysql-community-server
//最後にバージョンを表示するコマンドでバージョンが表示されればインストール成功!
# mysql –v

元記事を表示

Laravel 11でconfig/*.phpがなくなるってよ🗑️

https://laravel.com/docs/master/releases#health:~:text=Configuration%20Files

Laravel 11で`config/*.php`がなくなります!
不要なconfigをバージョン管理しなくなることで認知負荷が下がり生産性が上がります!
Laravelのバージョンアップ時に考慮することが減ります!

# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
php artisan serve
“`

# 基本的には環境変数使ってconfig/*.phpは作らないようにしよう!

`.env`ファイルに環境変数を設定しよう!Laravel 10以前の `config/*.php` は、https://github.com/laravel/framework/tree/master/co

元記事を表示

Laravel 11のヘルスチェック【DiagnosingHealth】

Laravel 11でヘルスチェッㇰ機能が搭載されました!**routes**も**Controllers**も不要なのがいいですね(≧∇≦)b

https://laravel.com/docs/master/releases#health

# Laravel 11のインストール
Laravel 11はPHP8.2以上が必要です
“`bash
composer create-project –prefer-dist laravel/laravel hello-world dev-master
cd hello-world
php artisan serve
“`

http://localhost:8000/up でヘルスチェックを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/8574d90b-71c5-9fb0-1f0c-f08893b1f5dd.png)

ヘルスチェッㇰの実行時間が94msと表示されています!

# ヘルスチェックの処理追加

元記事を表示

カスタム投稿タイプのsingleページで「前のページへ」「次のページへ」を表示

## 三つ目の値をTRUEにすると動かない
動くコード↓
“`php

“`

“`php

“`

元記事を表示

Laravel+Xamppローカル環境作成-ハンズオン:①Xampp・Composer・Vscodeインストール編

# ①Xampp・Composer・Vscodeインストール編

最近個人でLaravelアプリの開発を行うことが多く、環境作成について忘れていたのでハンズオン形式で記事を作成しました!

温度感としては初学者や初めてローカル環境や開発環境を作成したい方もわかるように記載しますので冗長的な部分は暖かい目でお願いします。

また、筆者がWindows環境なのでMacでのハンズオンではないことをご理解ください。

よくDocker+Xmappなどの構成も見るので時間があったらまとめたいと考えています~

## 作業の流れ

Laravelをインストールし起動→初期画面を表示するまでの作業の流れです。

現在自分が何をどこまで作業したかなどイメージができると良いと思います。
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602338/5c9aee43-e61c-ccfb-15b0-cd0cb6f1324d.png)

今回の記事では、step1~3までのインストール範囲を記載していま

元記事を表示

【Laravel】静的解析ツール「Larastan」の導入

## 1. Larastanとは
[Larastan](https://github.com/larastan/larastan)はPHPの静的型解析ツールである[PHPStan](https://phpstan.org/user-guide/getting-started)をベースにしており、
アプリケーション内のコードを解析して型の整合性やエラーをチェックします。
これにより、潜在的な型関連のバグやエラーを早期に発見し、修正することができます。

## 2. 導入方法
### 2.1 インストール
Composerを使用してLarastanをプロジェクトに追加。
“`PHPのバージョン < 8.0の場合 composer require nunomaduro/larastan:^1.0 --dev ``` ```PHPのバージョン >= 8.0の場合
composer require nunomaduro/larastan:^2.0 –dev
“`
### 2.2 設定ファイルの作成
プロジェクトのルートディレクトリに設定ファイル“`phpstan.neon“`を設置。

元記事を表示

TryHackMe Writeup: RootMe

# はじめに
今回は私がTryHackMeで初めて解いたPractice問題「RootMe(難易度はEasy)」のWriteupを書こうと思います.ちなみに初Writeup執筆なので改善点などありましたがぜひ教えてください.

# Task1:Deploy the machine
これはただマシンを起動させるだけです.今回はVPNを使用します.

# Task2:Reconnaissance

### ポートスキャン
“`sudo nmap -p- -vv -T4 -O -sV [IPアドレス]“`

![Pasted image 20240221174155.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/831b1b3c-33c5-32ee-2371-05e517ef4903.png)
この結果から空いているポートは(22番と80番)ということがわかります.
それ以外にもそのポートが何のサービスがやバージョンなどもわかります.

### ディレクトリ探索
gobusterを使

元記事を表示

bindValueでSQLインジェクション対策

## 目次
1. [SQLインジェクションについて](#SQLインジェクションについて)
2. [SQLインジェクション対策](#SQLインジェクション対策)
3. [bindValue()関数](#bindValue()関数)

## SQLインジェクションについて
`SQLインジェクション`とは、第三者がSQLコマンドを悪用してデータベースの情報へ不
正アクセスし、情報を搾取や改ざん削除する攻撃手法である。

## SQLインジェクション対策
1. 入力値を制限する
2. 入力値をいったん変数に格納する
3. エスケープ処理、サニタイジングを行う
4. 常に最新の環境を保つ
5. セキュリティソフトWAFを導入する

上記5つの対策があるが、「2. 入力値をいったん変数に格納する」対策方法についてピックアップする。

## 入力値をいったん変数に格納する

入力された文字列をそのままSQL文として利用せず、いったん変数に格納する対策方法です。あらかじめ`プリペアドステートメント`と呼ばれるSQL文を用意しておき、その一部を`プレースホルダ`と呼

元記事を表示

Laravel 8.x/PHP7.4 環境で Laravel Dusk の ChromeDriver を使用して Web スクレイピングしてみた

# 概要
Laravel でヘッドレスブラウザを使用して Web スクレイピングをしたいのですが、 Selenium(php-webdriver) や php-phantomJS などより、Laravel 公式パッケージでブラウザテストの自動化およびテスティング API の [Laravel Dusk](https://github.com/laravel/dusk) を使用してWebスクレイピングできないか調べてみました。

現在の環境が PHP7.4 環境ですので、必然的にLaravel のバージョンは 8.x となります。PHP と Laravel のバージョン対応表は [こちら](https://readouble.com/laravel/10.x/ja/releases.html)

# Laravel 8.x プロジェクトの作成
~~~php:
> composer create-project laravel/laravel=8.* scraping
> cd scraping
~~~

# Laravel Dusk のインストール
プロジェクトに Laravel/Dus

元記事を表示

phpenvが動かなかったためDockerを使ってPHPの特定のバージョンでComposerを動かす

phpenvが動かなかったためDockerを使ってPHPの特定のバージョンでComposerを動かしました。

# 結論

“`json:composer.json
{
“config”: {
“platform”: {
“php”: “MAJOR.MINOR.PATCH”, # ここにバージョンを書く
“ext-something”: “MAJOR.MINOR.PATCH”
}
}
}
“`

https://hub.docker.com/_/composer

“`bash
docker run –rm -v $(pwd):/app composer/composer update
“`

# 経緯
少し古い Larave(Laravel8)が入っているリポジトリを引っ張りだして動かそうとしたところ、依存関係のライブラリがPHP 7.3 でしか動かなくなっていました。
2024年2月現在では手元の環境(MacOS)には PHP8.3 が brew で入っていました。

これまでは古いバージョンのP

元記事を表示

Laravel + Vue.js で環境構築に戸惑った

# 参考資料
https://zenn.dev/eguchi244_dev/articles/laravel-vue-docker-introduction-20230828#%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%81%AE%E7%9B%AE%E6%A8%99

上記サイトを参考にLaravelとVue.jsで環境構築していた。
今回はLaravelの10系で挑戦。

# 現象
dockerにてサーバーを立ち上げたあと、localhostへ遷移すると、以下のエラーが発生し、Laravelの初期画面が表示されない・・・。

“`
Vite manifest not found at: /var/www/hogehuga/public/build/manifest.json
“`

# 原因
node がインストールできていなかった。

# 対応
– Node.js公式サイト: https://nodejs.org/en/ からNode.jsをインストール

– 以下のコマンドでViteをインストール

`npm install –g

元記事を表示

OTHERカテゴリの最新記事