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

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

アリババクラウドECS上のWP-CLIで複数のWordPressサイトを管理する方法

この3部構成のチュートリアルでは、WP-CLIで**WordPress**の高度な管理を設定する方法を説明します。パート3では、アリババクラウドECS上のWP-CLIで複数の**WordPress**サイトを管理することに焦点を当てています。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/advanced-wordpress-management-using-wp-cli-on-alibaba-cloud-ecs-part-3_591416)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

この記事は[Alibaba Cloud Tech Share](https://www.alibabacloud.com/ja/campaign/techshare)執筆者のJeff Cleverleyによるものです。[Tech Share](https://www.alibabacloud.com/ja/campaign/techshare)は、クラ

元記事を表示

PHPでShift_JISのcsvファイルをパースするとcsvが壊れる

PHPでcsvファイルをパースしようと思ったのですが、文字列にカンマが混入しているところがうまくパースできませんでした。`”文字列,文字列”`となっている部分のカンマが項目の区切りのカンマと認識されてしまいます。

# 解決方法
“文字列,文字列”という部分は通常文字列リテラルの`”`で囲われているので文字列として認識されるはずなのですが、Shift_JISのファイルについてはうまくいきません。

一旦ファイルの中身をUTF-8に変換して、tmpファイルに保存した後に、csvファイルとして読み込むとうまく認識することができます。

“`php

$sJisFile = file_get_contents($file->path());
$utf8File = mb_convert_encoding($sJisFile, ‘UTF-8’, ‘SJIS’);
$fp = tmpfile();
$meta = stream_get_meta_data($fp);
fwrite($fp, $utf8File);
rewind($fp);

$file = new \SplFileObject

元記事を表示

Laravelでクリーンアーキテクチャに近づけてみる

# 目次
– はじめに
– バージョン
– もととなるシンプルなCRUD
– クリーンにしてみる
– 準備
– packagesディレクトリの全体像
– Entities
– Gateways
– Use Cases(とControllers)
– テストを書いてみる

# はじめに
Laravelを使ってクリーンアーキテクチャっぽいことをやってみました。
“クリーンアーキテクチャっぽくしつつLaravelの機能(主にEloquent)を使う”
ということを試してみました。
自分の理解がまだ浅いこともあって、”クリーン” かどうかと聞かれると正直微妙なところですが、MVCフレームワークの恩恵を受けつつクリーンアーキテクチャを採用してみる一つの妥協点としてはアリなんじゃないかと思います。

実際のコードはこちら
https://github.com/koyablue/laravel_clean_architecture

# バージョン
PHP 7.4.4
Laravel 6.18.40

# もととなるシンプルなCRUD
– ユーザーがいて、そのユーザーがメモの作成/編集/削

元記事を表示

Laravelでクリーンアーキテクチャを実装するときに参考にしたいリンク集

– DDDとかクリーンアーキテクチャについて調べるにあたって参考にした記事一覧です
– Laravelで実装することを目的として調べたので、ほぼPHP/Laravel系の記事です
– いいのがあれば随時追加予定


## “Laravelでクリーンアーキテクチャ” の実装サンプルが見たい場合
実際のコードを見たい人向け

– [Laravelで実践クリーンアーキテクチャ](https://qiita.com/nrslib/items/aa49d10dd2bcb3110f22)

– [Laravel5.6とVue.jsでクリーンアーキテクチャを目指す](https://aimstogeek.hatenablog.com/entry/2018/10/05/151123)

– [Laravel でやってみるクリーンアーキテクチャ(動画)](https://youtu.be/9IuDucqAuM0)

## Entityとは何かわからなくなった場合
正直わからないです

– [ドメイン駆動設計のエンティティとクリーンアーキテクチャのエンティティ](https://nrslib.com

元記事を表示

Laravelでneo4jを使ってみる。プッシュ通知メモ

push通知のライブラリ入れる細かい設定は他サイト参照
“`
composer require laravel-notification-channels/webpush
“`

※以下neo4jで注意する点

デフォルトのモデルはNeoEloquentを使っていないので変更

“`config/webpush.php
‘model’ => \App\Models\PushSubscription::class,
“`

モデル

“`app/Models/PushSubscription.php

元記事を表示

※学習用メモ デザインパターン:Builder編[PHP]

# Builderパターンとはどういうものか

まず最初に、builderは**建築業者**を意味する言葉です。
今回のパターンは**同じ作成過程**で**異なった結果**を得るためのものとなります。

考え方として、建物を建てる際に、完成までに必要な要素として「構築の過程」と「素材」があると考えます。
「過程」では、どの順で、どこに何を配置するか、「素材」では、柱や壁、屋根は何で作るか、という形です。

「過程」「素材」それぞれ様々な組み合わせが考えられます。
そこで、「過程」「素材」のそれぞれを個別で用意しておくことで、色々な用途に柔軟に対応できるようになります。

Builderパターンは、このような**「過程」を決定するDirector**と呼ばれるものと**「素材(表現形式)」を決定するBuilder**と呼ばれるものを組み合わせることで、オブジェクトの生成をより柔軟にし、そのオブジェクトの「過程」をもコントロールすることができるようにするためのパターンです。
[参考サイト]https://www.techscore.com/tech/DesignPattern/Builde

元記事を表示

Mac HomebrewでPHPをインストールする

# 目的

– MacにHomebrewを使ってPHPを導入する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| Homebrew バージョン | 7.4.8 | Homwbrewを用いて導入 |

# 前提条件

– Homebrewが導入され`$ brew`コマンドを実行できること。

# 前提情報

– 本記事ではPHP 7.4をインストールするがインストール時のバージョン指定で他のバージョン

元記事を表示

オブジェクト指向の真髄がわからなくてもそれっぽいコードが書ける実装ルール

オブジェクト指向よくわからんと思っている方達も「ThoughtWorksアンソロジー」の第5章「オブジェクト指向エクササイズ」にて紹介されている9つのルールを取り入れることで、こいつオブジェクト指向が分かっている!!と思われるようなコードが書ける。はず。

今まで手続き型で実装しオブジェクト指向に慣れていない方にとってはとても異様で非現実的なルールと思われるでしょう。
しかしオブジェクト指向で実装する場合はどれも当たり前に使われるルールとなります。
すぐにでも守ることのできる簡単なルールもあるので是非、今すぐ取り入れてオブジェクト指向完全理解したったって周りにそれっぽい顔していきましょう。

※ サンプルコードはPHPで書いてます。

1. 1つのメソッドにつきインデントは1段階までにすること
1. else 句を使用しないこと
1. すべてのプリミティブ型と文字列型をラップすること
1. 1行につきドットは1つまでにすること
1. 名前を省略しないこと
1. すべてのエンティティを小さくすること
1. 1つのクラスにつきインスタンス変数は2つまでにすること
1. ファーストクラスコレ

元記事を表示

FuelPHP Input::post 第2引数

Input::post には第2引数を設定でき、目的の要素が見つからなかった場合に返す値を設定できる。
これによって空かどうかなどの条件式を書く必要がなくなる。

“`example.php
$number = \Input::post(‘number’, 0);
//numberが見つからなかったら0を返す
“`

元記事を表示

CentOS8 + nginx1.18 + php-fpm7.4 + MariaDB10.5 + CodeIgniter4の開発環境準備メモ

# 概要

2020年9月27日時点で、[環境情報(バージョンなど)](#環境情報(バージョンなど))に記載の各環境を採用した開発環境を構築したので、その環境準備を行った際のメモとして残します。

# 環境情報(バージョンなど)

– CentOS 8.2.2004 (Core)
– Nginx 1.18.0
– php-fpm 7.4
– MariaDB Ver 15.1 Distrib 10.5.5-MariaDB
– Composer version 1.10.13 2020-09-09 11:46:34
– CodeIgniter 4.0.4

# 各種設定ファイルパスのメモ

|環境|ファイルパス|
|:–|:–|
|nginx|/etc/nginx/conf.d/default.conf|
|nginx|/etc/nginx/nginx.conf|
|php|/etc/php.ini|
|php-fpm|/etc/php-fpm.d/www.conf|
|MariaDB|/etc/my.cnf.d/server.cnf|
|MariaDB|/etc/my.cnf.d/

元記事を表示

PHPによる(複数)画像アップロード処理

PHPの画像処理は苦手とする方が多いみたいで、リクエストをいただいたので、解説していきます!
他にもリクエストがあったら是非お願いします!
期待にお応えできるかはわからないですが笑

フロントエンド側の処理は簡単なので省略します笑
一応補足しておくと
“post“送信で“enctype=’multipart/form-data’ “これを指定するだけです!

“`user_edit.php





ユーザー情報編集

ユーザー情報編集

‘>

アップロード画像

<

元記事を表示

[Laravel] プロジェクト開始までのコマンド忘備録

## 概要

Laravel プロジェクトを開始するまでのコマンドをまとめた個人メモ。

## 前提条件

* MacOS
* Composer, Laravel インストールされている
* https://readouble.com/laravel/6.x/ja/installation.html
* Docker がインストールされている
* https://docs.docker.com/get-docker/

## プロジェクトの開始

Version6系を使用し、`tasklist`というプロジェクト名で作成する

“`
$ composer create-project –prefer-dist laravel/laravel tasklist ^6.0
“`

## DB作成

Dockerを使用し、`mysql` コンテナを立ち上げる。

“`
$ docker run –name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql
$ docker ps
CONTAINER ID

元記事を表示

[PHP] selfとstaticの違いメモ

##要点
self: 定義時のクラスを指す
static: 実行時のクラスを指す

##例
“`
class Foo
{
public function helloGateway()
{
self::hello();
}

public static function hello()
{
echo __CLASS__ . ‘hello’ . PHP_EOL;
}
}

class Bar extends Foo {
public static function hello()
{
echo __CLASS__ . ‘hello’ . PHP_EOL;
}
}

$bar = new Bar();
echo $bar->helloGateway();
//この場合はFoohelloが出力される
“`

元記事を表示

勉強メモ5_アップされてる記事を元にgatling構築

# gatlingを使うため、ApacheとPHP導入

以下↓↓の記事を参考
Apache導入
https://qiita.com/sango/items/b045a1da17606eda6f82
PHP導入
https://qiita.com/sango/items/a08c5b04df7125aaaad3

PHPで日本語をJSON形式に変換する方法を現役エンジニアが解説【初心者向け】

“`php
—————Apache導入↓↓————————-
#ルートに変更
su – root
#apacheインストール
yum -y install httpd
#apache起動
systemctl start httpd
#apacheが動いてるかブラウザで確認
http://127.0.0.1/
“`

“`php
—————PHP導入↓↓————————-
#PHPインストール
yum -y install php
#phpファイル作成するため、移動
cd /var/www/ht

元記事を表示

【PHP】endroid/qr-codeを使ってQRコード画像を出力してみた話

# はじめに
タイトルの通りですが、
endroid/qr-codeを使ってQRコード画像を出力してみました。

以下で作成した環境を引き続き利用していますので、
今回もコマンドラインから実行となります。

* [【PHP】TCPDF + FPDIでPDFを出力してみた話](https://qiita.com/suupoo/items/0eb0f42c70bf535a66c3)

# 本編
## 環境構築
[【PHP】TCPDF + FPDIでPDFを出力してみた話 > Docker](https://qiita.com/suupoo/items/0eb0f42c70bf535a66c3#docker)を元に
今回新たに必要となった、**gd拡張モジュール**の導入設定を追加します。

“`dockerfile
# GD
RUN apt-get install -y libjpeg-dev libpng-dev libfreetype6-dev
RUN docker-php-ext-configure gd –with-freetype-dir=/usr/include/ –wi

元記事を表示

php・可変変数に配列を渡す

環境
初書:2020/09/27
PC:macOS 10.15.7
php 7.4.10

# 前置き

PHPで可変変数を扱う時があったのだが、その時にかなり手こずったのでメモ。

# 前提
可変変数の知識

# コード(失敗例)

“`php:index.php
class cls {
public string $str1;
public string $str2;
public function __construct(){
$this->str1 = “aa”;
$this->str2 = “bb”;
}
}

$ouc = new cls();
“`

とりあえずクラスを用意して、インスタンスした。
そしてこの後、str変数にアクセスしたいのだが、この時に少し変わったことをする。

“`php:index.php
$arr[] = “str1”;
$arr[] = “str2”;

$ouc->$arr[0] = “cc”;
“`
何をしたいかというと、`$arr[0]` = “str1″、つまり`$o

元記事を表示

[ WordPress ] プラグイン Custom Field Suite の関連ポストの情報を、投稿ページに表示させる

WordPress のプラグイン Custom Field Suite には「関連ポスト」というフィールドがあります。今回、記事に投稿者を紐づけたいと思いましたが、WordPress にそもそも備わっている author は以下の理由から避けました。

##【避けた理由1】セキュリティ
何も対策せず投稿者を作ると、下記のURLが生成されます。

https://example.com/author/tanaka/
https://example.com/author/sato/

authorのユーザー名は、そのままWordPressのログインIDとなります。わざわざ晒したくないところです。

##【避けた理由2】メールアドレスが必須
ログインIDとなるということは、大抵のサービスと同様、ユーザーを作る際にメールアドレスが求められます。今回、記事に紐付けたい投稿者は50名を超えていました。

##Custom Field Suite の関連ポストの情報を、投稿ページに表示させるソースコード
以上の2つの理由から、まずカスタム投稿タイプの機能を使って「投稿者」を作り、投稿者名や所属、略歴

元記事を表示

【Laravel】Collectionのrejectメソッド

##はじめに
今回もLaravelのCollectionのメソッドについてまとめたいと思います。

##rejectメソッドで条件に合わないものを除外してデータ取得する

Collectionの中から条件に合わないものを除外してデータ取得することができます。

“`php:
$collection = collect([
[‘id’ => 1, ‘name’ => ‘山田’, ‘age’ => 18],
[‘id’ => 2, ‘name’ => ‘佐藤’, ‘age’ => 38],
[‘id’ => 3, ‘name’ => ‘小林’, ‘age’ => 25],
[‘id’ => 4, ‘name’ => ‘鈴木’, ‘age’ => 34],
[‘id’ => 5, ‘name’ => ‘田中’, ‘age’ => 29],
]);

$filtered = $collection->reject(function($values, $key){

return ($values[‘age’] < 30); }); print

元記事を表示

PHP Laravel 6 画像のアップロード

#前提条件
画像ファイルの保存先 = “`storage/app/public“`
データベースには“`ファイル名“`のみを保存。
ファイル名には“`ランダムな名前“`が自動で割り当てられる。

#フォームの作成

##フォームタグの記述
formタグに “`enctype=’multipart/form-data’“` を記述しないとエラーを吐きます。
これを記述することで複数類(jpeg、png等)のデータ形式を扱う事でできるようになります。(jpeg、png等)

“`create.blade.php

@csrf

“`

##コントローラーの設定
imgがない場合に“`$path = $request->file(‘img’)->store(‘public/img’);“`でエラーを吐くためif文で分岐させました。

“`recommendMovies

元記事を表示

php復習、オブジェクト指向編(個人学習備忘録)

##はじめに
筆者はずぶずぶの素人です。少しlaravelが書けるレベルです。
書けているけど僕自身がフレームワークに使われています。
laravelを使っていく打ちにもっとlaravelを理解したいと思いました。
フレームワークの本質を理解するにはphpを基礎力を向上させるほかないと考えphpの復習+脱初心者を目指します。
###class
オブジェクト指向の構成要素の1つ。classはオブジェクトの設計書のようなもの
userの名前をコンストラクトし、user名を出力する簡単なクラスを作成

“`
class Animal {
p $name;

//$user_nameの初期化
function __construct($name) {
$this->name = $name;
}
//getterの役割
public function getName() {
return $this->name;
}
}
$nnimal = new Animal(‘dog’);
echo $us

元記事を表示

OTHERカテゴリの最新記事