PHP関連のことを調べてみた2021年11月20日

PHP関連のことを調べてみた2021年11月20日
目次

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

地理に関する投票を行い、リアルタイムでのランキングを見れるサイトになっています。

このサイトの特徴は投票。
対決形式での投票というのがこのサイトの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

元記事を表示

仮想環境上のLaravelプロジェクトでmigrationが実行できない。

## やりたいこと

– 仮想環境上(vagrantとvirtualbox)のLaravelで「php artisan migrate」を実行したい

## エラー内容

“`bash
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = laravel-quest and table_name = migrations and table_type = ‘BASE TABLE’)
“`

“`bash
at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attemp

元記事を表示

PHPのfile_get_contents()でプロキシを指定する

PHPのfile_get_contents()でプロキシを設定する方法。

“`php:コード
$proxy = array(
‘http’ => array(
‘proxy’ => ‘プロキシサーバーのホスト:プロキシサーバーのポート’,
‘request_fulluri’ => true,
),
);
$proxy_context = stream_context_create($proxy);
return file_get_contents(‘https://qiita.com’, false, $proxy_context);
“`

元記事を表示

PHPフレームワークLaravel入門第2版(通称:青本)『掌田津耶乃・著』Chapter5でSQLiteではなくMySQL(MariaDB)で環境構築する際のエラー対処方法

## はじめに
こんにちは、[@kazuma_dev](https://twitter.com/kazuma_dev)です。
PHPフレームワークLaravel入門第2版(通称:青本)『掌田津耶乃・著』Chapter5でSQLiteではなくMySQL(MariaDB)で環境構築した際のエラー対処方法です。
レビューを見る限り、chapter5の環境構築でつまづく方が多かったので下記に記します。

## 前提・実現したいこと
– Laravel6系とMySQL(MariaDB)の接続

## 発生している問題・エラーメッセージ
“`
sqlstate[hy000] [1045] access denied for user ‘root’@’localhost’ (using password: no)
“`

## 該当のソースコード

– 公式サイトのサンプルファイルにあるテストコードは下記の通りです。書籍の通り進めていくとSQLiteを使用するため、下記のコードになるかと思います。

“` /Applications/MAMP/htdocs/laravelapp/config/

元記事を表示

windowsでマルチPHPを実現する

###PHPをダウンロードし、任意のディレクトリにダウンロード
https://windows.php.net/downloads/releases/archives/

ここでは`/c/php/php-7.1.17-nts-Win32-VC14-x64`

###環境変数に下記を追加

“` C:\php “`

###PHPのエイリアスを作成

####git-bash用
“`vi /c/php/php“`

“`PHP
#!/usr/bin/bash
“/c/php/php-7.1.17-nts-Win32-VC14-x64/php.exe” $*
“`

#### cmd用

“`vi /c/php/php.bat“`

“`PHP
@echo off
“C:\php\php-7.1.17-nts-Win32-VC14-x64/php.exe” %*

“`

“`vi ~/.bash_profile“`

“`PHP
#alias php=’/c/php/php-7.3.31-nts-Win32-VC15-x64/php’
alias php=’/c

元記事を表示

PHPで日本の休日付きカレンダーを作る

#CarbonとYasumiを使います

CarbonはLaravelに入ってるので直観的に扱える人は多いかなと。

##インストール
composerで導入します。
###Carbon
https://qiita.com/hiroita/items/ed642b6acac4cef45bda

###Yasumi
https://qiita.com/sola-msr/items/7901835b3bfe145de033

#サンプル
以下のようなDirで配置

“`
html/index.php
html/vender/…
“`

サンプルコード(折り畳み)

“`php:index.php

元記事を表示

【PHP】Google広告APIでオフラインコンバージョンを自動アップロードしたい!

#はじめに

以前YahooAPIでオフラインコンバージョンを自動でアップロードする方法について、
調べて[記事](https://qiita.com/azasaz/items/20e49936471c4dd5ecb6)にしたんですけど、それじゃGoogleは?というおはなし。

#そもそもオフラインコンバージョンてなんぞや。

Googleさんが広告タグに「gclid」という長い文字列をくっつけてくれるので、
コンバージョンに結びついたデータからそのIDを引っこ抜いて、
ついでに何時何分何秒にいくらでコンバージョンに至ったかの情報を
まるっと渡すと、GoogleさんがAIを駆使して分析してより細分化された広告設定ができるようになる。らしい。

(とは担当者談なので、実際のところよく知らないんだけど)

オフラインコンバージョンについての詳細は[ココ](https://anagrams.jp/blog/listing_knowhow/offline-conversion-tracking-for-google-ads/)がわかりやすい

※ちなみにYahooの場合は「yclid」という

元記事を表示

Laravel:パスワードリセット実装の仕方

プログラミング初心者です。

##やりたいこと
LaravelのAuthをインストールすると、“`Forgot your Password?“`という名前でパスワードリセット機能が実装されます。
ただそのままだとメール送信することができず、エラー表示がでました。そこから実装に成功したので、ここに記録します。

日本語やデザイン変更してしまってますが、パスワードリセット部分の写真です。
![スクリーンショット 2021-11-17 1.08.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1362518/bc40309c-6473-4183-fa6a-03e6d482adfb.png)

##1 まずエラー①
何も自分で実装してなかったのでそのままメール送信すると以下のエラーが出ました。

“`
Call to undefined method App\User::notify()
“`
###1-1 エラー①解決方法
①Notificationsディレクターに一つもファイル作成してなかった

元記事を表示

【Laravel】App Store Connect API からiOSアプリの売上レポートを取得する

# はじめに

自分で作ったiOSアプリのダウンロード数などが知りたい場合、以下の2つの方法で確認することができます。

1. App Store Connectにアクセスし、ブラウザ上で可視化された情報を確認する
1. App Store Connect API を叩き、データとして取得する

本記事では、iOSアプリの新規ダウンロード数を算出することを想定し、2番のApp Store Connect API経由でSales and Trendsレポートを取得する方法を紹介します。

# 準備

※ Laravelのプロジェクトが立ち上げ済みであることを前提に話を進めます

## JWT生成ライブラリのインストール
App Store Connect API の認証には、__JWT__(Json Web Token)が必要となります。
今回はLaravelでの実装のため、PHPでJWTを生成できるライブラリである`PHP-JWT`を使用します。(https://github.com/firebase/php-jwt)

上記リンクのREADMEにもあるように、composerでインス

元記事を表示

BotUIでチャットボット開発(ツール編)

## はじめに

以下2つの記事の続きです。

* [BotUIを使ってチャットボットを開発してみた](https://qiita.com/t_power/items/e966b4a5f35340ed9a41)
* [BotUIでチャットボット開発(DB編)](https://qiita.com/t_power/items/aac7cc0e34736e557a0a)

本記事では、DBのデータをメンテナンスするためのツールを開発した話を扱います。

## ツールの概要

![ツールの概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1998725/643ab6c7-c56d-51b0-7883-150ef313da63.png)

上記の手順で管理することにより、プログラミングの知識が全くない方でも、シナリオを変更できるようになりました。
また、担当者が改行を含むデータを扱いやすくするために、CSVファイルはExcelで編集する運用にしました。

**実際のシナリオ管理ページのキャプチャ**
![シナ

元記事を表示

git commit できず苦戦(Controller.phpにActionを追加しただけ)

# はじめに
<自己紹介>
こんにちは、この記事が初投稿になります。
某SES企業に所属しています。現在は、非ITのクライアントに常駐しながら開発案件を目指して日々奮闘中です!
日々の学習のアウトプットのために活用させていただきます。

# <エラー概要>
◉Laravel学習初日
Admin/ProfileControllerに、add、create、edit、updateそれぞれのActionを追加しターミナル上でgit commitを入力したが

:::note warn
” On branch master Initial commit nothing to commit ”
:::
と出力されうまく実行できない。

#<仮説/試したこと>

◉ masterブランチ上で操作しているのでブランチを切ってくださいと怒られている
→ブランチを一度削除しやり直し
◉ そもそも指定しているディレクトリが違う
→確認、問題なし。
◉ VScodeとの接続がうまくできていない
→“`git add/git remote -v“` で確認、問題なし

あらゆることを試しましたが全然うまく

元記事を表示

OTHERカテゴリの最新記事