PHP関連のことを調べてみた2022年05月03日

PHP関連のことを調べてみた2022年05月03日

Laravelのタイムゾーンを日本時間に変更する

# ”UTC”から”Asia/Tokyo”に変更

LaravelのタイムゾーンはデフォルトでUTCになっているため、ログに残る時間やcreated_atが日本時間より9時間遅れた時間が記録されてしまう。
`config/app.php`ファイルの記述を変更すればよい

## 変更前

“`config/app.php
‘timezone’ => ‘UTC’,
“`

“`
$ php artisan tinker
>>> echo Carbon\Carbon::now();
2022-05-03 01:40:21⏎
“`

## 変更前

“`config/app.php
‘timezone’ => ‘Asia/Tokyo’,
“`

### キャッシュクリア
“`
$ php artisan config:clear
“`
### 確認

“`
$ php artisan tinker
>>> echo Carbon\Carbon::now();
2022-05-03 10:40:49⏎
“`

元記事を表示

スーパー初心者向け! WordPress構築😼

人気ブログの一つに「Wordperss」がありますよね。
今回はインフラ基盤を一から作り自分の記事が書けることをゴールに設定しました!

# WordPressとは?
“WordPress(ワードプレス)とは、サイトの作成やブログの作成などが
できるCMS(コンテンツ管理システム)の1つ”

https://digital-marketing.jp/creative/what-is-wordpress/

では早速構築に移りましょう!
:::message
Amazon Linux2でのインストールを試みます。
:::

[参考サイト]
https://qiita.com/moomindani/items/9968df0d4396564bf74c#%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3-6-phpmyadmin-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

yumのアップデート
“`js
yum update –

元記事を表示

Laravel API パスワードリセット機能を実装する

## パスワードリセットとは?

パスワード忘れた人がメールアドレスを入力して、メールのリンクを踏んで、パスワードを変更する一連のアレをAPIで実装します。パスワードリマインダーとも言う。

Laravel Breeze等の[Laravelアプリケーションスターターキット](https://readouble.com/laravel/9.x/ja/starter-kits.html)にパスワードリセット機能を含め、認証系のテンプレートは用意されてます。

今回はAPI向けに実装します。
認証機能の実装が終わったらついでに作ると良さそうです。
ちなみに認証機能の記事はこれです。

https://qiita.com/ucan-lab/items/3e7045e49658763a9566

## 参考資料

https://readouble.com/laravel/9.x/ja/passwords.html

公式ドキュメントにパスワードリセットを参考にします。

## 実装するAPI

– パスワードリセットメールを送信するAPI
– パスワードリセットメールの日本語化
– パスワ

元記事を表示

【PHP】CakePHP4の導入

# 事前準備

### Composerのインストール
・[公式サイト](https://getcomposer.org/doc/00-intro.md#installation-windows)からComposer-Setup.exeをダウンロードしてインストール

### PHPインストール
・[公式サイト](https://www.php.net/downloads)からダウンロードしてインストール

※CakePHP4を使用する際にintlが必要になるため、php.iniでintlのコメントを外します。
“`
extension=intl
“`

### XAMPPインストール
・[公式サイト](https://www.apachefriends.org/jp/index.html)からダウンロードしてインストール

# CakePHP4のインストール
コマンドプロントで下記のコマンドを実行して、XAMPPの作業ディレクトリに
CakePHP4をインストールします。
“`
// 作業ディレクトリに移動
cd C:/xampp/htdocs
// cakephp4をイ

元記事を表示

サーバーのソフトウェア情報を非公開にする方法

