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

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

そろそろaws初めてみよか#2

# はじめに

[そろそろ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-northeast-1.am

元記事を表示

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

元記事を表示

Moodle 3.8 マニュアル – 管理者の心得集

[原文](https://docs.moodle.org/38/en/Administrator_do%27s_and_don%27ts)

# 管理者の心得集

新しいコースのためのインポートしたバックアップファイルのためには特別なコースを使用してください。

コースのアーカイブをリストアするためにメイン Moodle サイトコースでファイルの領域を使用しないでください。フロントページがとても簡単に壊れます。その目的のためには特別なコースを設定する事がよりよいです!

* Accidentally restoring a faulty course archive to your main site course will break the whole site for everyone. Also — by default, all users have access to the files in the main site course. If your course archive contains any confidential information, you’re

元記事を表示

Moodle 3.8 マニュアル – 管理の基本

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

コースを追加する

* [Create a course](https://docs.moodle.org/38/en/Create_a_course)(翻訳準備中)
* [Organise your courses](https://docs.moodle.org/38/en/Organise_your_courses)(翻訳準備中)
* [Add course content](https://docs.moodle.org/38/en/Add_course_content)(翻訳準備中)

ユーザーを追加する

* [Manage users](https://docs.moodle.org/38/en/Manage_users)(翻訳準備中)
* [Add new users](https://docs.moodle.org/38/en/Add_new_users)(翻訳準備中)
* [Enable course sign up](https://docs.moodle.org/

元記事を表示

オブジェクト指向とクラス

今回はこれまでの学習の振り返りと定着も兼ねて、オブジェクト指向とクラスの概念について簡単ですがまとめてみました。
私も含め、オブジェクトは多くの初学者が挫折するポイントだと思うので、この記事が少しでも役に立てば幸いです。

##オブジェクトとは

オブジェクトとは、処理や定義をまとめた塊の事です。
この時、オブジェクト内の変数をプロパティ、関数をメソッドと呼びます。
例えば、下記のようにする事で配列もオブジェクトにする事ができます。

“`php:
100,
‘b’ => 100,
‘c’ => 100,
]
“`

これは、配列をオブジェクト型でキャストする事で強制的にオブジェクトを作成しています。

###オブジェクトの中を参照する

オブジェクトの中にあるメソッドやプロパティを利用する場合は、アロー演算子(->)と呼ばれる演算子を使います。
配列で作っていますが、キーの参照はできないので注意して下さい。

“`php:

元記事を表示

PHP 上級試験範囲 グラフィックスまとめ

# HTMLページへの画像埋め込み

– 画像が埋めこまれているHTMLページをwebブラウザに表示しようとすると、webブラウザからwebサーバへ、HTMLページそのものに対するリクエストと、画像に対するリクエストの両方が送信される。

– webサーバからwebブラウザへ送信されるレスポンスは、**レスポンスヘッダ**と**レスポンスボディ**の2つの部分で構成されている。
レスポンスヘッダには`「Content-Type」`というヘッダが含まれている。
webブラウザはこのヘッダにより、レスポンスボディに含まれるデータの種別を判別している。
レスポンスボディ部分に含まれるデータは、HTMLファイルや画像ファイルそのものを指す。

– HTMLページ内に``のような記述をし、画像を生成するPHPスクリプトが実行できる。

“`php:test.php
header(‘Content-Type: image/jpg’);
readfile(‘/tmp/test.jpg’);
“`

– HTMLページ内に`PHPのmethod_existsとis_callableの挙動

# オブジェクト生成前

“`php

class TestClass
{
public function publicMethod()
{
echo “public
\n”;
}
protected function protectedMethod()
{
echo “protected
\n”;
}
private function privateMethod()
{
echo “private
\n”;
}
public static function publicStaticMethod()
{
echo “public static
\n”;
}
protected static function protectedStaticMethod()
{
echo “protected static
\n”;
}
private static f

元記事を表示

【LaravelDB.com】新機能 ”テーブル定義をパッと見で理解する!” 「Newテーブル一覧表示機能」

##New!2月8日 [Newテーブル一覧表示機能] について解説
en.jpg

###DEMO動画(初めての人はこちらから)
[【 YouTubeリンク>> LaravelDB.com の操作方法 】](https://t.co/jGVarMoXse)

**LaravelDB.comについて詳しく知りたい人はこちらもどうぞ!!**
[https://qiita.com/daisu_yamazaki/items/068595670bdc2b6fe3fc](https://qiita.com/daisu_yamazaki/items/068595670bdc2b6fe3fc)

## 1. ER図画面から 「 ER図のLoad/Save 」ボタンをクリック
[https://laraveldb.com]

元記事を表示

Moodle 3.8 マニュアル – データベースのスキーマを確認する

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

# データベースのスキーマを確認する

もしあなたが Moodle をいくつかのバージョンに渡ってアップグレードしたのなら、ある変更があなたのデータベースとあなたが作成するあたらしい空のサイトで得るであろうバージョンの間のデータベースのテーブル定義(”スキーマ”)に忍び寄っている可能性(たぶん)があります。これはアップグレードスクリプトにおける小さなエラーあるいは見落としにより生じます。これらのほとんどの変更は害がないですが、いくつかは不思議な予期しない問題を引き起こすかもしれません。たとえば、デフォルトの値がフィールドに追加され、これがアップグレードスクリプトのコードに反映されなかった場合デフォルトを想定しているコードは期待通りには動作しないでしょう。

アップグレードをおこなった後(あるいは、もしあなたの問題がアップグレードが失敗するならば、前)に”本番”サイトと新しく作成したサイトのデータベースのスキーマを、全く同じコードのベースで比較することです。いくつかの方

元記事を表示

Moodle 3.8 マニュアル – XAMPP のアップグレード

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

# XAMPP のアップグレード

注意:これは進行中の作業です。完全ではなく性格でもないかもしれませんが完全にテストされています。
(訳者注: Windows という OS サーバのお話となり参考にはなりませんので項目のみを参考にしてください。)

このページはあなたが以下のことにあてはまる場合にあなたを助けることを意図しています。

* Moodle ダウンロードのページからダウンロードした XAMPP あるいは XAMPP ベースのパッケージを入れた Windows サーバー
* しばらく起動している Moodle がインストールされているものでありデータとユーザーを入れ込んだもの
* ウェブサーバー(Apache, PHP, MySQL)の全てあるいは一部に新しいバージョンへのアップグレードが必要
* Moodle 2.0 には上位のバージョンの PHP が必要
* 恐ろしい Apache のメモリリークの問題に見舞われている
* 全てのコンポーネントを最新のセキュリティの

元記事を表示

【Laravel】authorizeResourceを使いつつ未ログインユーザーに特定のアクションを許可する

## authorizeResourceメソッドとは

authorizeResourceメソッドを使うと、コントローラーのCRUDアクションに対して、一括してポリシーによる認可制御を適用できます。

“`php:app/Http/Controllers/ArticleController/php
authorizeResource(Article::class, ‘article’);
}
// 略
}
“`

## authorizeResourceメソッドと未ログインユーザー

authorizeResourceメソッ

元記事を表示

備忘録_レンタルサーバーにLaravelのプロジェクト作って、git管理する

# Laravelのプロジェクトを作る

1. composerが動く環境を用意する

※[備忘録_レンタル共用サーバーでcomposerを使う](https://qiita.com/kmymso/items/94bea6f9e91cb4710080) 参照

2. プロジェクトを作成する

`composer create-project –prefer-dist laravel/laravel ~/{プロジェクト名} “5.8.*”`

3. (動作確認用)

`ln -s {ドキュメントルート} ~/{プロジェクト名}/public`

# git管理する

1. さっき作ったプロジェクトのディレクトリに移動

`cd ~/{プロジェクト名}`

2. リポジトリ作る(ついでに、開発用ブランチも作ったりする)

“`
git init
git add -A
git commin -m “init”

git checkout -b developer

mkdir ~/git_repo
g

元記事を表示

PHP(初級編) – 変数の表示の仕方、繰り返し処理、分岐処理の書き方

変数定義や配列、if文やfor文の基本的な概念?書き方?はC言語とほとんど同じだったので省略。
以下、PHPっぽいなと思った書き方の決まりを記録します。

##変数の表示
###表示する時の変数には「$」を前につける + 改行をつける場合は「“$変数.’
‘“」と書く。
“`index.php
$i = 0;
echo $i.’
‘;
“`

##繰り返し処理、分岐処理
###if文やfor文の()内の変数は全て「$」をつける
“`index.php
for($i=0; $i<10; $i++){ if($i % 3 == 0){ ..... } ... } ``` ###breakはループを完全に抜ける、continueは現在の周だけスキップしてループは続ける ```index.php for($i=1; $i<=1000; $i++){ if($i % 3 == 0){ continue; } echo $i.'
‘;
}
“`
こうすると、iが1〜1000の間

元記事を表示

Laravel用コマンドチートシート

# Laravelプロジェクトの作成
“`
composer create-project –prefer-dist laravel/laravel プロジェクト名
“`

# 起動
“`
$ cd SampleProject
$ php artisan serve
“`

# モデルの作成

“`
$ php artisan make:model CreateModel
“`

# コントローラーの作成

“`
$ php artisan make:controller CreateController
“`

# マイグレーションコマンド系

“`
$ php artisan make:migration make_migration マイグレーションファイル作成
$ php artisan migrate マイグレーションの実行
$ php artisan migrate:refresh 全てのマイグレーションをリセットし、再度実行
$ php artisan migra

元記事を表示

比較演算子とfor構文

– while構文

“`php
$i = 1;
while ($i <= 365){ print $i . PHP_EOL; $i = $i + 1; } ``` - 比較演算子 `<=` - 不等号のこと - `A

元記事を表示

Laravel バリデーションで変数を利用

# Laravelのバリデーションで変数の使い方

##なぜ気になったのか
ECサイトを制作中に、商品をカートに追加する際にデータベース上の商品の在庫数以上の数を買い物かごに入れることができてしまう。
バリデーションを利用するときに商品の在庫数はそれぞれ異なるので固定の値は設定できない。
商品ごとにデータベースの商品の在庫数をMAXとしてそれ以上買い物かごに入れる時にはバリデーションを発動してエラーメッセージを出したかったから。

##まず試したこと
“`
$data[‘test’] = 5;
$max = 10;

$validator = Validator::make($data, [
‘test’ => ‘max:$max’,
]);
“`
これでは全くバリデーションは効かず

##ではどうするべきか。
PHPで変数を文字列内で展開したい場合は変数を`{ }`(波括弧)で囲って書くことで、文字列の中に変数があること明示している。
ただし、文字列の中に変数を入れる場合は、文字列を必ず`” “`(ダブルクォーテーション)で囲む必要がある。

元記事を表示

Laravel5.6以降のLog設定の小ネタ

config/log.phpでログを設定するようになってからの設定方法についての小ネタ。
ドキュメントに明示されておらず、StackOverflow等でもなかなか出てこないので書いておく。

## monolog driver以外でも、Formatterはconfig/log.phpで指定できる

https://laravel.com/docs/6.x/logging#customizing-monolog-for-channels
>
Monolog Formatters
When using the monolog driver, the Monolog LineFormatter will be used as the default formatter. However, you may customize the type of formatter passed to the handler using the formatter and formatter_with configuration options:

“`php
‘browser’ => [
‘dr

元記事を表示

Ruby、PHP、Java、JSでの書き方の違い

##はじめに
「Rubyでプログラミングの基礎を学んだから、次はjsやってみようかな!」

「書き方ごちゃごちゃになって、何が何だかよくわかんねー!!」

こんな人もいるのでは?

僕自身も以前、詰め込みすぎでパンパンになりましたので、書き方の違いをわかりやすくまとめてみました。
一つ一つ覚える必要はありませんので、この記事を、ストックしていただければと思います。
オブジェクト指向の理解も多少深まると思いますので、最後までご覧ください!

## 文字出力
基本となる文字の出力。言語によって処理のされ方が違うので難しいところですが、基本なのでしっかり押さえましょう。Javaはやっぱり記述が長いですねw

“`ruby:
#Ruby
puts “こんにちは”
“`
“`php:
#PHP
echo “こんにちは”;
“`
“`java
//Java
System.out.println(“こんにちは”);
“`
“`javascript
//JavaScript
console.log(“こんにちは”);
“`

## 変数代入

元記事を表示

OTHERカテゴリの最新記事