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

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

Your Composer dependencies require a PHP versionへの対処

“`
#php artisan migrate実行

Composer detected issues in your platform:

Your Composer dependencies require a PHP version “>= 8.2.0”. You are running 8.1.2-1ubuntu2.14.

PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 8.2.0”. You are running 8.1.2-1ubuntu2.14. in /home/username/Laravel/example-app/vendor/composer/platform_check.php on line 24
“`

解決方法

1. 最新版のPHPをインストール

“`
sudo apt install php8.2
“`

2. Apacheとの統合のた

元記事を表示

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“`を設置。

元記事を表示

Try Hack Me 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

元記事を表示

【Composer】コマンドちょこっとまとめてみました

## 導入
前回は、composerのインストール・基本的なコマンドを紹介しました。

https://qiita.com/umekikazuya/items/841e28180472a7da7959

今回はよく使うよ・便利だよってコマンドやオプションについて10個ほど紹介します。

## コマンド10選
### 1. “composer show“
インストールされているパッケージの一覧や、特定のパッケージの詳細情報を表示します。バージョン・説明・ライセンスなどの情報が確認可能。
“`bash
$ composer show

guzzlehttp/guzzle 7.8.1 Guzzle is a PHP HTTP client library
guzzlehttp/promises 1.5.3 Guzzle promises library
guzzlehttp/psr7 1.9.1 PSR-7 message implementation that also provides comm…
.

元記事を表示

【PHP】PHPフレームワークFlowのserver:runコマンド実行時の動きについて

# 初めに
Flowでは`./flow server:run`というコマンドを叩くことで、開発用の簡易的なサーバを立てることができます。
今回は、このコマンドでは実際にどんなことが行われているのかを見ていきます。

# server:runコマンド
`server:run`コマンドはシンプルです。
以下のコマンドを実行するだけで、簡単にWebサーバを立てることができます。

“`sh
$ ./flow server:run
Server running. Please go to http://127.0.0.1:8081 to browse the application.
[Wed Feb 21 20:49:17 2024] PHP 8.1.25 Development Server (http://127.0.0.1:8081) started
“`

ホストとポートはオプションで設定可能です。

“`sh
$ ./flow server:run –host 127.0.0.2 –port 9999
Server running. Please go to http

元記事を表示

PHP GoogleClientを利用したOAuth認証でrefresh_tokenが取得できない場合の対応

PHPのGoogleClientを利用して、OAuth認証を行う場合にリフレッシュトークンが取得できずエラーになる場合がありました。

※ログイン時、アクセストークンは取得できるので直後は問題ないが、1時間程度経過するとエラーになる

エラーメッセージの例
* error: ‘invalid_grant’
* error_description: ‘Bad Request’
* refresh token must be passed in or set as part of setAccessToken

### 原因

1. アクセストークンは初回ログイン時のみ入手できる(再度ログインしても取れない)
* アクセストークンが取得できるのは、ログイン時に「スコープの確認」が表示されたときだけ
* スコープの確認は2回目以降表示されないため、初回を逃すと正しいプログラムでもリフレッシュトークンは取れない
2. アクセストークンを取得するには「AccessType: offline」かつ「ApprovalPrompt: force」である必要がある
3. 初回に間違いのあ

元記事を表示

OTHERカテゴリの最新記事