- 1. PHP 変数を文字列中で展開する
- 2. PHP 変数に格納された値の足し算あれこれ
- 3. Moodle 3.8 マニュアル – Web ホストを見つけ選択する
- 4. PHP初心者の小さな気付き2019
- 5. 恐竜図鑑登録ページ1(恐竜図鑑になりたいの〜!の概要)
- 6. Laravel6.0でphpコンテナに入れない
- 7. macOS MojavにPHP-5.6.30をインストール
- 8. 【Laravel5.5】メール送信にホワイトリストチェックをいれるよ
- 9. 【Laravel】バリデーションを利用しよう
- 10. PHPでSpotify APIを使う
- 11. 【Laravel】自画面遷移時にセレクトボックスの選択値を保持させる
- 12. 【Laravel】Eloquentモデルで使用カラムをカスタマイズする
- 13. 【Laravel】DBの値をもとにViewに画像を表示させる
- 14. きっと正しくないレンタルサーバーの作り方 Vol.2 -全体の設計
- 15. 【PHP】引数の初期値を設定した関数|優先度(初期値 < 引数)
- 16. 【Laravel】ミドルウェアを利用しよう!
- 17. Laravel + Amazon Cognitoで、ユーザー新規登録を試してみた
- 18. PHPからS3にファイルアップロードをlocalstackを使って開発してみた
- 19. 【Laravel】Homesteadで複数アプリを管理しよう!
- 20. 配列要素を削除するとインデックスが残ったり残らなかったりする
PHP 変数を文字列中で展開する
# 目的
– 変数に格納された内容を文字列中で展開して表示する方法をまとめる
# 書き方の例
– 下記に変数Aに格納された内容を文字列中で展開して表示する処理を記載する。
“`php
echo “任意の文字列{$変数A}任意の文字列”;
“`# より具体的な書き方の例
– 下記に変数`name`に格納された内容を文字列中で展開して表示する処理を記載する。
“`php
//変数に内容の格納
$name = “みりを”;echo “おはようございます{$name}さん”;
“`
PHP 変数に格納された値の足し算あれこれ
# 目的
– PHPの変数に格納された値の足し算で省略方法をまとめる。
# 変数Aに格納された数値に任意の値を足し、再度変数Aに格納する。
– 通常通り記載すると下記のようになる。
“`php
$変数A = $変数A + 任意の値;
“`– 省略形を記載する。
“`php
$変数A += 任意の値;
“`# 変数Aに1を足し、再度変数Aに格納する。
– 通常通り記載すると下記のようになる。
“`php
$変数A = $変数A + 1;
//前述の省略を行った時
$変数A += 1;
“`– 省略形を記載する。
“`php
$変数A++;
“`– 前述の省略形の実行と同時に`echo`を実施する際の差異
“`php
//echoした後に+1する
echo $変数A++;//echoする前に+1する
echo ++$変数A;
“`
Moodle 3.8 マニュアル – Web ホストを見つけ選択する
[原文](https://docs.moodle.org/38/en/Finding_and_Selecting_A_Web_Host)
内容
[1 目的](#1-目的)
[2 Moodle のインストールを計画すること](#2-moodle-のインストールを計画すること)
[2.1 役割とスタッフをつくること](#21-役割とスタッフをつくること)
[3 あなたは誰ですか? Moodle インスタンスのタイプ](#3-あなたは誰ですか-moodle-インスタンスのタイプ)
[3.1 教室の先生、インストラクター、教授、あるいはコース作成者](#31-教室の先生インストラクター教授あるいはコース作成者)
[3.2(限定的な)Moodle の管理者](#32限定的なmoodle-の管理者)
[3.3 上級の Moodle 管理者](#33-上級の-moodle-管理者)
[3.4 サーバ管理者](#34-サーバ管理者)
[4 ホストのタイプ](#4-ホストのタイプ)
[4.1 MoodleCloud](#41-moodleCloud)
[4.2 Moodle の完全な管理/メンテナン
PHP初心者の小さな気付き2019
###はじめに
慣れている人にとっては、「別に」だけど、初心者や業務で全く使わない人が
チャレンジした時に「ゴリゴリに書いているあの処理」の場所にどうやっても行きつかない。
というかH1タグに書いた「hello world」だけしか表示されない。
そんな経験はないだろうか?そんな間違いやすかった点を幾つかまとめてみた。
さほど年齢も重ねていないのに「仕事に関係ないし、やったことのない事は若いもんに任せて(丸投げして)」という人をチラホラ見かける。
(というか私より年下だよね?みたいな人達もいる)そんなことを言っていいのは__[人生50年…]という名台詞を残した織田信長だけだ__
と密かにおもっている。
初心者中の初心者の小さな気づきを残そうと思う。#1.開始タグ
恐竜図鑑登録ページ1(恐竜図鑑になりたいの〜!の概要)
#恐竜図鑑が作りたい
##1.はじめに(ここに至る経緯)
年内で、とりあえず5本の記事は書きたい。
4本で終わらせるのは、なんとなくキリが悪い。
laravelにも手を出そうとしているのだが、記事をまとめるのに時間がかかりそう。
何かないかと探したところ見つかったのが、恐竜ゲームの動画だった。
そこでこんなタイトルで始めているのだが。。。
__電波なタイトルには若さが必要なので、[この時点で私の年齢は17歳]ということにする。____このタイトルは実は割と奥が深い。__
仕事はどこの会社でも必要になっているシステムを創ってますというと聞こえはいいけど、
__「やってみると微塵も興味がなかったり」__する。興味がないからといっても、仕事なのでそこは割り切って取り組んでいる。
そんな私のストレス解消でつい最近までハマっていたゲームがある。
暇になったら再開するつもりだ。ジュラシックワールドアライブというゲームで、ゲットした恐竜のDNAを合成させて
さらに強い恐竜を作ってバトルするゲームだ。こんなのが作成できるゲームです。
![IMG-2394_mini.png](htt
Laravel6.0でphpコンテナに入れない
Laravel6.0にAuth機能を追加したあとphpコンテナに入れなくなりました。
解決するまで道のりをまとめました。### Laravel6.0にAuthを追加する方法はこちら
[https://qiita.com/yknsmullan/items/0f04f8098f1a87ffece8](https://qiita.com/yknsmullan/items/0f04f8098f1a87ffece8)
#####docker-compose up -dでphpに入れない
“`
sample_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
sample_nginx_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
sample_php_1 sh -c /usr/src/wait-for-it … Exit 1
“`
psでupになっていなければ入れていま
macOS MojavにPHP-5.6.30をインストール
## 結論
結論を先にいると、Linuxでやるのをオススメです。
どうしでも、macOSでやりたい場合、最後の情報をご参照ください。## 事件の時系列ログ:
1. 古いPHP-5.6.30システムをメンテナンスしているんですが、ローカルからデプロイしたところ、デプロイツール[dep](https://deployer.org) が2019年12月の下旬に動けなくなりました。
2. `php -v` したら、エラーになりました。
“`dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib“`
3. あれっ、いつのいつの間に、phpがこけた、しかも、openssl関連、そういえば、最近`brew update & brew upgrade`を実行したなあ。これと関係あるかもしれません。
4. `openssl version`したら、`OpenSSL 1.1.1d 10 Sep 2019`、もう1.1になっている、そうか、古いphpが古いopensslを参照しているので、これでエラーか。
【Laravel5.5】メール送信にホワイトリストチェックをいれるよ
# まえがき
開発環境とかはMailHogをつかって実際に送信しないようにするけど、
ステージングや検証環境みたいな、
**自分や自社宛のだけは実際に送信したい**
てときにホワイトリストを作って判別することがあります。
で、先日もLaravelを使っててそんな状況になったので、対応のメモです。## ツール
– XAMPP v3.2.4
– PHP 7.3.8
– Laravel 5.5.45## メール送信処理
今回は、 `Illuminate\Mail\Mailable` を使ってテンプレートを読み込んで送信する方法で実装しています。
“`php:App\Notifications\InvoicePaid
use App\Mail\InvoicePaid as InvoicePaidMail;class InvoicePaid extends Notification
{
// 省略/**
* Get the mail representation of the notification.
*
【Laravel】バリデーションを利用しよう
#はじめに
今回はバリデーションの使い方について説明します。
バリデーションとは**フォームから入力された値がルールを守れているかチェックすること**です。
ルールを設けることで意図していない形式の入力を防ぐことができます。#バリデーションの使い方
では、バリデーションの使い方について説明します。
下記のコードで基本的なバリデーションはできます。
フォームから値が送信されるアクション(`post`)内の記述です
入力フォームから`name`,`mail`,`age`の3つの値が送信されます“`php:app/Http/Controllers/コントローラ
public function post(Request $request)
{
$validate_rule = [
‘name’ = ‘required’,
‘mail’ = ‘email’,
‘age’ = ‘numeric|between:0,150’,
];
$this->validate
PHPでSpotify APIを使う
# 目次
– はじめに
– GitHubからライブラリを落とす
– Spotifyのダッシュボードからアプリケーションを作成する
– APIに接続する
– 関数を使ってみる
– 補足
– お世話になったサイト# はじめに
脱プログラミング初心者を目指すがてら、PHPでSpotify APIを使ったWEBアプリを作りました。いろいろ調べながら大変な思いをして作ったので、せっかくだから爪痕を残そうと思って書いてます。自分のようなプログラミング初学者の助けになればと思います。
APIってなんのことだかよくわからないという方、プログラミング始めたての方でもわかるように書いたつもりです。# GitHubからライブラリを落とす
こちらのライブラリを使ってます。
> [spotify-web-api-php](https://github.com/jwilsson/spotify-web-api-php)このライブラリの[README](https://github.com/jwilsson/spotify-web-api-php/blob/master/README.md
【Laravel】自画面遷移時にセレクトボックスの選択値を保持させる
検索画面など、自画面遷移時にセレクトボックスの選択値を保持させる方法です。
## やりたいこと
自画面遷移時にセレクトボックスの選択値を保持させる* 処理実行→自画面遷移時
* バリデーションエラー時の2パターンに対応させる
## 環境
* PHP:バージョン7.3.7
* Laravel:バージョン5.8
* OS:Windows10## 書き方
typesテーブルから取り出した値(ID、NAME)をもとにセレクトボックスを作成する場合の記述は以下の通り。
“` php
【Laravel】DBの値をもとにViewに画像を表示させる
Laravelで、DBの値をもとにViewに画像を表示させる方法です。
## やりたいこと
DBの値(=流動的)をもとにViewに画像を表示させる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/25f8dbe3-0058-a9d3-6689-9073ca7f7f72.png)## 環境
* PHP:バージョン7.3.7
* Laravel:バージョン5.8
* OS:Windows10## 画像表示のキホン
画像ファイルは外部ファイルにあたり、{laravelプロジェクト}/publicに置く必要があります。
他、CSSやJavascriptも同様。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/565a6795-0abe-0cd0-48c8-f4493d300a88.png)
public配下のimageディレクトリ内の画像を表示させたい場合
きっと正しくないレンタルサーバーの作り方 Vol.2 -全体の設計
# はじめに
※注意!
この一連の記事で紹介するコードは動作の概念を説明するものでありセキュリティーなどは意識していません(・∀・)。**実際に運用するシステムなどに使用しないでください**(・∀・)。
(そのまま使うひともいないと思いますが)また、私も記事を書きながら開発をしていくので「後になってみたら最初の方の記事間違えてたー」なんて事は起きそうです(・∀・)。
ご了承ください(・∀・)。
# 目次
– [きっと正しくないレンタルサーバーの作り方 Vol.1 -プロジェクト事始め](https://qiita.com/lembryo/items/38b5b45435c7b21d0a51)
– [きっと正しくないレンタルサーバーの作り方 Vol.2 -全体の設計](https://qiita.com/lembryo/items/298c739623d8b2bca554)(**この記事**)# 要求と仕様をまとめる
前回に引き続き、誰のためにもならないレンタルサーバーの作り方を解説していこうと思います(・∀・)。
作るものはだいたい決まったので、それを文章化し
【PHP】引数の初期値を設定した関数|優先度(初期値 < 引数)
web系エンジニアを目指し、MENTAを利用し、PHPを学習している初学者です。
日々学習していることの忘備録、モチベ維持、ちゃんとやってることの証明!で、投稿していきます。
#対象者
PHPを学びはじめた、初学者
#内容
関数で引数の初期値を設定した際の、値の扱い
#動作環境
PHP 7.1.32
##基本のおさらい
###関数・引数とは
“`php5
$a = 1;
$b = 2;
$c = 3;
//仮定:組み合わせごとの和を求めたい
$ab = $a + $b; //3
$ac = $a + $c; //4
$bc = $b + $c; //5//関数にする
function sum($number1, $number2) {
$sum = $number1 + $number2;
return $sum;
}
関数:上記の3行
引数:関数に渡す値($number1, $number2)//関数を使用する
$ab = sum($a, $b); //3
$ac = sum($a, $c); //4
$bc = sum($b, $c); //5
【Laravel】ミドルウェアを利用しよう!
#はじめに
今回はミドルウェアの実装方法について説明します。
#ミドルウェアとは
ミドルウェアとは指定したアドレスにリクエストを送ると自動で処理を行う仕組みのことです
処理が行わられるタイミングは以下の2つの場合です
**1. ビューからコントローラーにアクセスした時
2. コントローラーからビューにレスポンスを送る時**
#ミドルウェアの作成
では、実際にミドルウェアを作成しましょう
`OldMiddleware`という名前のミドルウェアを作成します“`:ターミナル
php artisan make:middleware OldMiddleware
“``app/Http/Middleware/OldMiddleware.php`が作成されます。
#ミドルウェアの編集
作成されたミドルウェアを編集します。
アクセスした時にアクションにリクエストを送る前に
`age`の値が20以下なら`home`にリダイレクトさせる機能を実装します。“`php:app/Http/Middleware/OldMiddleware.php
Laravel + Amazon Cognitoで、ユーザー新規登録を試してみた
##前提条件(環境)
2019年12月28日に試してみたものです。
Laravel 5.8
aws/aws-sdk-php 3.13##期待する動作
登録フォームにメールとパスワードを入力して送信すると、Cognitoのユーザープールに仮登録される。
そして、その際に届いたメールのリンクを辿ると、「アカウントのステータス」が「CONFIRMED」になる。##手順
1. IAMで、Cognitoにアクセス可能なアクセスキー作成
2. Cognito側の初期設定
3. AWSのSDKをインストール
4. AWSの情報を.envファイルに追加
5. SDKの中にある、CognitoIdentityProviderClientクラスに用意されているsignUpメソッドを使う##1. IAMで、Cognitoにアクセスできるアクセスキー作成
割愛##2. Cognito側の初期設定
1. 「ユーザープールの作成」
2. 「デフォルトを確認する」
3. アプリクライアントの作成デフォルトと変えた部分は以下4つ
+ ユーザーのサインインに使う項目:Eメールアドレス
+ カスタム
PHPからS3にファイルアップロードをlocalstackを使って開発してみた
ローカル環境からS3にファイルをアップするために本物を用意するのが面倒になっていたところ
localstackと言うものを見つけたので使ってみた# localstackって何?
– AWSのサービスのモックを用意してくれるすごいやつ
https://github.com/localstack/localstack
– 今回はその中でS3のモックを使ってみる# 環境
– php 7.4
– localstack# 前提
– PHPを動かせるdocker imageが用意してある状態# 準備
## docker-compose.ymlの内容
“`docker-compose.yml
version: ‘3’
services:
php:
build: ./php
tty: true
volumes:
– ./src:/src
working_dir: /src
localstack:
image: localstack/localstack
ports:
– 4572:4
【Laravel】Homesteadで複数アプリを管理しよう!
#困った現象
Homesteadで`laravel new`して新しいアプリケーション作って、
`artisan serve`でサーバー動かした、
でも、新しいアプリケーションに繋がず、前に作っていたアプリケーションに繋がる#解決策
では、この現象を解決していこう!やることは以下の手順です!
1. [http://localhost:8000/](http://localhost:8000/)にアクセスした時に繋がるファイルを設定する
2. 設定を反映する##[http://localhost:8000/](http://localhost:8000/)から繋がるファイルを設定する
その設定をしているファイルはHomestead.yamlです。編集していきましょう
ホストOSで`~/Code`をゲストOS上で`/home/vagrant/Code`として扱っています“`yaml:/home/vagrant/Code/Homestead/Homestead.yaml
folders:
– map: ~/Code
to: /home/vagrant/Cod
配列要素を削除するとインデックスが残ったり残らなかったりする
PHPの配列は、キーのインデックスなどが配列側でしっかり管理されています。
“`php
$a = [];
$a[] = 1;
$a[10] = 2;
$a[] = 3;var_dump($a); // [0=>1, 10=>2, 11=>3]
“`キーを空白にすると、自動的に次のインデックスを割り当ててくれます。
とても便利。しかしこのインデックス、一度増えるとその後値を消しても戻りません。
“`php
$a = [0, 1];unset($a[1]);
$a[] = 2;var_dump($a); // [0=>0, 2=>2]
“`せっかく配列の最後の値を消したのに、使用した情報は残っていて次のキーは2になっています。
MySQLのauto_increment値と同様、一度上限が上がると下がらないということです。
全ての値を消したとしても同様です。“`php
$a = [0, 1];unset($a[1]);
unset($a[0]);
$a[] = 2;var_dump($a); // [2=>2]
“`ところでこいつを