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

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

【フォーム】追加ボタンを押して関連した入力欄2つを同時に増やしていく方法

#はじめに
今回以下のようなフォームは作ったので、備忘録として残しておきます。
![スクリーンショット 2021-10-14 23.34.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1697283/80e628f3-5947-3bef-1c1a-b9c3636b2643.png)

#HTML部分

“`php:create.brade.php


元記事を表示

【Laravel8】マイグレーションで既存のテーブルにカラムとデータを追加する

## 概要

既に作成済みのテーブルへカラムを追加し、データまで入れる機会があったのでまとめます。
データの投入といえばシーダーが一般的かと思いますが、追加するカラムへどのようなデータが投入されるのかをマイグレーションファイルのみで確認できるため、今回はこの方法を採用しました。

## 想定

– リリース済みのサービスへの改修依頼
– 並び順カラム(sort_id)を追加し、1,2,3・・・とデータを挿入する

## 環境
– Laravel 8.24.0

## マイグレーションファイル

“`

元記事を表示

転職活動管理アプリを作ろう⑥(laravel-admin 役割ごとのメニュー切り替え)

前回の記事は [コチラ](https://qiita.com/soso555/items/5f69b0e159e1087a17ab)

# やりたいこと
– なんでも見れるし触れる Administrator、一般利用者を想定した users の 2 つのアカウント種別を作成したい
– これこそ [JetStream を使った一般権限を作成](https://qiita.com/soso555/items/17eb1de9283642ed2a7a#%E5%82%99%E5%BF%98%E9%8C%B2%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86jetstream) しろとか言わないでください
– UI イチから作るのめんどくさいので

# やったこと概略
1. 権限の作成
– laravel-admin では URI の部分一致で設定する
2. 役割の作成
– laravel-admi

元記事を表示

転職活動管理アプリを作ろう⑤(laravel-admin 拡張〜テーブル作成)

前回は [コチラ]()

# laravel-admin 拡張
## Extension をインストール

1. [redis-manager](https://github.com/laravel-admin-extensions/redis-manager)
– redis の中身を閲覧できる
2. [simplemde](https://github.com/laravel-admin-extensions/simplemde)
– markdown editor
– config
– https://github.com/sparksuite/simplemde-markdown-editor#configuration

## セッション管理を redis に変更
1. “`$ composer require predis/predis“`
2. .env ファイルを以下のように修正

“`
SESSION_DRIVER=redis
:
REDIS_HOST=redis
REDIS_P

元記事を表示

プログラミングスクールの講師を2年間続けて限界が来て辞めた話

## はじめに

某プログラミングスクールで二年間講師をしてました。
受講生の方からの評価点は平均より高く、最終的には全インストラクターの中から代表に選ばれる立場にまでなりました。

## 始めた経緯

もともと、プログラミングスクールをいつか開きたいと思っていたこともあり、業務委託契約で経験が詰めそうなところに応募。
即採用していただき、正社員で働く傍、復業としてプログラミング講師に。
エンジニア歴は当時は5年
得意な言語はPHPのみでした。

## コロナ禍で全てが変わった

特定を避ける為に細かな時期は記述しませんが、この復業を始めてから今も尚世界を苦しめているウイルスの流行で事が大きく変貌していきました。
というのも、私が請け負っていたプログラミングスクールでは生徒様が作成したいと言う物をベースにプログラミングを教えるスクールでした。
その中で、コロナ禍前までの生徒様達は明確に、

「ECサイトが作りたい」
「勤怠管理アプリを作りたい」
「ポートフォリオを作って、簡単な案件に挑戦できるようになりたい」

…etc

のような明確としたゴールがありました。

私はその手助けをした

元記事を表示

Push Notification Using OneSignal Rest API with PHP

in this article, we’ll create Push Notification functionality for our app using oneSignal Rest API and Laravel. We’ll add a device and create a push notification using Rest API.

Push Notification Using OneSignal Rest API with PHP

元記事を表示

時代はPHP8だしFizzBuzz書いた

眠れない夜ってFizzBuzzを書きたくなりますよね。いままでさんざんFizzBuzzを書いてきましたが僕はまだ書き足りないです。

今回はきしださんが今年の1月に書いたらしいFizzBuzzをさっき知って「うむ、これこそ2021年のFizzBuzzだ」と思ったので、臆面もなくぱくることにいたししました。

https://nowokay.hatenablog.com/entry/2021/01/26/190658

今回のFizzBuzzのコンセプトは以下の通りです。

* 元コードの魂を受け継ぎ、オブジェクト指向は時代に合ってないので`new`を使わない
* 元コードの魂は受け継がず、シンプルではなく凝ったことをしており、エレガントではない
* 元コードの魂は受け継がず、動く

また、判定方法は概ねきしださんのコードから拝借していますがループ方法は異っています。

## PHPコード

:::note alert
このコードに実用的な要素はありません
:::

“`php

元記事を表示

phpフレームワークLaravelって何?環境構築の前にちょっと待った!使用用途を徹底解説!!

#絶対に読んで欲しい導入
HTML,PHPを学び、これからLaravelを使おうと思ったそこのエンジニアの皆さん、とりあえず環境構築してコードをググったらある程度使えるようになるだろうと思ってますよね。
確かにその通りです。

しかし実際に使用する前に便利な機能を把握し、Laravelではこんなことができるのかと知っておくことで格段に開発効率が上がります。

座学はエンジニアの皆さんにとってはそんなに面白いものではないかもしれませんが、こんな機能があるならこういうアプリが作れそうだ!などと言った想像を膨らませながら、楽しみながら読んでみてください!!

#そもそもLaravelって何?
![column_main13814.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1525561/03a7d479-db73-7e62-9e10-32f1cca8a72d.png)

Laravelとは、**PHPのフレームワークの1つ**です。

>※ **PHP**とは、Webページを動的に生成できるサーバーサイド

元記事を表示

【電話番号抽出】英数全角記号特殊文字が入り混じった文字列から数字だけを抽出する。ついでに全角数字は半角数字に変換する。

## あらすじ
先日、とある機能実装のため、Amazonから出品者情報を取得する必要があった。
しかし、実際に取得した電話番号のデータを見てみたところ・・・

“`
※個人情報保護の為電話番号は0でマスキングしてあります。

000−0000−000
+8190-0000-z0000
03 0000 0000 です。
0000−00−0000
電話番号はこちら → 000  0000 0000
00−0000−0000
〇〇宛 000−0000−000
“`
きっっっっっっっったな!
こんなんじゃ使い物にならん・・・・

どうやらAmazonでは出品者の情報(本人によるCSV入力だと思われる)はちゃんとしたバリデートが行われていないっぽい。
それで良くシステム側に不具合無いな・・・

## 要件
・とりあえず数字だけを取得する。
・全角数字は半角数字に変換して、電話番号の一部と数える。

## 実際のコード

Paizaに実際に動かしたコードがあるので、コード見るのだるい人は確認してみてください。
https://paiza.io/projects/TwekAfnexAUCixpt

元記事を表示

 phpでWordpressの動画をランダム再生する方法

[基本環境](#基本環境)
[wordpressでカスタムページを作成](#wordpressでカスタムページを作成)
[ランダム表示php](#ランダム表示php)
[動画再生htmlタグ](#動画再生htmlタグ)
[ランダム表示と動画再生組み合わせ](#ランダム表示と動画再生組み合わせ)
[動画アップロード](#動画アップロード)
[カスタムページをカスタマイズ](#カスタムページをカスタマイズ)
[表示確認](#表示確認)
[参考記事](#参考記事)

#基本環境
WordPressで子テーマ設定済み

#wordpressでカスタムページを作成

親テーマのpage.phpをコピペしてカスタムページvideo-random.phpを作成

“`
# cp -p /var/www/html/example.com/wp-content/themes/親テーマ/page.php /var/www/html/example.com/wp-content/themes/子テーマ/video-random.php
“`

video-random.php最上部に以下を追記

“`

元記事を表示

WSL2のUbuntuでPHPStanを使う(VSCode)

# はじめに

– 自分だけの環境に PHPStan を入れて、他の開発メンバーと差をつけたい時、あると思います
– ということで、WSL2 で利用する Ubuntu ディストリビューションに PHPStan を設定し、そちらを VSCode で読み込むようにします

# バージョン

– Windows11 Pro
– 21H2
– VSCode
– 1.61.0
– Ubuntu
– 20.04.2 LTS
– Composer
– 2.1.3

# 前提

– こちらの記事の続きです

# 拡張機能インストール手順

## 1.PHPStan インストール

– 以下のコマンドを実行する

“`bash
# パッケージ最新化
sudo apt update
# PHPStan インストール
composer global require phpstan/phpstan
“`

## 2.VSCode と連携

– VSCode の拡張

元記事を表示

PHPでnull判定関数(isset, empty, is_null)の違い

## はじめに
実務で「変数に配列がセットされてるけど、空配列であることを判定」する必要がありました。
PHPでは配列の空判定が出来る関数としてisset, empty, is_nullがありますが、違いがよくわからずに苦労しました。
理解を深めるために違いをまとめたので記事にしました!

## 対象者
この記事は下記のような人を対象にしています。

– 駆け出しエンジニア
– プログラミング初学者
– null?空文字?なにそれ美味しいの?な人
– isset, empty, is_null…聞いたことあるけど、全部同じじゃないの?と思ってる人

## PHPのnull判定関数(isset, empty, is_null)の違い早見表
まずは結論から。

|| 値 | if($var) | isset | empty | is_null |
|—-| —- | —- | —- | —- | —- |
|1| $var=1 | true | true | false | false |
|2| $var=””; |

元記事を表示

word pressにてgoogle vision apiを使い画像の検索機能を作成する

word press(wp)環境下で、Google Cloud Vision Apiを使用して苦労した話
https://zenn.dev/crinoid/articles/f41a4a09753a71#11.-web_detection
こういった記事を見つけ、画像を検索するシステムを作成しようと思った。
公式:

https://cloud.google.com/vision/docs/detecting-web?hl=ja#vision_web_detection-python
#wpにて、apiを使用する
まず、apiの登録をする。こちらは結構情報があるので割愛。
downloadしたjsonを用意する。(image.json)

### vision clientを使う
結構情報が少なく苦労した部分ですね。特にPHPの情報が少ない….
参考:
https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/v0.165.0/vision/visionclient?method=annotate

※vis

元記事を表示

wpにてdebugする

“`wp-config.php
define( ‘WP_DEBUG’, true );
//ここをtrueにすることにより、デバッグ機能が動く

if ( WP_DEBUG ) {
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );
@ini_set( ‘display_errors’, 0 );
}
//ここを記述することにより、debug.logにエラーなどのlogが表示される。
そのため、検証が可能になる。
“`

参考:

https://www.nxworld.net/wp-debug-log.html

元記事を表示

【Laravel】バージョンを確認するときのコマンド

#はじめに
現在自分が使っているLaravelのバージョンを確認する方法を見ていきましょう。

#Laravelのバージョン確認方法

“`php:ターミナル
php artisan –version
“`

“`php:ターミナル
php artisan -V
“`

`Laravel Framework 5.8.38`のようにバージョンが表示されればOKです!

元記事を表示

オブジェクト指向プログラミング入門 for PHP programmers (3)〜継承編

## この記事について

この記事は[オブジェクト指向プログラミング入門 for PHP programmers (2)〜オブジェクト編 – Qiita](https://qiita.com/nunulk/items/286cf0da2d55d4c28ae4)の続編です。

前回「ひとつのアクション対してロジックが複数存在するケース」のところで続きを書きますと宣言していたので、書きました。

本記事では、基底クラス、抽象基底クラス、インターフェイス、トレイトあたりを扱います。

前回同様**「実際の設計・実装」とあまり乖離してない例**で解説してみようとする試みです。

## はじめに

今回は以下のトピックを取り上げます。

* 継承
* インターフェイス
* トレイト

これらのトピックを説明しようとすると長くなってしまうので、本文中でその都度説明していこうと思います。

### 環境

* PHP: 8.0.10

### 目次

1. 継承
2. インターフェイス
3. トレイト
4. 合成と委譲

## 1. 継承

`extends` キーワードを用いて、クラス間でデータや

元記事を表示

DeepL API の使用方法

auth_key と text, source_lang, target_lang を指定して GET or POST するだけ
参考: https://www.deepl.com/docs-api/introduction/

## シェルスクリプト

“`bash:deepl.sh
#!/bin/sh
DEEPL_API_URL=”https://api-free.deepl.com/v2/translate”
YOUR_API_KEY=”__DEEPL_API_KEY_HERE__”
SOURCE_TEXT=”
I’m a lumberjack and I’m OK.
I sleep at night, I work during the day.

He’s a lumberjack and he’s OK.
He sleeps all night and he works all day.

I cut down trees, I eat my lunch.
I go to the lavatory.
On Wednesdays I go shopping and have

元記事を表示

【初心者向け】LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第4回: ログイン&動画登録】

(この記事は作成中です。)

こんにちは。
ITエンジニアの濱辺(ハマベ)です。

今回は、ログイン&お気に入り動画登録機能を実装していきます。

↓第3回はこちら
[LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第3回】](https://qiita.com/dogabon20/items/4133b65637dc7f60530d)

↓こちらの画面定義書のものを作っていきます。
Youtube-Curation 画面定義所 (googleスプレッドシート)

## ログイン機能の実装

ログイン機能についても、Laravelに標準で備わっているファイルがあります。
基本機能は最初から用意されているんですね。

#### Route設定

下記3つのrouteを記述しましょう。

“`web.php
Route::get(‘login’, ‘Auth\LoginController@showLoginForm’)->name(‘login’);
Route::post(‘login’, ‘Auth\LoginController@login’)-

元記事を表示

【第九回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー

#前回までのあらすじ
[【第八回】コロナ禍だから何かできることを](https://qiita.com/STYLE-D/items/c32e9098a3948e8f32f2)

####実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。
![メイン.00_00_51_12.Still002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/cf85391e-aef8-5a59-0a1d-63d8e15412ce.jpeg)

今回が最後なので、まとめていきたいます。

#イメージ動画
まずは、第1回でも公開したイメージ動画です。