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

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

Laravel8 CRUD処理を使った投稿アプリを作成する その2 投稿入力画面の作成

# 目的

– 投稿アプリの投稿入力画面の作成を行う

# 実施環境

– 筆者の実施環境を記載する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする]() |
| Laravel バージョン | 8.6.0 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を

元記事を表示

[Codewars] Stop gninnipS My sdroW!

## 概要

Codewarsの問題 `Stop gninnipS My sdroW!` の回答の復習とベストプラクティスをまとめる個人メモです。

## 問題

>Write a function that takes in a string of one or more words, and returns the same string, but with all five or more letter words reversed (Just like the name of this Kata). Strings passed in will consist of only letters and spaces. Spaces will be included only when more than one word is present.
Examples: spinWords( “Hey fellow warriors” ) => returns “Hey wollef sroirraw” spinWords( “This is a test”) => returns “

元記事を表示

Moodle 3.9 マニュアル – コースのダウンロード

[原文](コースのダウンロード)

内容

[1 コースのダウンロード](#1-コースのダウンロード)
[2 インストール](#2-インストール)
[3 ダウンロードオプション](#3-ダウンロードオプション)
[4 ファイルのダウンロード](#4-ファイルのダウンロード)
[4.1 コースフィールド](#41-コースフィールド)
[4.2 コースの上書き](#42-コースの上書き)

# 1 コースのダウンロード

管理者は、全コースのリストをカンマ区切りの値形式(CSV)またはExcel 2007のファイル形式にダウンロードすることができます。ウェブインターフェースに加えて、admin/tool/downloaddata/cli/downloaddata.phpにあるコマンドラインツールもあります。

コースをダウンロードするには

1. 管理画面 > サイト管理 > コース > コースのダウンロードに進みます。
2. ダウンロードオプションを選択し、ダウンロードボタンをクリックします。

![600px-download_courses_v3.0.4_2.png](https:/

元記事を表示

Moodle 3.9 マニュアル – ユーザーをアップロードする

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

# ユーザーをアップロードする

内容

[1 テキストファイルによるユーザーのアップロード](#1-テキストファイルによるユーザーのアップロード)
[2 アップロードユーザーファイルのファイル形式](#2-アップロードユーザーファイルのファイル形式)
[2.1 テスト用の有効なアップロードファイル](#21-テスト用の有効なアップロードファイル)
[3 含めることができるユーザーフィールド](#3-含めることができるユーザーフィールド)
[3.1 必須フィールド](#31-必須フィールド)
[3.2 パスワード](#32-パスワード)
[3.3 オプションのユーザーフィールド](#33-オプションのユーザーフィールド)
[3.4 カスタムプロファイルフィールド名](#34-カスタムプロファイルフィールド名)
[3.5 特殊なユーザー変更フィールド](#35-特殊なユーザー変更フィールド)
[3.6 登録フィールド](#36-登録フィールド)
[3.7 コホートメンバーの割り当て](#3

元記事を表示

【PHP】array_keysとarray_flipの速度を比較してみた

タイトルの通り、速度検証をしたので、どうやってやったかとその結果を記載します。

# 忙しい人向け結論
array_keysとarray_flipだと、`array_keysのほうが速い`

# 本題
## 経緯

あー特定の文字列が配列のキーに含まれているかチェックしたいなー

in_arrayだと判定対象はvalueだから違うよなー

そうだ!array_flipでkeyとvalueを逆にすればいいんだ!
[array_flipの公式ドキュメント](https://www.php.net/manual/ja/function.array-flip.php)

“` php

$array = [
‘a’ => ‘あ’,
‘i’ => ‘い’,
‘u’ => ‘う’,
‘e’ => ‘え’,
‘o’ => ‘お’,
];

$needle = ‘a’;

if (in_array($needle, array_flip($array), true)) {
// 処理
}
“`

よしできた!(*‘∀‘)

あれ、そういえばarra

元記事を表示

Moodle 3.9 マニュアル – コースブロック

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

# コースブロック

コースブロックでは、ログインしているユーザーが受講しているすべてのコースを一覧表示し、その間を移動することができます。ブロックのタイトルは「マイコース」と表示され、ワンクリックでコースのホームページにアクセスできます。

![CoursesBlockNew.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/e6046fb7-b774-9b12-5271-99e74aa0d0db.png)
CoursesBlockNew.png

Moodleサイト内には「すべてのコースを表示する…」オプションもあります。これによりコースタイプのリストが表示され、クリックするとそのカテゴリ内のすべてのコースが表示されます。このページにはすべてのコースを検索するオプションもあります。

Moodleサイトに新規登録したばかりで、どのコースも履修していない場合、ブロックタイトルに「コースカ

元記事を表示

Moodle 3.9 マニュアル – コースのリストア

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

# コースのリストア

内容

[1 コースのバックアップをリストアする](#1-コースのバックアップをリストアする)
[2 コース・カテゴリ管理画面からのリストア](#2-コースカテゴリ管理画面からのリストア)
[3 一般的なデフォルトのリストア](#3-一般的なデフォルトのリストア)
[4 コースのリストアのケイパビリティ](#4-コースのリストアのケイパビリティ)
[5 関連項目](#5-関連項目)

# 1 コースのバックアップをリストアする

コースのバックアップファイル(.mbz)は、許可された既存のコース内からリストアすることができます。復元プロセスでは、新しいコースとして復元するか、既存のコースに復元するかを選択できます。

[!(http://img.youtube.com/vi/0x5X4YcCcz4/0.jpg)](http://www.youtube.com/watch?v=0x5X4YcCcz4)
コースリストアの概要。(説明はMoodleCl

元記事を表示

【Laravel】初めてのマイグレーション

Laravelでのモデル作成とマイグレーションファイル編集に関する備忘録。

# ■ モデル作成
– [Laravel公式リファレンス](https://laravel.com/docs/5.2/migrations#generating-migrations)
– **make:model** は、Eloquentモデルの生成コマンド。

“`php:モデル作成(※モデル名は、大文字から始まる単数形)
% php artisan make:model モデル名 // app直下にファイル生成
% php artisan make:model Entities/モデル名 // app/Entities下にファイル生成される
% php artisan make:model モデル名 -m -c -r // モデル、マイグレーション、コントローラーを一気に生成

% php artisan make:model -h // どんなオプションがあるか?
“`
– マイグレーションクラスは、2つのメソッドがある(up、d

元記事を表示

Laravel アウトプット

# npm run watch-poll
npm run watch-pollは、Laravelをインストールした際に初めから存在するpackage.json内に定義されているコマンドのひとつです。

このコマンドは、各JavaScriptファイルを常に監視し、編集されたJavaScriptが保存されると自動的にLaravel Mixによるトランスパイルを行います。
JavaScriptの編集・保存の都度、手動でトランスパイルする必要が無くなり、開発を効率化します。
なお、npm run watch-pollを起動中のターミナルでは他のことはできませんので、何か他のコマンドを実行したい場合は別のターミナル画面を使うようにしてください。
また、npm run watch-pollを終了させる場合はcontrol + cを押してください。

# clickLikeメソッド
![スクリーンショット 2020-10-17 16.35.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663122/9e86bb

元記事を表示

[PHP]データ記述言語と配列の対応

#基本的なこと

PHPにはデータの格納手段に配列(Array)というものがあります。配列については山ほど資料があるので`Array やりたいこと`で調べたらすぐに出てきます。それぐらいに汎用性に優れ、多くの場面で使用されています。
そんな配列データを、ファイルなどに保存する機会は少なくありません。
そんなとき、読み込んだ時に元の配列のデータと同じにするために、**データ記述言語**が存在します。
データ記述言語とは主に`JSON`や`YAML`などのことです。データを指定の形式通りに記述し保存することで、その形式に従って読めば保存したデータを完全に得ることができます。

#配列の構造について理解する

配列は同じ用途の複数の「値」を1つのグループとして扱うためにあります。しかし、その値をさらに分類しておきたい場合は、分類名を「キー」としてその中にデータを格納することがあります。
キーがある配列は特別に「連想配列」といいます。PHPでは連想配列と普通の配列を区別せずに、「Array」として扱います。

##キー

キーは**要素を並列する場合には省略**します。その場合、処理上ではキー

元記事を表示

testareaの初期値(Value)が反映されない時の解決法

##エラー状況
例えば下記のような入力フォームにinputエリアとtextareaエリアを実装したとする。

Todo

更新して再度開いた時に前回、更新した内容が表示できるようにしたい。
しかしinputエリアは通常に表示されているが、textareaは表示がされていない状況。

Todo

##修正作業
コードを確認してみると

“`

元記事を表示

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

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

内容

[1 掲載されているコースの順番](#1-掲載されているコースの順番)
[2 コース連絡先](#2-コース連絡先)
[3 拡張コース名の表示](#3-拡張コース名の表示)
[4 ページあたりのコース](#4-ページあたりのコース)
[5 サマリー制限のあるコース](#5-サマリー制限のあるコース)
[6 コース要約ファイルの制限とコース要約ファイルの拡張子](#6-コース要約ファイルの制限とコース要約ファイルの拡張子)
[7 関連項目](#)

# 1 掲載されているコースの順番

フロントページに表示されるコースの順番は、管理者が管理 > サイト管理 > コース > コースとカテゴリの管理で設定することができます。

# 2 コース連絡先

管理者は、管理 > サイト管理 > 外観 > コースで、コースの連絡先として表示されるユーザーを変更することができます。

選択された役割を持つユーザー(例:教師)は、コースの説明に表示されます。

![Course_list.png](ht

元記事を表示

PHPマニュアル「参照カウント法の原理」ページのサンプルコード出力が,マニュアル記載のものと異なる

## 発生した問題

### マニュアルと,手元のコードの実行結果が食い違う

以下のコードです.
https://www.php.net/manual/ja/features.gc.refcounting-basics.php

“`

“`

マニュアル記載の出力は以下のようになります.

“`
a: (refcount=2, is_ref=0)=’new string’
“`

実際の出力は以下のようになります.

“`
a: (interned, is_ref=0)=’new string’
“`

refcountの数値の変動を確認したいのに,これでは困ります.

## 原因

Xdebugのバージョンアップに伴う仕様変更とのことです.
手元のXdebugのバージョンを確認すると,”2.9.7-dev” でした.

“`
$ php -r “var_dump(phpversion(‘xdebug’));”
Command line code:1:
string(

元記事を表示

Moodle 3.9 マニュアル – ユーザーの追加

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

ユーザは多くの方法でMoodleサイトに追加することができます。ユーザアカウントがサイト上に作成された場合、このプロセスは[認証](https://docs.moodle.org/39/en/Authentication)と呼ばれ、ユーザがコースに参加する場合、このプロセスは[登録](https://docs.moodle.org/39/en/Enrolment)と呼ばれます。通常、管理者のみがユーザをサイトに追加することができます。コースの教師はコースに学生を追加することしかできず、サイトにユーザーを追加する権限はありません。(あなたが教師で、コースに学生を追加する方法をお探しの場合は、[学生を追加する](https://docs.moodle.org/39/en/Add_students)お読みください)

# ユーザーが自分でサイトにサインアップします。

あなたのサイトに独自のアカウントを作成したい場合は、[電子メールベースの自己登録](https://docs.moodle.org/

元記事を表示

staticキーワードをつけた関数内定義変数をunsetするとどうなるか

結構面白い挙動になりました.

“`
If a static variable is unset() inside of

元記事を表示

PHP+MySQLで作成したアプリをHerokuでデプロイする手順(workbenchの設定まで)

##概要
初心者がPHPで作成したwebアプリをHerokuでデプロイするまでの過程をまとめてみました。

##環境
 【言語】: HTML、CSS(レスポンジブ未対応)、PHP 7.3.9、JavaScript、jQuery2.2.2
 【DBMS】: MySQL 5.7.26
 【フレームワーク】: なし
 【開発環境】: MacOS Catalina 10.15.5
 【バージョン管理】: Git 2.24.3
 【本番環境】: Heroku

##大まかな流れ
###1.Gitと連携
###2.Heroku操作
###3.DB情報の移行(workbench操作)
###4.ライブラリの追加
###5.Herokuへpush

#1.Gitと連携
※既にGithubにリポジトリを作成している場合はの過程はスキップ

①新規リモートリポジトリを作成

②デプロイするディレクトリに移動し、ローカルリポジトリの作成↓

“`
$ git init
“`

③add~push↓

“`
$ git add.
$ git commit -m ‘commit’
$ git pus

元記事を表示

【PHP】今日、Laravel始めました

ビルトインサーバーでのLaravel導入についての備忘録。
MacのPHPバージョンアップ、Laravel導入、DB(MySQL)への接続まで。

# 環境構築(Mac)
– 現在のPHPの最新バージョン 7.4に、Homebrewを使って、バージョンアップ。

“`:PHPのバージョンアップ
% php -v // Macに入ってるバージョン確認
PHP 7.3.11 …
% brew search php@7 // Homebrewコマンドで、インストールができるPHP7系を検索してみる
=> Formulae
php@7.2 php@7.3 php@7.4
% brew install php@7.4 // Homebrewを使って、7.4 をインストール
Updating Homebrew…
:

// インストールが完了したら、PATHを通す設定を上書きする
% echo ‘export PATH=”/usr/local/opt/ph

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:サイト管理

[原文](https://docs.moodle.org/39/en/index.php?title=Category:Site_administration)

# カテゴリ:サイト管理

サイト管理設定に関する情報を含むドキュメントページのインデックス。
サブカテゴリ

このカテゴリには、合計2つのサブカテゴリのうち、以下の2つのカテゴリがあります。

Accounts

S

Security

カテゴリ「サイト管理」のページ

全219ページのうち、次の200ページがこのカテゴリのものです。

[コースブロック](https://qiita.com/intrajp/items/8fa8c6ca0611ba62c6c9)
[コースリスト](https://qiita.com/intrajp/items/f78b469a2412362bbf01)

[ユーザーの追加](https://qiita.com/intrajp/items/f705063c320282799d38)
[ユーザーをアップロードする](https://qiita.com/intrajp/items/

元記事を表示

LaravelのアプリをLaravelのバージョンを指定して作成する

# 目的

– Laravelアプリを作成する最にバージョンを指定して作成する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Laravel バー

元記事を表示

Moodle 3.9 マニュアル – コースのバックアップ

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

コースのバックアップを使用することで、コースの一部または全部を保存することができます。通常、サイト管理者はサイト全体の自動コースバックアップのスケジュールを設定します。教師は安全に保存するため、または他のMoodleサイトで使用するために、バックアップを作成するか、既存のバックアップをダウンロードすることができます。

[!(http://img.youtube.com/vi/eNe6kRv2ndI/0.jpg)](http://www.youtube.com/watch?v=eNe6kRv2ndI)
コースのバックアップ。Moodle 3.7

内容

[1 コースをバックアップするには](#1-コースをバックアップするには)
[2 ユーザー情報の匿名化](#2-ユーザー情報の匿名化)
[3 非同期コースバックアップ](#3-非同期コースバックアップ)
[4 管理者のためのCLI経由のバックアップ](#4-管理者のためのcli経由のバックアップ)
[4.1 オプション]

元記事を表示

OTHERカテゴリの最新記事