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

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

【 Laravel 】「Laravel DB Designer」で設計から実装まで「ER図←→Migration」相互変換!” 「使い方・仕様 」について解説” vol3

##今回は” Laravel DB Designer “の「 使い方・仕様 」について書きました(vol3)

『Laravelを使う人を幸せにしたいという思いから作った』
[https://laraveldb.com](https://venezia-works.com/sql/index.php)
※英語圏対応済み

e.jpg

##主機能
– **ER図作成 (対応している”型”はページ下部に表記)**
– **ER図作成 → Migrationファイルを生成**
– **ER図作成 → チェック用クエリービルダーを自動生成**
– **Migrationファイル → ER図を生成(リバース)**

##テーブル名

####テーブル名の頭に”m_”を付けた場合(Master:都道府県のように最初

元記事を表示

php.iniの場所・パスを調べる方法

php.iniを変更したいけど、場所がわからない時、ありますよね。
そんな時はこれ↓

“`common-lisp

$ php -i | grep php.ini
Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php7.1.31/conf
Loaded Configuration File => /Applications/MAMP/bin/php/php7.1.31/conf/php.ini
“`

###### 参考
https://qiita.com/tmsanrinsha/items/2fda05db29b62090e3de

元記事を表示

配列の要素をフィルタリング(array_filter, array_reduce)

# 配列の要素をフィルタリングする(array_filter, array_reduce)
次のような連想配列から`value`が偶数の要素のみを取り出します。

“`php:index.php
$array = [
[ ‘number’ => 1 ],
[ ‘number’ => 2 ],
[ ‘number’ => 3 ],
[ ‘number’ => 4 ],
[ ‘number’ => 5 ],
[ ‘number’ => 6 ],
[ ‘number’ => 7 ],
];
“`

こちらを一旦`var_dump()`しておきます。

“`php:index.php
array(7) {
[0]=>
array(1) {
[“number”]=>
int(1)
}
[1]=>
array(1) {
[“number”]=>
int(2)
}
[2]=>
array(1) {
[“number”]=>
int(3)
}
[

元記事を表示

PHPがメインの経験者が、Pythonを始めて5日目の話(selenium)PHP vs Python

#はじめに
今回はseleniumを使用してChromeブラウザをコントロールしてWEBのサービスに保存されているファイルをダウンロードするのが目的です。もう一点の重要な目的はPHPとPythonで同じダウンロードを行い、結果の比較をしたいと思います。ダウンロードはWEBメールの添付ファイルが最初の目的でしたが、Slack や Facebook Cybozu 等、現在はPHPのコードで大体可能です。この話を聞いた某編集者がハッキングだと言われましたが、普通に自分でログインしてダウンロードするのと基本的に変わりませんので、堂々とやって良い処理です。以下、PHPだと selenium-webdriverを利用する事になる訳で、今になりPythonの場合と比較して複雑に感じます。PHPで動かす場合には次の記事を参考にさせていただきました。この記事にあるように準備が色々とあります。「[seleniumを使ってPHPでChromeの自動操作をする](https://qiita.com/Rasukarusan/items/0ca204d5b0f0fb876252)」その準備を終えて、seleniu

元記事を表示

PHPでプログラム全体の設定に使う変数の保持の仕方

PHPでちょっとしたアプリを作ったりちょっとしたフレームワークを作ったりするとき、共通の全体設定をどのように書くかという悩みがある。
頭の中を整理するためにパターン分けしてみる。説明は独断と偏見に基づいている、かもしれない。

# 定数

定数には`define`と`const`がある。

“`php

元記事を表示

Laravelでクロージャを使った自作バリデーションの作成

Laravelのバリデーションでチェックボックスの特定の組み合わせを不可にするために、
自作バリデーションを作成してみました。
自作バリデーションはRulesを作る方法がありますが、
調べた所、バリデーションでもクロージャが使えるようでした。

簡単なサンプルを作ってみました。
まずフォームを作ります。

“`

果物を選んで下さい。

@if ($errors->any())

    @foreach ($errors->all() as $error)

  • {{ $error }}
  • @endforeach

@endif

@csrf
りんご
Twigで拡張子が2つある理由

Twigのファイル名は、「index.html.twig」と「html」+「twig」と拡張子が2つついています。

これは「twig」というのが、Twigのテンプレートファイルということを示し、「html」は、twigファイルをレンダリングして生成されるものが、「HTML」ファイルであることを示している。

これは、[Template Naming](https://symfony.com/doc/4.4/templates.html#template-naming)に記載されていました。

元記事を表示

セッション有効期限の伸ばし方

#セッション有効期限の伸ばし方

自分の学習用ログ

セッションの有効期限を30日間にする場合

“`php:
//1、セッションファイルの置き場を変更する
session_save_path(“var/tmp”);

// 2、ガーベージコレクションが削除するセッションの有効期限を設定
ini_set(‘session.gc_maxlifetime’,60*60*24*30);

// 3、ブラウザを閉じても削除されないようにクッキー自体の有効期限を伸ばす
ini_set(‘session.cookie_lifetime’,60*60*24*30);

// 4、セッションを使う
session_start();

// 現在のセッションIDを新しく生成したものと置き換える
session_regenerate_id();
“`

元記事を表示

Laravelで日付をYYYY年MM月DD日 (曜日) hh: mmと表示させる

日付と時間だけだと簡単ですが、間に曜日を挟んだ場合の情報が少なくて面倒だったので、メモ
LaravelにCarbonのv2以降をインストールすれば以下のように1行でかけます。
今回は参考にdirectiveを使ってますが、viewHelperとかの方がいいかも。

“`php:AppServiceProvider.php
isoFormat(‘YYYY年MM月DD日 (ddd) LT ‘); ?>”;

元記事を表示

ファサードの内部における動作を簡単にまとめる【Laravel】

## 概要

Laravelの代表的な機能としてファサードがある。これを使うと、staticなメソッドを呼ぶのと同じ要領で、どこからでも簡単にフレームワークの機能を呼び出すことができる。

“`php
use Illuminate\Support\Facades\Cache;

Route::get(‘/cache’, function () {
return Cache::get(‘key’);
});
“`

下の例のように、useで名前空間を指定せずとも、グローバル名前空間でアクセスするように書くことも可能。(ちなみにこれが可能なのは`config/app.php`の`aliases`に記述されている対応関係を`class_alias`関数によって結びつけているから。要はエイリアス(別名)をつけて省略的に書けるようにしていると思っておけば良いと思う。たぶん。)

“`php
Route::get(‘/config’, function () {
return \Config::get(‘key’);
});
“`

これを一見すると、`Illuminate

元記事を表示

[AWS SDK for PHP]署名付きPOSTを使い、直接クライアント側からAWS S3にファイルアップロード(PostObjectV4インスタンスを使用)

以下の流れで実装しました。

– [PostObjectV4](https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/s3-presigned-post.html) のインスタンスを使い、署名付きPOSTに必要な情報を発行
– Vue.jsで、アプリケーションサーバを介さず、クライアント側から直接S3にファイルをアップロード

画面はこんな感じで、簡単にアップロード画面を作ってます。
![スクリーンショット 2019-11-18 23.51.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/247004/5ff21d2a-b6bf-915c-2e07-0c8b3aef33d7.png)

## 準備
### AWS
S3でバケットを作成してください。
※IAMの設定は省略します

### S3 CORSの設定
CORSを設定しておかなければなりません。

“`

元記事を表示

PHP7.4のpreloadいれたらLaravelは早くなるのだろうかと思って検証した

皆さんこんにちは

PHP7.4でpreloadが来るっていうので、ワクテカしているわけですが、実際どれくらい早くなるのかしらって思いまして、ちょうど色々検証していたので、Laravelでも軽くやっちゃおうぜって思ったので、やってみます。

あと4日ですね!!

# 三行で

– preloadが来るよ
– preloadで読み込み済みの状態を作れるよ
– Laravelに導入すると、結構早くなるよ

# Preload

PHP7.4でopcacheにpreloadという機能が入ります。これの概要は

– opcacheの設定にpreloadを実行するヘルパーファイルを指定できる
– webサーバを起動するとopcacheがヘルパーファイルを実行する
– ヘルパーファイル内でキャッシュ化したものは、通常のアクセスにおいて、**すでに読み込まれたものとしてみなされる**

そう、読み込み済みですよ!
簡単に読み込み済みの効果を見るために、以下のような例を考えてみましょう。

## preload利用の例

まずは、こんなDockerfileで、動かせるコンテナを作ってみます。

“`

元記事を表示

herokuデプロイで10分であなたのアプリを世界に公開する手順【Laravel5.8】

今回はherokuを使った、Laravelプロジェクトを世界に手っ取り早く公開する手順をご紹介します。

実は今回僕も`初の公開作業をしながら同時にこのqiitaを書いている`ので、これが公開されているということは動作は保証されます笑

>herokuとはPaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションを実行するためのプラットフォームです。

>もう少しわかりやすく説明すると、サーバやOS、データベースなどの「プラットフォーム」と呼ばれる部分を、インターネット越しに使えるようにしてくれるサービスの一つです。

>レンタルサーバーと似ていると思うかもしれませんが、レンタルサーバーとPaaSは「環境を貸してくれる」という意味では一緒なので、ほぼ同じと考えても問題はありません

[herokuとは?初心者でも5分で分かる基本や特徴をまるっと紹介](https://www.sejuku.net/blog/7858)

大まかな流れか以下の通りです。

*herokuに登録

heroku CLIダウンロード

herokuでアプリ作成

Pos

元記事を表示

Moodle 3.7 マニュアル – PHP をソースからコンパイルする

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

# PHP をソースからコンパイルする

このページは、Ubuntu あるいは Debian ベースのディストリビューション上で PHP をソースからビルドする方法を示します。その他の Unix や Linux のシステム上で PHP をコンパイルする基礎としても使えることは、疑いがないでしょう。

It is possible that you may need to do this because the latest versions of Moodle require reasonably new versions of PHP which may not be supported by the packages in your version of PHP – especially “long term support” versions.

This discussion was based on Ubuntu 10.04 which (at the

元記事を表示

cakephp ワンタイムURL作成をメール送信

## ワンタイムURL
> 一度あるいは、限られた時間あるいは回数しかGETリクエストを受け付けないメカニズムである。 目的は、アクセス制限されたリソースに対して未承認アクセスすることをより困難にすることにある。

何かのログインでパスワードを忘れた時にメールアドレスを入力してそのアドレス宛に再設定などを行うURLが送られてくるやつです。

## 基本的な流れ
① メールアドレスを入力してそのアドレス宛にメール送信
https://book.cakephp.org/2/ja/core-utility-libraries/email.html

“`
App::uses(‘CakeEmail’, ‘Network/Email’);
$content = array(‘url’ => $url);
$email = new CakeEmail();
$email->from(‘example@test.com’)
->to($post_email)
->template(‘text_email’)//テンプレートファイル名指定
->viewVars($con

元記事を表示

名前空間(namespace)の使い方

##名前空間を使う場面

ファイルを複数に分割して読み込むとき。

##使用目的

同一関数名やクラス名、メソッドなどのバッティングを防ぐ。
ファイルが増えたり、複数人での開発時などに有効。

##使用例

呼び出し(require)元ファイル

“`php
name = $name;
}
public function greeting() {
echo “Good morning, Mr $this->name!”;
}
}
?>
“`

実行ファイル

“`php

元記事を表示

wordpressの投稿日と最終更新日の違い

備忘録

– 個別投稿ページとかで

投稿日

“`php

“`

最終更新日

“`php

“`

元記事を表示

PHPコーディング規約について知る

# PHP-FIG
The PHP Framework Interop Gruop
https://www.php-fig.org/
ある程度のコーディングルールについて イイネ! がまとめられた場所

# ACCEPTED なルール

## PSR-1: Basic Coding Standard
### 概要
共有PHPコード間の高度な技術的相互運用性を確保するために必要な標準コーディング要素と見なされるべきもの
### タグ
ファイルは、 のどちらかを使用する必要がある
### 文字コード
ファイルは、文字コードについてBOMなしUTF-8を使用する必要がある
### Side Effects
ファイルは、以下のいずれかを行うべきだが、両方を行うべきではない
 クラス、関数、定数などを宣言する
 出力の生成、設定ファイルの変更など
Side Effects = クラス、関数、定数などの宣言に直接関連しないロジックの実行、ファイルを include するだけ
出力の生成、require または include の明示的な使用、外部サービスへの接続、

元記事を表示

public staticとは?

# Laravelのバリデーションのルール

Laravelでバリデーションのルールは様々な書き方があると思うが、もしModelに書くとこのようになるだろう。

“`php
namespace App;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
public static $rules = array(
‘title’ => ‘required’,
‘body’ => ‘required’,
);
}
“`

そして、Modelに書いたルールをControllerではこのように利用できる。

“`php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Test;

class TestController extends Controller
{
public function create(R

元記事を表示

phpmigでマイグレーションを行う

#phpmigとは
phpmigは、フレームワークによらないマイグレーションツールです。
laravelやFuelPHPなどのフレームワークでは標準のマイグレーションツールが存在しますが、素のPHPを使う場合に適していません。
(各フレームワークのマイグレーションのみを使う方法もありますが)
そこで今回は、マイグレーションにphpmigの利用を考えます

##インストール方法
まずはじめに、phpmig 及び pimpleのインストールを行います。
インストールはcomposerにて行います。

“`
//phpmigのインストール
$ composer require davedevelopment/phpmig

//pimpleのインストール
$ composer require pimple/pimple
“`

##初期設定
次に、phpmigの初期設定を行います。

“`
//phpmigの設定ファイルphpmig.phpを作成
$ vendor/bin/phpmig init
“`

今回はMAMPのMySQLに接続をします。

“`phpmig.php

元記事を表示

OTHERカテゴリの最新記事