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

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

【2019年版】パーフェクトPHP解説その2 6章 Gitリポジトリ作成〜DB作成

IT学習75日目!
[前回](https://qiita.com/untrustworth/items/b58aa252c8245e45a3c5)に続いて、環境構築から始めます。
# 2 Gitリポジトリ作成
gitはすでにインストールされていますので、バージョンを確認しておきます。

“`
$ git –version
git version 2.14.5
“`

少々古いのですが、今回はこれで良いことにします。

Gitの仕組み、設定やGitHubの登録などについてはこちらの過去記事を参照してください。
[ローカルリポジトリ編](https://qiita.com/untrustworth/items/71ff1f37d5b158c2d523)
[リモートリポジトリ編](
https://qiita.com/untrustworth/items/74abfbd527d5df301482)

## 2.1 ユーザ登録

“`
$ git config –global user.name “perfect-php”
$ git config –global user.ema

元記事を表示

AWS移行の全記録

#■概要
以前、オンプレで動いていた古い予約システムをAWSへ移行したのでその内容です。
AWS環境は存在しなかったため、アカウント作成からはじめました。
コンサル会社と契約し、なるべく良い形で進めました。

##11サービスを一気に移行しました。
※サイト規模として、PVは75000/1h。DBのデータ量は100GB。

|変更項目|移行前 | 移行後|
|:—————–|:—————–|:——————|
|環境 |オンプレミス |AWS |
|php |php5.2 |php5.3 |
|DB |mysql 5.1, PostgreSQL9.1.11 |mysql 5.5, PostgreSQL9.5.18 |
|APサーバー |Apache 2.2 |Apache 2.2 |
|sessionサーバー |t

元記事を表示

AWS移行 – アプリケーション側の改修ポイント

#概要
以前、オンプレからAWSへWEBアプリを移行した際に行ったことです。

##ELBを挟んだ
以前はCDN(Akamai)からWebサーバーを直接見るようにしていましたが、間にELBをはさみました

以前: Akamai -> Apache -> アプリ(php)
今 : Akamai -> ELB -> Apache -> アプリ(php)

SSL証明書は、ApacheからELBに移しました。
##ELBが挟まったことによる影響
通信がSSLかそうでないかを判断している部分に影響がありました。
インターネットからELBの間はSSL通信ですが、
ELBからEC2の間は80番での通信なので、下記のようなコードだと正常に動作しません。

“`php:ssl通信かどうか
if($_SERVER[“SERVER_PORT”] == 443){
echo “SSL通信です”;
}
“`

同じような判別をするなら下記のようなコードを記述する必要があります。

“`php:ssl通信かどうか。ELB経由
if($_SERVER[“HTTP_X_FORWARDED_PORT

元記事を表示

AWS移行 – ネットワーク関連でやったこと

ネットワーク関連の設定メモ。
AWSになったことによる影響等を書いていきます。

#セキュリティグループ設計
セキュリティグループはサーバー、ELB、RDS..ごとに設定し、そのセキュリティグループを許可するような設計になっています。
直接IPアドレスを記述するのは最小限になります。

※下記はイメージ
列が各リソース
行がセキュリティグループ名です
○が付いているところには、そのセキュリティグループの許可(インバウンド許可設定)されていることになります。
そのセキュリティグループに所属しているものも許可します。
たとえば下記の「prd-web01」というEC2は、「prd-app-web-sg」というセキュリティグループを許可していますが、
「prd-app-web-sg」の中身は「prd-front-main-sg」の80番を許可しています。
これは「prd-front-main-sg」が設定されている「prd-main-alb」からの80番アクセスを許可するという意味になります。

| ELB | prd-main-alb |

元記事を表示

PHP の脆弱性が発表されています CVE-2019-11043

[こちらのサイト](https://www.cisecurity.org/advisory/multiple-vulnerabilities-in-php-could-allow-for-arbitrary-code-execution_2019-116/?fbclid=IwAR26HHpJfFxysIIWhAFYvQkgpUsA_asxz3gogFKiHYM6VdIjz2zA0nDshwE) を参考にしています。

[CVE-2019-11043](https://nvd.nist.gov/vuln/detail/CVE-2019-11043) となります。

やるべきこと:

* __適切なテストを実行したのちに、最新の PHP バージョンに今すぐアップグレードする__
* __パッチを適用する前に、認証なしにシステムの変更が行われていないかを検証する__
* __全てのシステムとサービスにおいて、最小特権の原則を適用する__
* __知られてない又は信頼されないソースによる web サイトを訪問する、あるいは、リンクをフォローする、ことを避けるようにユーザに徹底する__

これら

元記事を表示

AtomでPHP学習を始めるときとりあえず入れといたパッケージたち

# はじめに

最近何かとWordPressをいじることが多くなってきたので、真面目にPHPを勉強しようと思い立ちました。
目標はテーマを自分でカスタマイズできるようになることです。

とりあえず簡単なPHPの開発ができれば良いので、Atomで動作チェックができるような環境を作ろうと思います。

# インストールしたパッケージ

今後増えていくとは思いますが、インストールしたのは下記のパッケージです。

* php-server
Atom上からPHPサーバを呼び出して、エディタ下部にログを表示してくれるパッケージ。

* browser-refresh-on-save
いちいちブラウザをリフレッシュするのは面倒なのでサーブするごとに自動更新してくれるパッケージ

# 最後に

随時更新していきます。

元記事を表示

GAE/PHP72 CakePHP3のindex.php問題

GAE/PHP72にCakePHP3インストールすると、リンクとフォームのアクションURLの先頭にindex.phpが付いてしまう問題。

app.phpのApp.baseを”にする。

“`php:app.php
return [
‘App’ => [
‘base’ => ”,
“`

元記事を表示

【Laravel】ディレクティブ一覧

LaravelのBladeには「ディレクティブ」という機能があります。
これは言語における構文のような役割を果たします。
基本的に「@ディレクティブ名」という形で記述して
「@endディレクティブ名」で終了します。

# @ifディレクティブ(条件分岐1)
**条件分岐(if文)**に相当するディレクティブです。
「@if」はその後に条件を設定します。
それ以降、〜@endifまでの部分を表示します。

**■条件がtrueの時に表示する**

“`php
@if (条件)
・・・・出力内容・・・・
@endif
“`

**■条件によって異なる表示をする**

“`php
@if (条件)
・・・・出力内容・・・・
@else (条件)
・・・・出力内容・・・・
@endif
“`

**■複数の条件を設定する**

“`php
@if (条件)
・・・・出力内容・・・・
@elseif (条件)
・・・・出力内容・・・・
@else (条件)
・・・・出力内容・・・・
@endif
“`

「@if」には「@elseif」と「@else」という
ディレクティブがオプシ

元記事を表示

【PHP】Laravel学習メモ / 三項演算子

#三項演算子

三項演算子では条件式を1文で書けます。

“`
条件式 ? 式1 : 式2

TRUEの場合 : 式1実行
FALSEの場合 : 式2実行
“`

if文の場合

“`

“`

三項演算子を使った場合

“`

“`

元記事を表示

【PHP】Laravel 学習メモ/ (Request $request) 

#(Request $request)

“`

“`
よく見かけるので調べました。
postsampleアクションの引数にあるRequest $requestとは?

Requestはクラス
$requestはインスタンス

useでRequestを使用するという記述があリます。
引数の中のRequestはそれを指しています。
クラスがある場合、インスタンスを用意すべきということで$requestも引数に一緒に記載されているということらしいです。

元記事を表示

【PHP】Laravel 学習メモ/ classの名前空間とuse宣言

#クラスの名前空間とuse宣言
Controllerの最初に書きます。

名前空間: ファイルの場所を示す
use宣言: 中で使うファイルを宣言

“`

“`

例:

“`

“`

元記事を表示

【PHP】Laravel 学習メモ/ ControllerからViewへ値を渡す方法

#ControllerからViewへ値を渡す方法

“`
//SampleController.php


“`
または、

“`
//SampleController.php

‘Tom’]);
}
?>
“`

###compact関数を使用

“`
//SampleController.php

“`

###withメソッドを使用

“`
/S

元記事を表示

【2019年版】パーフェクトPHP解説その1 6章 環境構築編 

IT学習74日目!
# パーフェクトPHPを現代版にアップデートしたい
フレームワークの自作などを学べるというパーフェクトPHPの6章〜8章
しかしながら本が古いこともあって、1章の環境構築やPHPバージョンの違いによって戸惑いが生じました。

名著と言われる書籍ですから、今後も学ぶ方々は多いと思います。

そこでこの名著を、誠に勝手ながらAWS Cloud9環境でPHP7.3にバージョンアップし、学習の一部始終を「実況形式」で解説していきたいと思います。
イメージとしては、この一連のQiitaを見れば、progateの次の教材として誰でもパーフェクトPHPが学べてしまう!!
そんな感じを目指します。

実況なので、逐次的に解説します。
エラーでつまづいたらそれを報告します。
エラーを解決したらその方法をシェアします。
お役に立てましたら嬉しいです。

# 0 はじめに Progateの次段階のPHP教材を目指す
## 0.1 本稿の目的

– 他者に見せられる学習記録として
– 自分用の備忘録として
– これからパーフェクトPHPを学ぶ人の参考として残すため
– progateの次の

元記事を表示

Moodle 3.7 マニュアル – インストールFAQ

[原文](https://docs.moodle.org/37/en/Installation_FAQ)

# インストールFAQ
##### トップ
内容

[1 Installation problems forum にはシステムの情報が必要です](#1-installation-problems-forum-にはシステムの情報が必要です)
[2 PHPはインストールされていてバージョンはいくつですか](#2-phpはインストールされていてバージョンはいくつですか)
[3 Moodle 2.x のインストールを続けるには intl php plugin が必要だと言われた(国際化)](#3-moodle-2.x-のインストールを続けるには- intl-php-plugin-が必要だと言われた(国際化))
[3.1 どんな Dynamic Extensions について php.ini ファイルでコメントアウトしなければいけないですか他に変えるべきところはありますか](#31-どんな-dynamic-extensions-について-phpini-ファイルでコメントアウトしなければいけ

元記事を表示

[PHP]Laravel6でmake:authするには

## 内容
Laravel6では、5系までで使えていたmake:authが使えない
実行すると以下のように「そんなコマンドはないよ」と言われてしまう…

“`bash
kusumoto-t: sample$ php artisan make:auth
Command “make:auth” is not defined.
Did you mean one of these?
make:channel
make:command
make:controller
make:event
make:exception
make:factory

元記事を表示

【PHP】インターフェイスの使い方がよくわからない人向け

「クラスはなんとなくわかるけどインターフェイスが良くわからない。」
「インターフェイスの名前は知っているけどいつ使うのかがわからない。」という方向けに
とりあえずオブジェクト指向とか難しそうな話は置いといて、
インターフェイスがどういうものなのかを、ざっくり、自分なりに説明してみました。

[追記しました](https://qiita.com/tkek321/items/a6112bc195b73438a9b0#%E8%BF%BD%E8%A8%98)

# 広義のインターフェイスとは

[インターフェース-Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9)
[インターフェイス (interface)-わわわIT用語辞典](https://wa3.i-3-i.info/word11374.html)

`インターフェイス`とは、おおよそ「界面、接触面、中間面」という意味があるようです。

`ユーザーインターフェ

元記事を表示

LaravelでDIしてみた。

# 背景
最近開発しているプロジェクトでDIっぽい事をしているが、あまり理解していないのでDIの概要やDIコンテナについて説明していきます。

# 環境
– PHP 7.1
– Laravel 5.8

# DIについて
wikiによるとDependency Injectionの略で依存性の注入と言う意味で、依存関係にあるオブジェクトを外から注入するデザインパターンの一種

> **依存性の注入**(いそんせいのちゅうにゅう、英: Dependency injection)とは、コンポーネント間の依存関係をプログラムのソースコードから排除するために、外部の設定ファイルなどでオブジェクトを注入できるようにするソフトウェアパターンである。英語の頭文字からDIと略される。
引用元 : [依存性の注入 -Wikipedia](https://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5)

# 依存関係を解決する
DIにはコンストラクタインジェクション、セッターインジェクション、メソッド

元記事を表示

【755】トークルームに投稿された画像を全てを取得するPHPプログラムの作成

#概要

スマートフォン向けアプリケーションソフト「755」のトークルームに投稿された画像と動画のサムネ画像を全て取得するPHPプログラムの作成

#ソースコード

“`php5:download_755_imagefile.php

元記事を表示

EC2のLaravel6.0環境でメールを定期配信するタスクスケジューラを作成する AWS/Laravel連載(17)

# はじめに

前回の記事で、コマンドライン上からメール配信できるシステムができました。

[EC2のLaravel6.0環境でメール配信コマンドを作成する AWS/Laravel連載(16)](https://qiita.com/rf_p/items/036ac4cdb0796ceb2fa2)

# 確認ダイアログ挟まずメール配信できるオプションを追加する

前回の記事ではメール配信時にyes/noの確認を挟んでいました。
Cron実行しようとするとその機能は少々邪魔なので、確認挟まず送信するオプションを用意しましょう。

“`diff:app/Console/Commands/SendEmails.php

– protected $signature = ‘email:send {user : ユーザーIDを指定}’;
+ protected $signature = ‘email:send {user : ユーザーIDを指定} {–f : 確認を挟まず送信する}’;

– if ($this->confirm($user->name .

元記事を表示

EC2のLaravel6.0環境でメール配信コマンドを作成する AWS/Laravel連載(16)

# はじめに

前回でMailgunを使いメールの配信ができるようになりました。

[EC2のLaravel6.0環境で記事投稿時にメールMailgunを使いメール送信する AWS/Laravel連載(15)](https://qiita.com/rf_p/items/4d774e139b433c4a7753)

実際のサービスでは、宣伝メールや重要なお知らせをユーザーに一括配信することもあるでしょう。
コマンドライン上でユーザーに一括配信する仕組みを今回は作っていきます。

[公式ドキュメント](https://readouble.com/laravel/6.0/ja/artisan.html)を参考にしつつ、いろいろ独自実装で進めていきます。

# ファイル作成

“`powershell
$ php artisan make:command SendEmails
“`

実行すると、app/Console/Commands/SendEmails.php というファイルが生成されます。

次にMailableクラスを作ります。前回作ったのと同じ手順ですね。

“`powers

元記事を表示

OTHERカテゴリの最新記事