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

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

PHPと呪術廻戦で俺が学んだオブジェクト指向

こんにちは!
最近PHPでオブジェクト指向に関するカリキュラムを学習中なのでアウトプットしていきたいと思います。

# オブジェクト指向
「ある役割を持ったモノ」ごとにクラスを分けて、モノとモノとの関連性を定義していくことでシステムを作り上げるシステム構成の考え方のことです。まあ考え方のことですね。
読んでてここのあなたの捉え方違う!!!!って思ったらガンガンコメントください。

## クラスとインスタンス
私はクラスは「概念」だと捉えております。それに対してインスタンスは「概念」に紐つけられた実物かと。
例えば、呪術師という「概念」であるならば、伏黒恵や虎杖悠仁は呪術師という概念に紐つけられた実物。
漏瑚さんは呪霊という概念に紐つけられた実物や。

クラスには概念の中で定義される情報があります。
これをプロパティと言うんや。
呪術師クラスなら、「人間」「呪霊を祓う者」
呪霊クラスなら、「人間の負の感情の集合体」「呪力を持たない人間には見えない」
といった特徴があります。

これに加えて、メソッドというものもクラスの中に定義できます。
これは実際の動き、「できること」というイメージでい

元記事を表示

【Laravel】implodeで配列を文字列にして取得

#はじめに
今回は`implode`を使って配列を結合し、文字列としてデータを取得する方法を見てみましょう。

#implode( )

“`php:Laravel
$collection = collect([
[‘id’ => 1, ‘name’ => ‘Taro’],
[‘id’ => 2, ‘name’ => ‘Hanako’],
]);

$collection->implode(‘name’, ‘:’);
“`

とすると、`Taro:Hanako`という文字列になります。

値が数字や文字列だけなら

“`php:Laravel
collect([‘Taro’,’Hanako’])->implode(‘:’);
“`
と簡潔に記述することができます。

#おわりに
implodeとは反対の動きをする、つまり、文字列を配列に変換する`explode`というものもあります。

元記事を表示

PHP

# 変数 
+ 変数=箱のようなもの
+ 変数名の前に**$**をつける
+ 変数を利用することによって何回も利用できる。

“`csharp:変数の定義
$name =”レバテック太郎”;
$age = 20;
“`
# 定数
+ 変数と異なり、中身を変えたくない場合に利用する。
+ データを上書きしたくないなどの大事なデータを扱う際に利用する。

“`csharp:定数の定義
difine = (“address”,”123-000″);
“`
# 配列
+ 棚のようなもの

“`csharp:配列の定義
$fruits = [“apple”,”banana”,”melon”];
“`
# 連想配列
+ データ名とデータ

“`csharp:連想配列の定義
$fruits = [“apple” => 100,”banana” => 150,”melon” => 200];
//appleがキー(データ名)、数字がデータ
“`

# 比較演算子(==と===)の違い
+ == 、!=の場合、左辺と右辺が同じであれば、左右の型が同じになるように変換される。
+ ===、

元記事を表示

はじめてのLaravel8

#はじめに
今行きつけのアミューズメントカジノでランキングバトルなるものをやっています。
そこのオーナーが成績を紙で記録し手動で計算していたのでVBAで計算を自動化したものを作りました。

これってWeb上で成績をゲストも閲覧できたらいいのでは?と思い、
10年前にWebプログラマをしていた経験を活かしPHPで簡単なランキングを集計閲覧できるものを作ろうと思いました。

規模も小さいのでPHPで1から作ったほうが楽な気がしますが、せっかくなので今流行りのフレームワークを使って開発していきたいと思います。
10年前はCakePHPが主流だったんですが今はLaravelが主流というか勢いがあるんですね。ということでLaravelを使って1から勉強していきます。
その備忘録となります。

#勉強方法
「Laravel 入門」と検索すればいくらでも勉強できるサイトが存在しますが、自分は書籍から入るのが好きなので本を買いました。

+ 「PHPフレームワーク Laravel入門第2版」

書籍ではLaravelのバージョンは6をベースに書かれていますが最新版のバージョン8でやっていきます。
20

元記事を表示

【PHP】PHPでコントロールブレイク

#やりたいこと

同じ名前のレコードのデータがあったら、それぞれデータが異なるので復数欲しい

※名前が昇順である前提

“`PHP
‘田中’, ‘japanese’ => 83],
[‘name’ => ‘田中’, ‘japanese’ => 34],
[‘name’ => ‘渡部’, ‘japanese’ => 62],
[‘name’ => ‘品川’, ‘japanese’ => 23],
[‘name’ => ‘滝谷’, ‘japanese’ => 93],
[‘name’ => ‘川原田’,’japanese’ => 55],
[‘name’ => ‘一色’, ‘japanese’ => 27],
[‘name’ => ‘一色’, ‘japanese’ => 89],
[‘name’ => ‘高橋’, ‘japanese’ => 555],
];

$abc = $data[0][‘name’];
$ccc[] = $data[0][

元記事を表示

【PHP】Qiita デイリー LGTM 数ランキング【自動更新】

# 他のタグ

[`AWS`](https://qiita.com/items/8c4aeec4fc98e4b1ba0e) [`Android`](https://qiita.com/items/9c6bf21a9880e242a0d6) [`Docker`](https://qiita.com/items/70aa655b580ed4f91756) [`Git`](https://qiita.com/items/36cfb2318aabe8b3f8df) [`Go`](https://qiita.com/items/16809f8444e0329bed8a) [`iOS`](https://qiita.com/items/da7fabcf41ed103528ae) [`Java`](https://qiita.com/items/9003b8beb47a46292028) [`JavaScript`](https://qiita.com/items/31e7365a838b890f7cc3) [`Linux`](https://qiita.com/items/7bcae94b268b

元記事を表示

【初心者向け】 企業で活躍できるエンジニアになるためのロードマップ① 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

元記事を表示

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

# 環境
– windows

# やり方

## pocketmine
まずpocketmineをclone。cloneするブランチやタグを指定してあげてください
`–recursive`つけないとあとから怒られるから注意
`git clone –recursive https://github.com/pmmp/PocketMine-MP.git -b [ブランチ名(4.0.0-BETA5とか)]`
そしたらこんな感じ
![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-northea

元記事を表示

【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ページを動的に生成できるサーバーサイド

元記事を表示

OTHERカテゴリの最新記事