- 1. “the requested PHP extension zip is missing from your system”のエラー解決法
- 2. array_filterでarray?ってなったお話
- 3. 【XAMPP】PHPの制作物を任意のディレクトリで作りたい
- 4. Laravel Eloquentの超基本的な使い方
- 5. PSR-3: Logger Interface 読了
- 6. そろそろaws初めてみよか#3~RDSとの接続~
- 7. ComposerでPlease provide a valid cache pathとなったときの対応スクリプト
- 8. Moodle 3.8 マニュアル – 10000 以上のインストール
- 9. Use of undefined constant 〇〇 – assumed ‘〇〇’ (this will throw an Error in a future version of PHP)のエラー
- 10. Moodle 3.8 マニュアル – メインページ
- 11. Moodle 3.8 マニュアル – 5000 以上のインストール
- 12. Laravel の make:model をいい感じに使いたい
- 13. PHPの -> をいつもタイポするのでPHPStormのLive Templateを設定した話
- 14. phpでgoogle homeを簡易音楽プレイヤー(1曲再生)に
- 15. 【PDO】PHPでデータベースに接続する方法【INSERT編】
- 16. Moodle 3.8 マニュアル – 1000 以上のインストール
- 17. そろそろaws初めてみよか#2~CodeStarによるコード修正からDeployまで~
- 18. PHP 上級試験範囲 PDFまとめ
- 19. Google AppEngine standard environment 2nd generation for PHP で環境の違いを判別する
- 20. とりあえずLaradockで
“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の超基本的な使い方
自分用にまとめました
## モデルの取得
### 主キーで取得
“`sqlSELECT * 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