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

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

wordpressでアドバンスドカスタムフィールドが保存するだけで消える…どうすんだ…(上限があるらしい)

#wordpressの保守作業
## カスタムフィールドの追加
保守案件でカスタムフィールドの追加をするのが来た。
めんどいなーと思いつつ追加。
![q1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104078/fba72920-ddda-5a0c-3ee8-5a92d9fe4e88.png)

ぼちぼちめんどい条件判定入れてる。
これで近畿エリアを追加して、大阪府を追加してーという作業を行った。

動作確認を行って、ちゃんと動いてんなーっていうことを見て就寝。

## 入電
クライアントさんから入電。
またいつもの世間話やろーはなほじーとしてたらLINEが。
> 客先から給料とかの値が表示されてないと連絡がありました。
自分も確認したら表示されてませんでした。
広告を落とされてしまうので支給対応お願いします。

と…
軽く青ざめる。
バックアップ取ってたっけかな…事前にはとってねーな…
折り返しの電話をいれる。

自分:LINE見ました
クライアントさん: あの作業してからですかねー?
自分:多分

元記事を表示

【PHP】foreachで最初と最後の処理を制御する

# 目的
「`php foreach 最初と最後`」「`php foreach 最後`」「`php foreach last`」などで検索すると、微妙な例ばかり出てきたのでイラッ☆として書きました。
なるべくベストパターンを載せるように努めていますが、同じようにこの記事にイラッ☆とした人は、編集リクエストを送っていただけると助かります。

# PHP 7.3未満の場合

## 実装

“`php

$array = [‘a’, ‘b’, ‘c’, ‘a’];
foreach ($array as $index => $value) {
if ($index === 0) {
// 最初(始端処理)
echo ‘おはよう!’, ‘
‘;
}

echo $value, ‘
‘;

if ($index === count($array) – 1) {
// 最後(終端処理)
echo ‘おやすみ。’, ‘
‘;
}
}
“`

## 結果

