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

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

Laravelで使える都道府県のEnum

都道府県のEnumです。
よかったら使ってください。

“`PHP

元記事を表示

PHPで都道府県のConfigを作る

都道府県のConfigです。

“`PHP
‘北海道’,
‘2’ => ‘青森県’,
‘3’ => ‘岩手県’,
‘4’ => ‘宮城県’,
‘5’ => ‘秋田県’,
‘6’ => ‘山形県’,
‘7’ => ‘福島県’,
‘8’ => ‘茨城県’,
‘9’ => ‘栃木県’,
’10’ => ‘群馬県’,
’11’ => ‘埼玉県’,
’12’ => ‘千葉県’,
’13’ => ‘東京都’,
’14’ => ‘神奈川県’,
’15’ => ‘新潟県’,
’16’ => ‘富山県’,
’17’ => ‘石川県’,
’18’ => ‘福井県’,
’19’ => ‘山梨県’,
’20’ => ‘長野県’,
’21’ => ‘岐阜県’,
’22’ => ‘静岡県’,
’23’ => ‘愛知県’,
’24’ => ‘三重県’,
’25’ => ‘

元記事を表示

【Laravel】文字コードが意図していない形式になってしまったログを可視化する

【Laravel】文字コードが意図していない形式になってしまったログを可視化する方法.md

## はじめに
Laravelのログを見ていたときに、値が以下のような表示になっていました。
※例です。

“`
“\u826f\u54c1”
“`

今回はこちらの情報を可視化する方法を以前教えていただいたので、共有します。

### 対策
#### これまでのログの取り方
以下のような方法でログが出力されるように実行していました。

“`php:sample.php
\Log::info($query->select(“name”)->get());
“`

“`ログの出力結果(一部)
“\u826f\u54c1”
“`

これだとどんな中身なのかがわからないので、困ってしまいます。
以下のような形で実行したら、うまく行きました。

“`php:sample.php
\Log::info(“hoge”,[$query->select(“name”)->get()]);
“`

“`ログの出力結果(一部)
“ほげ”
“`
ご参考になれば幸いです。

元記事を表示

【PHP初心者】簡単!csvファイルをエンコードし取得

