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

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

“the requested PHP extension zip is missing from your system”のエラー解決法

当方Macです。
terminalで以下を入力。

“`
pecl install zip
“`

これでいけました。

もし `pecl`コマンドがないといわれたら、homebrewでPHPをインストールしてみてください。

“`
brew install php@7.4
“`

再度、以下を入力

“`
pecl install zip
“`

元記事を表示

array_filterでarray?ってなったお話

## 前置き

* array_filter は何か便利そうだが、よく分かっていないので使っていないまま
* 使えるようになりたい!ので整理する

## array_filter とは?

> callback 関数によりフィルタ処理が行われた array の全ての要素を含む配列を返します。 callback 関数が TRUE を返した場合、 array の現在の値が結果の配列に入ります。 配列のキーは保存されます。
> 引用元 : [PHP_ array_filter – Manual](https://www.php.net/manual/ja/function.array-filter.php)

* ・・ざっくり「第二引数でtrueを返したものだけを配列として返す(それ以外は削除する。配列のキーはそのまま)」

## 使ってみた

“`
$ary = [0, 1, 2, 2, 3];

$tmpAry = (array_filter($ary, function($num){
return $num == 2;
}));

for($i=0; $i

元記事を表示

【XAMPP】PHPの制作物を任意のディレクトリで作りたい

## 3行で

– `httpd.conf` を開く
– `DocumentRoot` のディレクトリを書き換える
– localhostにアクセス

## 環境

Mac

## なぜ

自分の制作物を `/projects` とかのディレクトリ(フォルダ)にまとめているなどの理由で `/XAMPP/xamppfiles/htdocs` の下にPHPの制作物を入れるのがイヤだなぁという場合。

## `httpd.conf` の中身を書き換える

`/Application/XAMPP/xamppfiles/etc/httpd.conf` を開いて
`DocumentRoot` と書かれた部分を探す。
**230行目あたり**にあります。

“`conf
DocumentRoot “/Applications/XAMPP/xamppfiles/htdocs”
“`

ここを任意のディレクトリに書き換える。

“`conf
DocumentRoot “/Users/antk/projects/”
“`

など。
そしたらすぐ下にある

“`conf

元記事を表示

Laravel Eloquentの超基本的な使い方

自分用にまとめました

## モデルの取得
### 主キーで取得
“`sql

SELECT * FROM users WHERE id = 1 LIMIT 1;
“`
:point_down:

“`php
App\User::find(1);
“`

### 全件取得

“`sql
SELECT * FROM posts WHERE writer_id = 1;
“`
:point_down:

“`php
App\Post::where(‘writer_id’, 1)->get();
“`

### 1件だけ取得
whereの引数を配列にすれば、And検索できる

“`sql
SELECT * FROM favorites WHERE user_id = 1 AND post_id = 1 LIMIT 1;
“`
:point_down:

“`php
App\Favorite::where([
‘user_id’ => 1,
‘post_id’ => 1,
])->first();
“`

### Or検索
And検索は `->wher

元記事を表示

PSR-3: Logger Interface 読了

# PSRとは
– PSR(PHP Standards Recommendations)とは、[PHP-FIG](https://www.php-fig.org/)(PHP Framework Interop Group)が策定しているPHPコーディング規約を指す

# PSR-3: Logger Interface
[PSR-3: Logger Interface](https://www.php-fig.org/psr/psr-3/)

>This document describes a common interface for logging libraries.

>The main goal is to allow libraries to receive a Psr\Log\LoggerInterface object and write logs to it in a simple and universal way. Frameworks and CMSs that have custom needs MAY extend the interface for thei

元記事を表示

そろそろaws初めてみよか#3~RDSとの接続~

# はじめに

– [そろそろaws初めてみよか~まずは触れてみた~](https://qiita.com/imp555sti/items/08bef8d74985c2ea1f87)
– [そろそろaws初めてみよか#2~CodeStarによるコード修正からDeployまで~](https://qiita.com/imp555sti/items/9d04bfdbc3b89c1115f9)

前回CodeStarのIDE環境(Cloud9)からコード編集Deployまではうまく行きました。
今度はいよいよ失敗していた(=環境が整っていなかった)DB接続を試します。

# RDSの作成

RDSのコンソール画面の[データベースの作成]から作成します。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324255/6012e67e-65d2-cfe2-945d-95aa52532507.png)

今回はMariaDBにしてみました。
![02-1.png](https://qiita-image-

元記事を表示

ComposerでPlease provide a valid cache pathとなったときの対応スクリプト

https://qiita.com/ponsuke0531/items/f0b68546068ac8922665 を一発でできるスクリプトを書いた。

“`sh
$ /var/www/laravel# find config/ -type f | xargs grep storage_path \
| grep framework | sed -e ‘s/^.*storage_path//’ \
| tr -d “,\(\)'” | awk ‘{ print “storage/”$0 }’ | xargs mkdir -p
“`

元記事を表示

Moodle 3.8 マニュアル – 10000 以上のインストール

[原文](https://docs.moodle.org/38/en/Installations_10000_plus)

# 10000 以上のインストール

10000 人以上のユーザーのために Moodle のインストールをケータリングしている(あるいはしようとしている)のならここにあなたの学校の情報を追加してください。

内容

[1 アルゼンチン](#1-アルゼンチン)
[2 オーストリア](#2-オーストリア)
[3 カナダ](#3-カナダ)
[4 中国](#4-中国)
[5 コロンビア](#5-コロンビア)
[6 チェコ共和国](#6-チェコ共和国)
[7 フランス](#7-フランス)
[8 ドイツ](#8-ドイツ)
[9 インド](#9-インド)
[10 アイルランド](#10-アイルランド)
[11 ジャマイカ](#11-ジャマイカ)
[12 メキシコ](#12-メキシコ)
[13 ニュージーランド](#13-ニュージーランド)
[14 パレスチナ](#14-パレスチナ)
[15 フィリピン](#15-フィリピン)
[16 ポルトガル](#16-ポルトガル)
[17

元記事を表示

Use of undefined constant 〇〇 – assumed ‘〇〇’ (this will throw an Error in a future version of PHP)のエラー

# 問題
“`
Use of undefined constant 〇〇 – assumed ‘〇〇’ (this will throw an Error in a future version of PHP)
“`
というエラーに遭遇した。

# 解決法
英語で書いてあるとおり
上記の〇〇の部分を ” や ”” で囲っていないことが原因なので確認をする

元記事を表示

Moodle 3.8 マニュアル – メインページ

[原文](https://docs.moodle.org/38/en/Main_page)

# メインページ

Docs overview ► Moodle Docs 3.8

はじめよう

* Browse features
* Teacher quick guide
* Admin quick guide
* [インストールクイックガイド](https://qiita.com/intrajp/items/497f95814692cc60ae2f)

さらなるクイックガイド >>

* Manage your course
* Set up your course
* Add students
* Track progress
* Upload files

さらに先生へ >>

* Add activities
* Use assignments to assess
* Discuss in forums
* Test students with a quiz
* Peer-assess with a workshop

さらに活動へ >>

* What’s new
* For

元記事を表示

Moodle 3.8 マニュアル – 5000 以上のインストール

このページには、国ごとに5,000から10,000人のユーザーがいるMoodleサイトへの説明とリンクがあります。
内容

[1 ベルギー](#1-ベルギー)
[2 クロアチア(フルヴァツカ)](#2-クロアチアフルヴァツカ)
[3 フィンランド](#3-フィンランド)
[4 ナイジェリア](#4-ナイジェリア)
[5 スロベニア](#5-スロベニア)
[6 南アフリカ](#6-南アフリカ)
[7 アメリカ](#7-アメリカ)

#1 ベルギー

* KSGWL、Wetteren、Oost-Vlaanderen、10のmoodleインストールで5,000以上の100コース。 Moodleは、デュアル240 2gig RAMの単一サーバーで実行されます。私たちは学校で独自のホスティングを行っています。現在、2400人のアクティブユーザーがいます。

#2 クロアチア(フルヴァツカ)

* ザグレブ大学人文社会科学部-Omega sustav ucenja na daljinuは、学部全体のeラーニングシステムとして使用されています。現在、7.500以上のユーザーと1100以上のコースで1

元記事を表示

Laravel の make:model をいい感じに使いたい

こんにちはみなさん

Laravelは割と自由に書かせてくれるので、今作っている分を実装するには楽なんですが、全体として実装が微妙にブレることがあるので、後々変な不整合が出そうで怖くなります。
CakePHPはそのあたりをルールによって縛っていて、よりコード量が少なくなるほど彼らの提供する正しい実装になるようになっています。
まあ、何が言いたいかって言うと、自分の実装をあまり信用していないので、ある程度自動生成してもらえれば、やりやすいんじゃないかなぁって思った次第。

そんなわけで、Laravelで大事なコマンドである `make:model` に注目していきます。

# 三行で

– Laravel artisan コマンドの make:model でモデルを自動生成
– make:model のオプションで必要なファイルのガワを作れる
– モデルの名前空間を変えたい場合はコマンド自作して上書き

# make:model の基本

`make:model` は`Eloquent`モデルの自動生成コマンドです。

“`
php artisan make:model Post

元記事を表示

PHPの -> をいつもタイポするのでPHPStormのLive Templateを設定した話

PHPのメソッド呼び出しの `->` っていつもタイポしませんか?
`^>`(隣のキーを押してしまう) とか `-.`(シフトキー押せてない) とか。

というわけで PHPStrom の Live Template 機能を使って `-` からスペースキーで `->` にしてくれるというのをやってみました。

Preferences から Editor -> Live Templates で設定。

![貼り付けた画像_2020_02_09_15_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144064/33bcadf6-7862-939d-1ae2-85c5de561731.png)

新しく作るときは他のすでにあるテンプレートを参考にすると良さそうです。

もうこれでタイポしません。スペースキーは大きいのです。

元記事を表示

phpでgoogle homeを簡易音楽プレイヤー(1曲再生)に

#始めに

google home notifierというnodejsのアプリケーションを使うことで、google homeに言葉をしゃべらせたり、音声ファイルの再生ができたりします。いろいろと音声ファイルを試してみると、mp3だけでなく、wavや、m4aファイルも再生できることがわかりました。そこで、常時動作させているraspberry piのサーバにitunesでため込んだCDのファイルを置いて、再生するスクリプトをphpで作ってみました。しかし、当方Web周りのプログラミング経験は皆無であり、phpの本も持っていません。webの情報だけで簡単にできるところまでやってみました。

#参考サイト

[Google Homeにプッシュ発話をさせる、Raspberry Pi 3へのgoogle-home-notifierの最新導入手順](https://rooter.jp/alexa/how-to-setup-google-home-notifier/)

[gooogle homeで時報を知らせる](https://qiita.com/udon242/items/fef44cec7b2

元記事を表示

【PDO】PHPでデータベースに接続する方法【INSERT編】

>この記事では、《PHPでデータベースに接続する方法》について、
僕が学習した内容をまとめています。

– __PDOって何なの?__
– __PHPでデータベースにどうやって接続するの?__
– __データベースに登録したユーザーを検索する機能を実装したい__

こういった疑問に答えます。

__※本記事は、自分で学習したことのまとめ用として書いています。
尚、PHPの解説で誤った点があれば、スローして頂ければ喜んでキャッチしますのでお願い致します。__

#PDOの基礎
![school-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/255884/c8bd2bbd-b7dc-21bd-3752-c54ea54228b1.jpeg)

現在、PHPでデータベースに接続する際は、『PDO』を使う方法が主流です。そこで、PDOの基本的な使い方を解説していきます。

###概要:PDOとは?
『[PDO](https://www.php.net/manual/ja/class.pdo.php)』とは『P

元記事を表示

Moodle 3.8 マニュアル – 1000 以上のインストール

[原文](https://docs.moodle.org/38/en/Installations_1000_plus)

# 1000 以上のインストール

このページには 1000 から 5000 の間の Moodle サイトの国の記述とリンクがあります。
内容

[1 アルゼンチン](#1-アルゼンチン)
[2 オーストラリア](#2-オーストラリア)
[3 ベルギー](#3-ベルギー)
[4 カナダ](#4-カナダ)
[5 カタロニア](#5-カタロニア)
[6 チョコ共和国](#6-チェコ共和国)
[7 フィンランド](#7-フィンランド)
[8 イタリア](#8-イタリア)
[9 日本](#9-日本)
[10 オランダ](#10-オランダ)
[11 ノルウェー](#11-ノルウェー)
[12 スペイン](#12-スペイン)
[13 スイス](#13-スイス)
[14 イギリス](#14-イギリス)
[15 アメリカ合衆国](#15-アメリカ合衆国)

#1 アルゼンチン

* Universidad Austral-キャンパスバーチャルUAは2009年からMoodleを大学院

元記事を表示

そろそろaws初めてみよか#2~CodeStarによるコード修正からDeployまで~

# はじめに

[そろそろaws初めてみよか~まずは触ってみた~](https://qiita.com/imp555sti/items/08bef8d74985c2ea1f87)で紹介したようにawsの海をもがいている訳ですが(笑)

CodeStarの環境が整ったので試しにコードを編集しCommitしてDeployまで流れるか確認
その後、DBのmigrateをしてみようと思います。
結果からお伝えすると、
– コードCommitからDeployまではOK
– DBのmigrateはNG
でした。

# コード編集からDeployまで

Cloud9(IDE)を利用してコードを修正、それをGit CommitしてDeployまでの流れを確認しました。

CodeStarからプロジェクトを選択し、Cloud9を起動します。
暫くするとGitからPullしてきますので確認します。

今回は簡単にWelcomePageのタイトルを修正します。
修正と言っても「!!」を後ろにつけただけという(笑)

![01.png](https://qiita-image-store.s3.ap-nort

元記事を表示

PHP 上級試験範囲 PDFまとめ

# PDFライブラリ

`HaruPDF`は、オープンソースの外部ライブラリであるlibHaruを使用してPDFファイルを作成する。
`PDFlib`は、商用の外部ライブラリであるPDFlibを使用してPDFファイルを作成する。
`MPFPDF`と`TCPDF`はPDFを作成するクラスライブラリで、スクリプト中にインクルードするだけで使用できる。
この4つのPDFライブラリの中でTCPDFのみ、HTMLをもとにPDFを作成することができる。

# MPFPDF

## MPFPDFの簡単なPDFドキュメントの作成

**MPFPDFライブラリ**を使用して書いた簡単なPDFドキュメントのコード

“`php:php
// MBFPDFライブラリの読み込み
require(“../fpdf/mbfpdf.php”);

// MBFPDFクラスのインスタンスを生成
$pdf = new MBFPDF();

// マルチバイト対応のフォントを追加登録
$pdf->addMBFont(GOTHIC, ‘SJIS’);

// ページを追加
$pdf->addPage();

// 出力す

元記事を表示

Google AppEngine standard environment 2nd generation for PHP で環境の違いを判別する

# 目的

現在コードが **本番** / **開発環境** / **Unit Test** のうち、どの環境で実行されてるか実行時に知りたい。

# 環境

* 本番
* Google AppEngine
* 開発環境
* nginx + php-fpm
* Unit Test
* phpunit

# 解決方法

それぞれの環境に識別用の環境変数を定義して、それを参照します。

# 環境変数の定義方法

## 本番 (Google AppEngine)

`app.yaml` で環境変数を設定できます。

“`yaml:app.yaml
env_variables:
SERVER_ENV: prod
“`

## 開発環境 (Docker)

下記は `nginx` の設定ファイル `default.conf (でなくても良いけど)` の要約です。

“`sh:default.conf
location ~ \.php$ {
# ↓ サーバプロセスの環境変数を設定する
fastcgi_param SERVER_ENV dev;
}
“`

##

元記事を表示

とりあえずLaradockで

## 対象者

とりあえずインフラとかDockerとか慣れてなくてよく分からないけど、手早くLaravelを動かせればいいやーって人向けです。

## Laradockとは

公式サイトには「**Laradockは、Dockerに基づく完全なPHP開発環境です。**」とあります。

> **Laradock is a full PHP development environment based on Docker.**

公式

https://laradock.io/

## 前提

– パソコンがある
– Wifiがある

※あとDockerのいんすとーるとかはやっといてくださーい、gitも要るよー。

## 手順

### 1. ローカルでディレクトリを作成

– 任意のディレクトリ作成

“`
$ mkdir laradock
$ cd laradock/
“`

### 2. LaradockのリポジトリをClone

GithubからLaradockのリポジトリをクローン

“`
$ git clone https://github.com/Laradock/la

元記事を表示

OTHERカテゴリの最新記事