“`html

おは

元記事を表示

WordPressでプラグインを使わずカスタム投稿タイプを追加する方法

## プラグインを使わず投稿タイプを追加
– functions.phpに以下の関数を追加
– 具体的なオプションについてはcodex参照
[register_post_type()](https://developer.wordpress.org/reference/functions/register_post_type/)
– taxonomyは投稿と同じものを使えるが、分けたほうがいいかも

“`php
// functions.php
function create_posttype() {
register_post_type( ‘products’,
// オプション設定
array(
‘labels’ => array(
‘name’ => __( ‘製品一覧’ ),
‘singular_name’ => __( ‘製品情報’ )
),
‘public’ => true,
‘has_archive’ => true, // 一覧ページを有効化する場合true

元記事を表示

言語別AWS SDKのパフォーマンスの一検証

# 背景
## タグについて
AWSはリソースに[タグ](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Using_Tags.html)の付与が可能です。AWSにおけるタグはリソースの管理や[コスト配分](http://blog.serverworks.co.jp/tech/2019/07/29/cost-alloc-tags-basic/)の用途で用いられ、タグの付与設計はAWSの運用において非常に重要なポイントとなります。
特に大規模な環境や組織になるとリソースに付与するタグは非常に多くなる傾向があります。

## AWS SDK for Rubyのパフォーマンス
[こちらの記事](https://qiita.com/kure/items/19b1c17a56d81e2bb955)でも言及したようにAWS SDK for Ruby では、リソースにタグが大量に付与されている場合、一度に大量のリソースを取得する場合に大幅に時間がかかることがあります。
以下はEBSを例に、タグ付与のあり・なしとで、リソースの取得(d

元記事を表示

PHP 基礎

IT未経験のスクール生が学んだことをアウトプットします。:zipper_mouth:
PHPをやってみました。基礎の基礎レベルですが、Rubyと似ていて分かりやすかったです。
抜粋してアウトプットをします。

##PHPの書き方
PHPはHTMLに埋め込んで使うことができます。の中にPHPの命令を書いていきます。
の部分がHTMLに変換された上で表示されます。

“`index.php


PHP

PHP

‘;?>


“`
文字列などの出力はechoを使います。
PHPでは文末にセミコロン「;」を使って文を区切ります。 セミコロンを忘れるとエラーが起きるので注意しましょう。
文字列を出力する場合はシングルクォーテーション「’」かダブルクォーテーション「”」で囲みます。

##変数
phpに限らずプログラミングには変数という概念があります。オブジェクト(データ)の入れ物、またはオブジェクトを識別する名札のよう

元記事を表示

PHPにおいてガード節はインデントするかしないか

# はじめに

if分のネストを下げるためにガード節を使うのをよく見かけるかと思いますが、その際インデントはするのかしないのか意見が分かれているようなので少し調べてみました。

# 検証

きちんとまとめようと思ったのですが、うまいことまとまらなかったので調べた結果をだらだら書いていきます。

まずPSR-2では

> The structure body MUST be indented once

とあります。インデントする派ですね。

一方[teratail](https://teratail.com/questions/72072#reply-113816)には

> 「単にreturnするだけのif文」は1行で書いて、あとにインデントを残さない、という方が主流です(「ガード節」という名前までついている書き方です)。

というコメントがありました。インデントしない派ですね。
主流とも書かれているので実際に自分がインストールしているライブラリ配下を検索してみましょう。メジャーなライブラリが採用している方法がきっと正義です。

調べ方はPHPStormにてvendor配下を`if

元記事を表示

win10, XAMPPでWordpressを大量に動かしている人向けのリセット方法

ローカルにてWordpressのテスト環境を構築しているのですが作業が終わった後、通常であれば

– ファイルの削除
– データベースの削除
– 次に使う時のためのファイル準備(wp-config生成前)

上記の作業を大体1分くらいで1連の動作ができてると思っていますが
めんどくさがりな人(特に自分)向けに最低限の手間でリセットする方法を作ります。
理想はクリックのみで完了を目指してます

まずは前提の環境
win10
xampp
Wordpress5.3
php7.3
[7zip](https://sevenzip.osdn.jp/)が入っている
C:\xampp\htdocs\wp01このようにインストールされている
※こんなアドレスlocalhost/wp01/wp-admin/setup-config.php
データベース名=wp01のようにディレクトリと同じ名前

##まずはインストール画面の入力を自動化
###データベース設定
####データベース名
※空きが無かったので12で行きます。
localhost/wp12/にアクセスするとこんな風に入力されていれば理想です。

元記事を表示

dhcpd.lease を PHP で解析、CSV出力してみたりする!

いままでDHCPサーバは、ルータに付属している機能を使用していたのですが、折角Linuxサーバが起動しているのに使ってなかったのでそのネタです。しかもDHCPサーバの立ち上げ方でなくログ(dhcpd.leases)の解析であります。

# dhcpd.leases を解析してみる
dhcpd サーバが起動しているときDHCPクライアントに払い出された情報(貸し出しデータベース、って言うらしい)が `/var/state/dhcp/dhcpd.lease` に出力されます。ただ接続機器が多いと出力結果をパッと見でわかりづらい(わからん)のです。なのでいい解析ツールがあればということで探してみました。

ちなみに dhcpd.lease は下記のフォーマットで出力されます。
[dhcpd.leases Format](https://linuxjm.osdn.jp/html/dhcp2/man5/dhcpd.leases.5.html)

# とりあえず Git で探してみる
Git で [dhcpd.leases](https://github.com/search?q=dhcpd.le

元記事を表示

PDFをブラウザで表示し、ダウンロードする。

#PDFをブラウザで表示し、ダウンロードする。
今回の期待する動作は以下。
・Chrome,firefox,IE,EdgeでPDFをブラウザ表示し、ダウンロード時に指定したファイル名を設定できること。
・Laravelを使用

#ブラウザ表示するソース
“`pdf.php
header(‘Content-Type: application/pdf’);
header(‘Content-Disposition: inline; filename=”‘ . $filename . ‘”‘);
header(‘Content-Length: ‘ . filesize($pdf_file));
readfile($pdf_path);
“`

#このままでは期待した動きにならなかった。
・失敗だったこと
POSTメソッドでリクエストする
→Chromeでブラウザ表示はされるが、ダウンロード名がURLの最後の/(スラッシュ)以下になった。
GETメソッドに変更
→Chromeは正しくなったが、IE+Edegでファイル名が期待した通りにならなかった。
IEはURLの最後の部分.pdf、Edg

元記事を表示

【PHPUnit】モックした関数の返り値を引数を元に求めるにはandReturnUsingを使う

# 背景

PHPUnit を使っていると、関数をモックにしたい場面があります。
一般には下記のように実装します。

“`php
Mockery::mock(‘class name’)->shouldReceive(‘method’)->withArgs($param)->andReturn($returnValue);
“`

こういった書き方では返り値が決め打ちになっています。
ほとんどの場面では、返り値は固定値で問題ないはずですが、今目の前で、動的に返り値が決まっていたほうが都合がいい場面が起こったので調べてみました。

# `andReturnUsing`を利用する

ありました。`andReturnUsing`という関数を使えばいいです。

書き方はコールバックを受け取り、コールバックの引数をモック化したい関数の引数と同じにします。
あとはそのコールバックの返り値を計算して`return`するだけで返り値を指定できます。

“`php
Mockery::mock(‘class name’)
->shouldReceive(‘method’)
->with

元記事を表示

LaravelでDBに入れた後にIDを取得

LaravelでDBに入れた後にIDを取得する方法。
意外とよく使うのに忘れてしまいます。

“`PHP
$data->save();
$id = $data->id;

/* or */

$data = Data::create([‘name’=>’hoge’]);
$id = $data->id;
“`

めっちゃ混ざる。

元記事を表示

Laravelで何か作ってみる〜Hello World〜

##概要
[前回](https://qiita.com/r24desgin/items/445ff3cdc5ad7aa8e9b5)、[前々回](https://qiita.com/r24desgin/items/445ff3cdc5ad7aa8e9b5)と設定したMac用のLaravel開発環境にて、とりあえず「Hello World」と表示するサイトを作る

参考:公式サイト
https://readouble.com/laravel/6.x/ja/routing.html

##前提
###環境
Laravel 7.0.8
###構成
#parkコマンド実行ディレクトリ
 BLOG Laravelルート
#サイトディレクトリ
 blog サイトルート(プロジェクトディレクトリ)

##設定
###ルーティング
サイトにアクセスしたURLによって、行う動作を指定します。

今回デフォルトでは http://blog.test にアクセスすると、ビューから**welcome**を表示する記述があります。(実行ファイルは **resources/views/welcome.blade.

元記事を表示

初心者がPHPで掲示板を作ってみた

# はじめに

プログラミング学習のアウトプットとして掲示板の制作しました。
この記事では掲示板の概要や制作過程について説明します。
ソースコードはこちらになっております。
[github:yukisugikawa/bulletin-board](https://github.com/yukisugikawa/bulletin-board.git)

# 目的
掲示板の作成の過程で基本的なweb制作の技術を学ぶ。
就職活動に向けてのポートフォリオ作り。

# 開発環境
使用言語/HTML5/CSS3/PHP7

DB/MAMP/MYSQL

開発環境/macOS Catalina 10.15.3

#主な機能

###ユーザー管理機能
・ユーザー登録機能
・ユーザーログイン機能

###掲示板機能
・投稿機能
・コメント機能
・編集、削除機能

#機能の説明
簡単にどういったコードで実装したか説明します。
見やすいように要点のみを書きました。

#1.データベース設計
・threadsテーブルのboard_idはboardsテーブルと紐付けるために追加しました。

DB: bullet

元記事を表示

Laravel 6系でセッションをファイルからデータベースの保存に変更する方法

# はじめに
Laravelではユーザーのセッションはファイルに保持しています
ファイルが出力される場所は「storage/sessions」となります

ここでは、セッションの保存方法にデータベースを使用する方法についてまとめました

# 環境
PHP 7.3
Laravel Framework 6.13.1

# セッションをデータベースに保存する流れ
## 1. セッションを保持するテーブルを作成します

以下のコマンドを実行して、マイグレーションファイルを作成します

“`bash
$ php artisan session:table
“`

コマンドを実行すると、以下のマイグレーションファイルが作成されます

“`database/migrations/YYYY_MM_DD_hhmmss_create_sessions_table.php

元記事を表示

docker-composeでPHP+MySQLの環境構築、composerでphpunitインストール

## はじめに

dockerでphp + apache + mariadb の環境を構築して、
phpmyadmin、xdebugおよびcomposerを使ってphpunitをインストールします

[下記のgithubリポジトリ](https://github.com/jyef/project)
## ディレクトリ構成
“`
├── composer.json
├── docker-compose.yml
├── db
└── my.cnf
├── html
│   ├── index.php
│   ├── sample.php
│   ├──tests
│     └── sampleTest.php
├── php
   ├── Dockerfile
└── php.ini
“`
## docker-compose.yml
“`
version: “3”

services:
php:
build: ./php/
tty: true
stdin_open: true
volumes:
– ./

元記事を表示

PHPプログラミング入門

#はじめに
こんにちは。
なんか学校がコロナ休みで暇すぎるので今回はPHPについて書いてこうかなと
思います。
よかったらツイッターやってるのでフォローよろしくお願いします。
↓↓
[@DevTweak](https://twitter.com/DevTweak)
あと低いクオリティーではありますが、Tweakも作ってるのでよかったらリポジトリ登録お願いします
↓↓
[リポジトリ](https://sss136.github.io/)

#目次
1. PHPとは
2. 基本的な文法
3. 画面に出力するコード
4. いろんな演算子
5. 条件分岐
6. 繰り返し
7. sessionとcookie
8. その他いろんな関数とか
3. まとめ

##PHPとは
まあめちゃくちゃ簡単に言うと、動的なWebページを作るサーバーサイドのオブジェクト指向型のプログラミング言語です。
何ができるかって言うと、代表的なのが掲示板ですね。SQLと組み合わせてデータベースに書き込んだり読み込んだりしてそれをWebページに表示したりできます。あとはログイン

元記事を表示

PHP初心者によるマジックメソッドの理解

#マジックメソッドとは

コンストラクタ「__construct()」等のアンダースコア2つから始まるメソッドで、
基本的には、ある状況において実行されるメソッド。

#主なマジックメソッド
##constructとdestruct
####__construct()
 **インスタンスの生成時**に実行される

####__destruct()
 **プロセスの終了時や、unset()で明示的にインスタンスを破棄した場合に**実行される

##getとset
####__get()
 **アクセスできないプロパティにアクセスした場合に**実行される

####__set()
 **アクセスできないプロパティに対して値をセットした場合に**実行される

##issetとunset
####__isset()
 **アクセスできないプロパティに対してisset()を行った場合に**実行される

####__unset()
 **アクセスできないプロパティに対してunset()を行った場合に**実行される

####isset()
 変数が宣言されていて、NULLでなければ、true
 

元記事を表示

Dockerでメールフォーム開発用コンテナを3分クッキング

## TL;DR

コードだけ読んでいただければよろしいかと。

## 前置き

実はメールフォーム設置だけの案件を意外と多く請けます。なお現在のところPHP率100%です。

今まではローカルの環境構築に `php -S` でローカルサーバー建てて [mailcatcher](https://mailcatcher.me/) に投げてテストしていて、正直これで十分だと思っていますしこれからもこれで行く気がします。軽いし。

しかしながらメイン業務であるフロントエンド開発では、基本としてDocker環境を活用した作業になることが多く、ローカル環境はこれからはDockerだな!というわけでミニマムなメールフォーム開発用コンテナを試し書きしてみたところです。

前置きおわり。

## やってみた

### ディレクトリ構成

“`
/
├ php/
│ ├ php.ini
│ └ Dockerfile
├ html/
└ docker-compose.yml
“`

想定するディレクトリ構成はこんな感じにしました。登場人物も少ないので割と自由に置いて良いと思います。

### dock

元記事を表示

【Laravel】ファサードとは?何が便利か?どういう仕組みか?

# はじめに
Laravelを使っていると
「ファサード」という言葉がちょこちょこ出てきたりします。

ファサードとな何なのか、
何のためにあるのか、
どういう仕組みで動いているのか、
など調べてみたので簡単に解説していきます。


本記事内ではサービスコンテナを利用したコードが多数登場しますが
サービスコンテナ自体の仕組みは解説しません。
サービスコンテナについてはこちらの記事で解説しています。
[【Laravel】サービスコンテナとは?2つの強力な武器を持ったインスタンス化マシーン。簡単に解説。](https://qiita.com/minato-naka/items/afa4b930a2afac23261b)

# 概要
ファサードとは、
クラスをインスタンス化しなくてもstaticメソッドのように
メソッドを実行できるようにしてくれる機能のこと。

こんな風にできる。

“`php
// 通常
$classA = new ClassA();
$classA->methodA();

// ファサード利用
FacadeClassA::methodA();
“`

このイン

元記事を表示

openshift4.3でlaravelする②:Add Storageする

# はじめに

前回まででopenshift4.3上で基本的なlaravel環境は整いましたが
例えばユーザがアップロードしたファイルを保存するなどする場合
laravelの場合、一般的に「`./storage/app/public`」にファイルを格納し
「`./public/storage`」としてシンボリックリンクを張り公開します。

つまりPodのDeployからファイルに変更がある可能性があるわけで
現状だとPodが再Deployされると揮発性なので消し飛んでしまいます。

そこで、このpublicにstorageを追加したいと思います。

前回までの記事
– [openshift4.3でlaravelする](https://qiita.com/imp555sti/items/ad530f671015b64b0af0)
– [openshift4.3でlaravel+MariaDBする](https://qiita.com/imp555sti/items/c3f36e2710fe9bc6c76b)

# ストレージの追加

最終的にはYAMLですべての環境を準備したいところです

元記事を表示

OTHERカテゴリの最新記事