[SplFileObject](https://www.php.net/manual/en/class.splfileobject.php#splfileobject.constants)を用いて、簡単にcsvファイルの中身を取得できるため参考にしてください。

### サンプルコード

~~~php
/**
* @param string $file_name
* @param string $from_encoding
* @param string $to_encoding
* @return array
*/
public function csvFileImport(
string $file_name,
string $from_encoding = ‘SJIS-win’,
string $to_encoding = ‘UTF-8’
) {
// ファイルの取得
$csv = new \SplFileObject($file_name);
// フラグのセット
$csv->setFlags(\SplFileO

元記事を表示

[Laravel]Non-static methodのエラーの対応方法

# エラー文
“`terminal
Non-static method App\Models\Person::getData() should not be called statically.
“`
staticにしていないメソッドを呼び出せない。

# 対応方法
“`php:HelloController.php
use App\Models\Person;

class HelloController extends Controller
{
public function index()
{
$data = Person::getData();
}
}
“`
⬇️

“`php:HelloController.php
use App\Models\Person;

class HelloController extends Controller
{
public function index()
{
$person = new Person();
$data = $person

元記事を表示

Moodle 3.9 マニュアル – 参加レポート

[原文](https://docs.moodle.org/39/en/Participation_report)

# 参加レポート

特定のアクティビティの参加レポートは、管理者、教師、非編集教師(またはケイパビリティ・レポート/participation:viewを持つ他のユーザ)が作成することができます。

参加レポート。

・特定のアクティビティに誰が何回参加したかのリストを生成します。
・役割、グループ、アクション(閲覧または投稿)でフィルタリングできます。
・個人またはグループの学生(例えば、参加していない人)に簡単にメッセージを送ることができます。

クラシックテーマを使用している場合は、コースページのアクションメニュー(歯車アイコン)のレポートを介して、または管理ブロック(コース管理 > レポート > コース参加)を介して参加レポートを生成することができます。
![500px-ReportsMessaging.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/e6065bf6-

元記事を表示

Moodle 3.9 マニュアル – 活動レポート

[原文](https://docs.moodle.org/39/en/Activity_report)

# 活動レポート

# コース活動レポート
コース活動レポート

各アクティビティとリソース (および関連するブログエントリー) のビュー数を表示するコースアクティビティレポートは、管理 > コース管理 > レポート > アクティビティレポートで管理者、教師、非編集教師 (およびケイパビリティ[report/outline:view](https://docs.moodle.org/39/en/Capabilities/report/outline:view)を持つその他のユーザー) が閲覧することができます。

フロントページの活動レポートは、管理 > フロントページ設定 > レポート > 活動レポートで管理者と管理者が閲覧できます。

アクティビティ レポートがカバーする時間の長さは、管理 > サイト管理 > コース > バックアップ > 一般的なバックアップのデフォルトで設定した loglifetime によって決定されます。

アクティビティレポートは、コースの開始日から計

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:レポート

[原文](https://docs.moodle.org/39/en/Category:Report)

# カテゴリ:レポート

レポートに関するドキュメントページのインデックス。
カテゴリー「レポート」のページ

全67ページのうち、以下のページがこのカテゴリのページです。

[活動レポート](https://qiita.com/intrajp/items/7d37de341775aa4b1ca5)

[参加レポート](https://qiita.com/intrajp/items/6e25845c7a0cb922a62b)

A

[Activity report](https://docs.moodle.org/39/en/Activity_report) [(日本語訳:活動レポート)](https://qiita.com/intrajp/items/7d37de341775aa4b1ca5)
ad-hoc contributed reports
Analytics plugins
Automated course backup

B

Backup of user

元記事を表示

Moodle 3.9 マニュアル – コースレポート

[原文](https://docs.moodle.org/39/en/Course_reports)

# コースレポート

[!(http://img.youtube.com/vi/rQUz4Okbumk/0.jpg)](http://www.youtube.com/watch?v=rQUz4Okbumk)
コースレポート

・[コンピテンシー内訳レポート:(翻訳準備中)](https://docs.moodle.org/39/en/Competency_breakdown_report)
・[ログ:(翻訳準備中)](https://docs.moodle.org/39/en/Logs)
・[活動レポート:(翻訳準備中)](https://docs.moodle.org/39/en/Activity_report)
・[参加レポート:(翻訳準備中)](https://docs.moodle.org/39/en/Participation_report)
・[統計:(翻訳準備中)](https://docs.moodle.org/39/en/Statistics)
・[イ

元記事を表示

Moodle 3.9 マニュアル – コース完了状況ブロック

[原文](https://docs.moodle.org/39/en/Course_completion_status_block)

# コース完了ステータスブロック

[1 コースの完了状況を表示する](#1-コースの完了状況を表示する)
[2 コース完了状況ブロックの学生ビュー](#2-コース完了状況ブロックの学生ビュー)
[3 コース完了状況ブロックの教師ビュー](#3-コース完了状況ブロックの教師ビュー)
[4 ケイパビリティ](#4-ケイパビリティ)
[5 関連項目](#5-関連項目)

# 1 コースの完了状況を表示する

コース完了状況ブロックには、[コース完了](https://qiita.com/intrajp/items/229fd564a31a40ff5e8f)に向けて何が行われたかが表示されます。学生と教師の両方にこのブロックが表示されます。詳細」リンクをクリックすると、より詳細なレポートが表示されます。このレポートは学生と教師のためのチェックボックスの形でインタラクティブな要素を持つことができます。

# 2 コース完了状況ブロックの学生ビュー

学生はブロ

元記事を表示

Moodle 3.9 マニュアル – コンピテンシー

[原文](https://docs.moodle.org/39/en/Competencies)

# コンピテンシー

内容

[1 コンピテンシーとは何ですか?](#1-コンピテンシーとは何ですか)
[2 どのように設定するのですか?](#2-どのように設定するのですか)
[3 コースのコンピテンシー](#3-コースのコンピテンシー)
[3.1 手動でコースのコンピテンシーを評価する](#31-手動でコースのコンピテンシーを評価する)
[4 活動のコンピテンシー](#4-活動のコンピテンシー)
[4.1 活動コンピテンシーでの活動完了例](#41-活動コンピテンシーでの活動完了例)
[5 コンピテンシーのバックアップとリストア](#5-コンピテンシーのバックアップとリストア)
[6 統計](#6-統計)
[7 関連項目](#7-関連項目)

# 1 コンピテンシーとは何ですか?

コンピテンシーとは、学習者の特定の科目に関連したスキルの理解度や習熟度を表すものです。コンピテンシーベース教育 (CBE) は、コンピテンシーベース学習またはスキルベース学習としても知られており、学生がこ

元記事を表示

PHPで作るSlackBot(入門編)

#きっかけ
Slack上で特定のメッセージに対して返信してくれる簡易チャットボットを作ったのですが、シンプルなプロトタイプを作れるチュートリアル的な記事がなかったので書いてみました。特にPHPでの他記事は、Laravelというフレームワークでイベントの処理をしているものが多く、壁が高いように感じたので、簡単に作れるものを紹介しようと思います。
#完成品
今回紹介するのは、「サイコロ」と送信するとランダムに数字を返してくれるチャットボットの作り方です。
![slackbot.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404588/a72c3d76-e356-9b61-7efb-103a021f929d.gif)
あとで公開申請してみますが、今は自分のワークスペース内でしか動きません。この記事では自分のワークスペースで動くSlackAppの作り方を説明します。
#作り方
作り方の大まかな手順は、①アプリの作成、②アプリの設定、③実装です。必要なものとして、PHPファイルを置いておくサーバーとそれにアクセ

元記事を表示

最近話題の無限くら寿司用の料金計算アプリを作ってみた!

今回はWEBアプリを作ってみたので、そのアプリに関する紹介です!

↓作成したアプリ
[くら寿司料金チェッカー(https://jorublog.site/kurasushi-calc/)](https://jorublog.site/kurasushi-calc/ “くら寿司料金チェッカー”)

僕が通っている大学のすぐ横に数か月前にくら寿司ができたので、最近研究の合間にちょくちょく無限くら寿司にお世話になってます(笑)。
ですが、その際毎回スマホの電卓アプリで料金計算をしていたのですが税込み金額が、ランチの場合は500円、ディナーの場合は1000円超えているかどうかの計算が面倒くさいと感じてました。そこで今回、タップ操作だけで手軽にくら寿司の料金計算ができるWEBアプリを作ってみました!

#概要
くら寿司の料金計算をタップ操作だけで行えるようにしたアプリです。WEBアプリなので、以下のURLにアクセスするだけで使用できます。

#作成したくら寿司料金計算用WEBアプリ
[くら寿司料金チェッカー(https://jorublog.site/kurasushi-calc/)](htt

元記事を表示

GCEのCentOS8にPHP7.4をビルドしようとして苦労した話

## 結論

PHP7.4をconfigureオプション`–with-openssl`や`–with-pgsql`ありでビルドする場合、メジャー及びマイナーバージョンが同じなら、OSバンドルとソースビルドでインストールしたOpenSSLを共存させてはならない。

## 環境

– CentOS Linux release 8.2.2004 (Core) …GCPのCompute Engineを使用
– OpenSSL 1.1.1c FIPS 28 May 2019 …OSバンドル, 標準でインストール済

## OpenSSLのビルド

最新のOpenSSL(当時1.1.1h)をインストールしたく、以下のようにビルド&インストール

“`shell-session
$ sudo dnf install wget
$ wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
$ tar zxvf openssl-1.1.1h.tar.gz
$ cd openssl-1.1.1h/
$ sudo dnf instal

元記事を表示

Herokuにデプロイする時に躓いたこと

##はじめに
ポートフォリオサイトを作るための最初の一歩として
試しに静的サイトをherokuにデプロイしてみたら少し躓いたので
備忘録として残そうと思いました。
誰かの参考になれば嬉しいです。
***

##Herokuのアカウント作成とHerokuCLIのインストール
Herokuのアカウント作成は必要な情報を入力してメール認証するだけ。
https://www.heroku.com/

つぎにHerokuアプリをターミナルから直接簡単に作成、管理できるようにするため
HerokuCLIをインストール。
https://devcenter.heroku.com/articles/heroku-cli
ターミナルから以下を入力するだけでインストールできます。

“`
% curl https://cli-assets.heroku.com/install.sh | sh
“`

途中でパスワードを求められるけど、これは自分のPCにサインインするときのパスワード。

インストールできたら、以下のコマンドを入力して

“`
% heroku –version
“`

バージョン

元記事を表示

【Laravel】複数テーブルからあいまい検索をしたい

# 画像タイトルとハッシュタグからあいまい検索したい

こういうテーブルがある

![ddcb54066c7b1a424e7ddc913ef509db.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/413699/10f7f0fc-8fc4-9569-492b-ad2ffbab0a03.png)

画像テーブルとハッシュタグテーブルがあり、それを中間テーブルがつないでいる。
**多対多**の関係である。
自由入力の検索フォームがあって、画像タイトルとハッシュタグからあいまい検索ができるようにしたい
(例えば『あ』と検索すれば『から**あ**げ』というタイトルの画像と『#めぐり**あ**い』というハッシュタグのつけられた画像が出てくる)。

## これでいいのか

“`php:ImagesController.php
$result = Image::whereHas(‘tags’, function($q) use($keyword){
$q->where(‘name’, ‘iLIKE’,

元記事を表示

mac OSにPHP(MAMP)を設定する

#以下のリンクをクリック
https://www.mamp.info/en/downloads/

#赤枠で囲っている部分をクリック
![スクリーンショット 2020-11-04 23.24.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/f27dc0c1-dc26-4c2a-62d6-366d11988a61.png)

手順に沿ってインストールを実行します。

Applications/MAMP/conf/my.cnfにmysqlの設定をする。

![スクリーンショット 2020-11-04 23.28.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576859/459e9b0c-c395-1397-b5c3-a767f8733498.png)

#MAMPを開いてStart Serverを押す
![スクリーンショット 2020-11-04 23.34.52.png](https://qiit

元記事を表示

Lumenでファサードのエイリアスを登録する

# はじめに

Laravelをベースとした軽量フレームワークであるLumen。
軽くて速いため、小さなサービスなどで利用されることもありますが、
Laravelと同等の機能を使うには独自の設定が必要となります。

今回はLumenでファサード機能を実装する際の、
エイリアスの設定方法を記します。

※Lumenでのファサード実装の流れはまた後日記事を書こうと思います。

# エイリアスの登録

Facadeクラスは`app/Facades/Hoge.php`に作成されているとします。
`bootstrap/app.php`に、以下のコードを追記します。

“`php:bootstrap/app.php
$app->withFacades(true, [
App\Facades\Hoge::class => ‘Hoge’,
]);
“`

これにより、どこからでも
`\Hoge::method();`
のようにして`Hoge`の`method()`を呼び出すことができます。

`use App\Facades\Hoge;`
と名前空間を記述しなくてもいいのは楽ですね。

元記事を表示

privateの想像と違う(?)動作のお話

初書:2020/11/4
php:7.4.10

# 前書き
オブジェクトを使う際にほぼ間違いなく使うprivate。
今回は(個人的に)意外な性質を見つけたのでメモ。

# コード
先にコードを提示

“`php

class tes{
private int $a = 1232;
private function fc():int{
return $this->a;
}
public function func(tes $val) : int
{
return $val->fc() + 158;
}
}

$a = new tes();
$b = new tes();
var_dump($b->func($a));
“`
数字・関数名変数名は適当。
いや今気がついたけどこのコードだとfcの定義している意味が完全に無いじゃん。
まぁ支障はないので一旦放置。

簡単にコードの説明をしておくと、private変数`$a`を用意しておき、`fc`関数で取得可能。
また`func`関数では、tesクラスのイン

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:コンピテンシー

[原文](https://docs.moodle.org/39/en/Category:Competencies)

# カテゴリ:コンピテンシー

Moodleのコンピテンシー機能に関するページのリストです。
カテゴリー「コンピテンシー」のページ

全44ページのうち、このカテゴリには以下のページがあります。

[コンピテンシー](https://qiita.com/intrajp/items/10428c108cf5d9bfbfc7)

C

Capabilities/block/lp:addinstance
Capabilities/block/lp:myaddinstance
Capabilities/moodle/competency:competencygrade
Capabilities/moodle/competency:competencymanage
Capabilities/moodle/competency:competencyview
Capabilities/moodle/competency:coursecompetencyconfigure
Cap

元記事を表示

OTHERカテゴリの最新記事