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

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

【初心者向け】 企業で活躍できるエンジニアになるためのロードマップ① Web編

##目的
みなさんエンジニアを目指して日々勉強していると思います!
勉強してるけど、これで本当に稼げるエンジニアになれるの??と不安な人がたくさんいるでしょう!
今回は未経験の人、プログラミング初心者 が
**「企業で活躍できるエンジニア」** **「どこでも成長できるエンジニア」**
になるためのロードマップを作成しましたので是非みていってください。

まずは、Webアプリケーションエンジニアを目指しましょう!

こちらに移行しました!

https://sg-report.com/loadmap1/

元記事を表示

PHP,Laravelでメモアプリを作った際の忘却録

##Dockerのインストールとdockerコマンドの使用
私が使用しているMacにdockerをインストールしてdockerコマンドを使えるようにするらしい

この前のrailsを使ったLINE-botもそうだが
何かの外部からのコマンドを使えるようにするには
外部からインストールするというのが方法のようだ

###Dockerとは
Dockerとは現在使用しているパソコンにnginx(最も高い稼働率を誇るサイトのうち約65%以上で広範囲に支持されている高信頼のWebサーバシステム)やMySQL(オープンソースのリレーショナルデータベース管理システム)などの開発に必要とされるソフトウェアを簡単にインストールして動かせる技術のこと。

###確認
そんなDockerをインストールして実際にターミナルでコマンド入力できるか確認

すると

“`
> docker-compose -v
unknown shorthand flag: ‘v’ in -v
“`

とでた

“`
docker-compose –version
Docker Compose version v2.0.0

元記事を表示

pmmp4をソースコードから実行する

# 環境
– windows

# やり方

## pocketmine
まずpocketmineをclone
`–recursive`つけないとあとから怒られるから注意
`git clone –recursive https://github.com/pmmp/PocketMine-MP.git`
そしたらこんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241492/4cd9825f-5ae3-25a7-3e71-8c1e5341ed4f.png)

## php8のbin
[ここ](https://dev.azure.com/pocketmine/PHP-Builds/_build?definitionId=3&_a=summary)から持ってきます
![Animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241492/44c741cb-6109-bc94-7646-1

元記事を表示

【Laravel】RefreshDatabaseでデータがロールバックされない問題を解決する

## 問題
LaravelでMySQLのDBテストを書いていたら、RefreshDatabaseでロールバックされないデータが発生した。

## 原因
テストで使っていたシーダー内でtruncate()を実行していたため。

## 解決方法
truncate()を使用しない。

## 状況の再現
たとえばhogeシーダーでは、truncate()で最初にテーブルデータの全件削除を行って、つぎにデータを投入している。

“`php:HogeTableSeeder.php
truncate();
DB::table(‘hoge’)->insert([‘name’=>’事前投入ほげほげ’]);
}
}

“`

下記のようなDBテストで、

元記事を表示

[PHP]指定月の月末日を取得

パラメーターで受け取った値(年と月)を元に、その年月の月末日を取得する。

“`php
#受け取ったパラメーター
$p_y=2021;
$p_m=9

#後のdate関数で’Y-m-t’フォーマット指定のため
$p_m=str_pad($p_m,2,0,STR_PAD_LEFT);

$last_date = date(“Y-m-t”, strtotime(“$p_y-$p_m-01”));
# $last_date => ‘2021-09-30’
“`

元記事を表示

PHP8でJITの設定方法

# はじめに
PHP8からJITというプログラムを高速に実行させる機能が導入されたようです。
その導入方法を残して起きます。

#方法
php.iniファイルに以下を追記

“`php.ini
zend_extension = opcache
opcache.enable = 1
opcache.enable_cli = 1
opcache.jit = tracing
opcache.jit_buffer_size = 128M
“`

ターミナルでphp -i | grepを実行し以下のようになっていたらOK

“`
opcache.jit => tracing => tracing
opcache.jit_bisect_limit => 0 => 0
opcache.jit_blacklist_root_trace => 16 => 16
opcache.jit_blacklist_side_trace => 8 => 8
opcache.jit_buffer_size => 128M => 128M
opcache.jit_debug => 0 => 0
opcache.j

元記事を表示

【フォーム】追加ボタンを押して関連した入力欄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

元記事を表示

OTHERカテゴリの最新記事