はじめに
====
nginxはデフォルトで、エラーページと同様にServer HTTPヘッダでその使用に関する情報を送信します(例:nginx/1.11.1.

現在、出力されるヘッダを確認するには、ターミナルで以下のように実行します。

“`
curl -I https://test.com
“`

ソフトウェアバージョン情報の非表示

curlを実行してバージョン情報が表示されるということは、外部からソフトウェアのバージョンが確認できることを意味しています。

伝統的には、ソフトウェアのバージョンは公開しないべきという考え方が一般的なようです。この点に関して、標準的な解決方法は下記のようにしてバージョン情報を隠蔽することです。

**nginx(nginx.confのhttpブロックに以下を設定)**

“`
server_tokens off;
“`

**Apache(httpd.conf)**

“`
ServerTokens ProducOnly
ServerSignature Off
“`

**PHP(php.ini)**

“`
expose_p

元記事を表示

ParseErrorsyntax error, unexpected ‘Route’ (T_STRING) エラー(解決)

//文法エラー
Route::get(‘hello’, ‘function(){
return view(‘hello.index’);
});

⬇️

Route::get(‘hello’, function(){
return view(‘hello.index’);
});

functionの前にアポストロフィ(‘)があり、エラー。

https://prograshi.com/framework/laravel/parse-syntax-error/

→こちらの記事を参考にさせて頂きました。

元記事を表示

SmartyでPHPからテンプレートへ値を渡す

## 用途
SmartyでPHPからテンプレートに値を渡したい時に使う。
PHPで処理したものなどをSmartyでテンプレートに渡したい時に使う。

## 使用方法
“`php:phpファイルでの渡し方
$smarty->assign(“変数名”, “値”);
“`
渡す際は、`assign` の第1引数に「変数名」、第2引数に「渡したい値」を指定する。
“`html:テンプレートファイルでの受け取り方(表示の仕方)
{$変数名}
“`
受け取る際は、phpファイルで指定した変数名の先頭に `$` をつけて `{}` で囲む。

—————————————

### 文字列を渡す
“`php:phpファイルで文字列を渡す
$smarty->assign(“hoge”, “abcdefg”);
“`

“`html:テンプレートファイルで文字列を受け取る
{$hoge}です。

// 結果
abcdefgです。
“`
————————-

### 配列を渡す
“`php:phpファイルで

元記事を表示

laravelマイグレーションできない解決方法

マイグレーションする際、だいたい調べたらすぐ直るが今回なかなか治らんかったのメモに残しておきます。

■エラー内容
Class ‘Barryvdh\Debugbar\ServiceProvider’ not found

# 1,composerのオートロードし、キャッシュ削除

“`
composer dump-autoload

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
composer dump-autoload

php artisan migrate:refresh –seed

[参考]
https://qiita.com/kuma15/items/1687696bdd6be094c780
“`
# 2,bootstrap/cache以下削除し、composer dump-autoload
“`
composer dump-autoload

php artisan migrate:refresh –seed

[参

元記事を表示

Laravelを使ってユーザー認証機能を「本気で」実装してみる②

Laravel 6系を使ってユーザー認証機能を実装する方法を解説します。
本稿は、[Laravelを使ってユーザー認証機能を「本気で」実装してみる①](https://qiita.com/Michi1090/items/20cb5901666538114c4e)の続編になります。詳しい要件定義などは、そちらをご確認ください。

今回は、
– メール認証機能
– パスワードリセット機能
– ログイン後のリダイレクト先変更

を実装していきます。

# 実装

## メール認証・パスワードリセット

まずはメール認証・パスワードリセット機能の実装からです。

### モデル

“`diff_PHP:app/User.php

元記事を表示

WordPressのwebp、avif画像の読み込みを更に高速化する

## はじめに

https://qiita.com/nanakochi123456/items/adedfe54e50bbb3653d5

この記事を利用した、.htaccess によるリダイレクト型の
高圧縮画像表示には難点があり、
302リダイレクトが発生し、特に海外(米国)から計測すると
100バイト程度のリクエストとはいえ、
再度リクエストすることにより200ms~600msと大きな遅延を発生させてしまいます。

同じように国内においてもMVNO回線や電波の悪いモバイル回線でも同じようなことが発生しうると考えられます。

WordPressとphpの知識を必要としますが、リダイレクトを発生をさせないよう、uaを検出して最適な画像を配信します。

### 必要なもの
・Wordpressのfunctions.phpの知識
・キャッシュ系プラグインのOFF、キャッシュ系のサーバー設定のOFF
・Wordpressで自動的にwebpに変換するプラグイン

今回はこれを使用、有料課金すればavifも使用できますが、webpだけの対応とします。

https://wordpress.

元記事を表示

PHPで5の付く日曜日を出力するプログラム

実務で3ヶ月経過したので4ヶ月前に書いたのと同じものを作ってみました
↓↓Javaで5の付く日曜日を出力するプログラム
https://qiita.com/noczz/items/aa1caccf6aebc334b0f8

今見返すと酷いコードですね…
初心者なりに前よりも良いコードを書けるように考えてみました
実務ではPHPを触っていますのでPHPで書いてみました

**プログラム要件**

* endと入力されるまで無限ループ
* Enterキーを押すと1つずつ次の5のつく日曜日の年月日が表示される

“`php

format(‘Y-m-d’);
}

元記事を表示

OSSへのコントリビュート体験記

憧れの初OSSコントリビュート記念で投稿します!:grinning:
ちなみに、業務経験役2年のwebエンジニアです。

### I.まとめ
動き出しからマージまで、業務後作業で5日間(8時間くらい)でした。
CSSの4行だけの変更でしたが、達成感がありました!
最終的に出したプルリクエストはこちらです↓
https://github.com/joomla/joomla-cms/pull/37695

### Ⅱ.流れ
#### 1. プロジェクトを探す。(~~半年~~、1日くらい)
↓のQiita記事を参考にさせて頂き、”good first issue”というサイトで探しました。
https://qiita.com/Naughty1029/items/cf8750f375fa99bce9bb
業務で使用しているPHPやVue.jsで探しましたが、
各プロジェクトをざっくり見て、やっぱ無理。。というのを数ヶ月おきにしつつ、
ドキュメントと雰囲気がめっちゃ親切そうな
“Joomla”というプロジェクトにチャレンジすることにしました:star:

https://github.com/j

元記事を表示

PHPでフレームワークを使わずに掲示板アプリを作ってみる④ ログイン画面

# はじめに
※自身の学習を記事に投稿することでアウトプットするのが目的です。
「よくわかるPHPの教科書」のchapter6に書いてある通りにアプリを
作成していくので、私と同じような駆け出しエンジニアの皆さんは、
書籍を買ってアプリを作っていただいた方がわかりやすいかもしれません。

# 使用しているエディタ、実行環境
* VS Code
* XAMPP

* PHP7
* windows

## ログイン処理を作成していく
この辺は、今まで作ったプログラムの応用で作れるので、
サクサクとコードを載せていきます。
“`

元記事を表示

【php】連想配列を見やすくする工夫

なんてこともないことですが、
覚えてで忘れそうでもあるのでその備忘録がてら投稿します。

list()の活用

DBからレコードをSELCTするとカラム名に値が入っている形になっていると思う。
それをそのまま活用してもいいが、読みやすいかといわれると微妙。
そこでlist()を活用すると少しでも読みやすくなるかなと思った。
例えばこんな感じ。

“`php
$userData = [‘田中太郎’, ’25’, ‘man’, ‘東京都’];
list($name, $age, $gender, $address) = $userData;
“`

ちょっとでも読みやすくなるコードを書いていきたいなという思いです。

元記事を表示

phpでcsvを読み込んでyaml形式で出力する

### はじめに

csvを読み込んで、yaml形式で出力します。
コマンドを実行したときに、outputディレクトリにyamlファイルが生成されるところまでを作成します。

今回はフレームワークは使用せず、生のphpでスクリプトを作成します。
githubに上げているのでどうぞ参考にしてください!
https://github.com/masahiro96848/php-yaml

### ディレクトリ構成
“`
yamlCongig/
┣ input/
└ sample.csv
┣ output/
└ sample.yaml
│ vendor
Yaml.php(yamlに変換するスクリプト)
      Map.php (csvの列を指定するクラス)

“`

### 使用方法
1. inputディレクトリ下にcsvファイルを作成。
2. コマンド(php Yaml.php csvのファイル名(引数))を実行
3. outputディレクトリにyamlファイルが生成。

## Yamlとは?
YAMLは構造化デ

元記事を表示

Web制作会社2年目PHPerがライブラリに頼りつつ生PHPでオブジェクト指向チックにお問い合わせフォームを制作する

:::note warn
フレームワークは使用しておらず正しい実装とは限りませんので、あくまで参考として見てください。
:::

# はじめに
はじめまして、[Orisend]()と申します。Qiita初投稿です。

私はもうすぐPHPer3年目を迎えようとしています。

入社当初に比べて実装力は付いたと感じています。
しかしながら地方小規模制作会社のため先輩という先輩がおらず、自分の考える実装方法が正しいのかどうか不安に思い本記事を投稿しようと決めました。

# なぜフレームワークを使わないのか
案件によってはLaravelなどのフレームワークを使用することはあります。

ただWeb制作会社なので基本的にはコーポレートサイトや期間限定のサイトなどのごく小規模なものが多く、手続き的な書き方のPHPで済んでしまうような案件が多いです。

それでも拡張性や保守のしやすさを考えてオブジェクト指向チックになるよう心がけて、例のような実装をしています。

# 実装例
ほとんどが静的ファイルで構成されているお問い合わせフォーム付きサイトを制作すると仮定する。
なるべく拡張しやすい実装にする。
ルー

元記事を表示

[メモ]docker環境のPHPでPostgreSQLを使う際にcould not find driverが出る時の対応

## 対処法
DockerFileに追記
“`
RUN apt-get update && apt-get -y install libpq-dev
RUN docker-php-ext-install pdo_pgsql
“`
## 参考
https://chusotsu-program.com/docker-could-not-find-driver/

元記事を表示

未経験者が家事・育児しながらLaravelでポートフォリオを作成し、AWSでデプロイしてみた

# 0.はじめに
今回実務未経験者が転職活動のために、ポートフォリオとしてWebアプリを作成しました。
Webアプリの紹介や作成過程などを**学習背景やバックグランドも含めて**記載しますので、似たような境遇の方やこれからポートフォリオを作成しようと考えている方に参考にして頂けたら幸いです。

# 1.自己紹介
32歳、元地方病院勤務の理学療法士
(前職では日々の業務に加え後輩教育・担当病棟チームのサブリーダー、実績管理、各管理書類の最適化、マニュアル管理、研究・学会発表、勉強会開催を経験)
既婚、3歳の子持ちで**育児・家事全般をメインで実施**(パパ育休プラスで計8ヶ月取得)・・・・男です。
料理・お菓子作り(というかおいしいものを食べる事)が趣味

# 2.学習期間と背景
本格的にプログラミングを学習したのは2021年2月あたり。当時は子育ての合間や、子供が寝てから少しずつyoutubeや教材を始めました。情報、IT系学校・学部未就学のため何もわからない状態で初めはHTML・CSSなどの学習。
1日数時間を継続し、7月くらいにはデザインから一通りコーディング・レスポンシブ

元記事を表示

PHPで時刻(00:00:00)を秒に変換する方法

##はじめに

仕事柄、頻繁に時刻であったり記録(●●分●●秒など)を扱う機会が多いです。

PHPで時間(時刻)を計算するには、UNIXタイムスタンプの値を操作することで求めることができますが、「時刻じゃなくて記録(36時間24分56秒などもあり)なんだよな~」、「一度秒にしてから四則計算してこんなことをしたいんだよな~」と思うことが多々ありました。

大したことは全くしていませんが、誰かの参考になれば幸いです。

##時間(00:00:00)から秒へ変換
“`php:php
// 時間から秒へ変換(00:00:00→00000秒)
function hour_to_sec(string $str): int
{
$t = explode(“:”, $str); //配列($t[0](時)、$t[1](分)、$t[2](秒))にする
$h = (int)$t[0];
if (isset($t[1])) { //分の部分に値が入っているか確認
$m = (int)$t[1];
} else {
$m = 0;

元記事を表示

Twitter API v2 を使い php でツイート検索

# はじめに

twitter api v2 で ツイートを投稿するとうまくツイートできない。
よってツイートする場合は cowitter を使う。

検索するときは abraham/twitteroauthを使う。

参考
https://twitteroauth.com/
https://qiita.com/ichii731/items/40b8c837028e7cef13d4
https://labo.kon-ruri.co.jp/twitter-api-v2-search-tweets/

# 制限
1アプリあたり
450回/15分

# インスコ

“`
composer require abraham/twitteroauth
“`

“`
use Abraham\TwitterOAuth\TwitterOAuth;

//中身
//v2ならベアラートークンを管理画面から取得できる
$bearer = ‘AAAAAAAAAAAAAAAAAAAAAxxxxxxxI’;

$twi = new TwitterOAuth(
config(‘app.twitter

元記事を表示

OTHERカテゴリの最新記事