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

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

XAMPP x FuelPHPでPHP開発環境を構築してみた

## 概要
FuelPHPのWebアプリケーションをWindowsのローカル環境で実行するための環境を構築します。

## 環境
– Windows10 Pro
– XMAPP v7.3.12
– Fuel PHP v1.8.2
※2019/12/16現在の最新版

## 1. XAMPPインストール
[XAMPP Installers and Downloads for Apache Friends](https://www.apachefriends.org/jp/index.html)からダウンロード・インストールを実施

![キャプチャ_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488212/1342a4cc-8c59-7a59-d13a-9646ebb45c1e.png)

インストーラを起動したら、インストールの実行をします。

![キャプチャ_02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

APIの整理とお掃除をしました 開発合宿での成果を紹介

これは[ユアマイスター Advent Calendar 2019](https://qiita.com/advent-calendar/2019/yourmystar)の16日目の記事です。

# はじめに
先日、開発チームで合宿を行いました。
詳細はこちらの記事をご覧下さい。

スクリーンショット 2019-12-15 16.49.31.png
[「今年の汚れ今年のうちに」合宿2019に行ってきました](https://yourmystar-engineer.hatenablog.jp/entry/2019/12/11/080000)

その時にやったことを紹介しようと思います。

# 前提
## 各種バージョン
– PHP
– 7.1.32
– CakePHP
– 3.6.14

# やったこ

元記事を表示

【PHP】トレイトの基礎知識

#トレイトとは
トレイトとはなかなか聞き慣れない言葉ですが、いくつかの機能をまとめてコードを再利用するためのものです。
トレイトのメリットは、継承のようなis_a関係がなくとも機能を共有できるところにあります。
トレイとは以下のように宣言します。

#トレイトの宣言
“`php
sayHello;
echo ‘World!’;
}
}

$foo = new Foo();
$foo->sayHelloWorld();
// HelloWorld!
“`

また、トレイトはプロパティを定義したり、抽象メソッドを定義す

元記事を表示

php-audit-action(β版)をマーケットプレイスに公開してみた

# はじめに
みなさん大好き`npm audit`のPHP(composer)版があったとして、それをGithub Actionで動かせたら面白いんじゃないかなと思いやってみました。
作ったものの紹介とそれをマーケットに公開するために何をしたかざっくり説明します。

# 利用したもの
知っていたはいたものの`composer audit`なコマンドは存在しないので、まずググりました。
[`composer audit`でググると出てきたissue](https://github.com/composer/composer/issues/7323)を元にざっくり調査。そのなかでも扱いやすそうで、スターも多めな[sensiolabs/security-checker](https://github.com/sensiolabs/security-checker)を活用させていただきました。これは`composer.lock`を食わせれば、該当ライブラリのcve情報などがわかるものとなっています。

# 作ったもの
## プロジェクト
[glassmonkey/actions-php-aud

元記事を表示

【WordPress】今更だけど、WysiWygエディタ(ビジュアルエディタ)で書いた記事にCSSを適用する方法をまとめてみた話

## はじめに
未だ世界でも日本でもシェアNo.1を誇るWordPress!!
我が社においても、WordPressの案件は多い・・・

WordPressの案件をやっていてよく考えるのが、**相手にどうやって記事を書いてもらうのか!?**です。

WordPressにはデフォルトでWysiWygエディタが搭載されています。
*注)現在の最新WordPressのバージョンでは、WysiWygエディタとBlockエディタの両方が搭載されており、デフォルトはBlockエディタになっています。*

ただ、WysiWygエディタ(特にビジュアルエディタ)は機能が豊富なので、好き勝手使用されると書いた記事にCSSが適用されず、せっかくデザインしたページが台無しになってしまいます。

というわけで、WysiWygエディタ(以降、ビジュアルエディタと呼ぶことにします)でCSSの適用方法をまとめてみようと思います。

## ビジュアルエディタの機能制限を楽にできるプラグインを導入する
上記にも書きましたが、ビジュアルエディタは機能が豊富です。
すべての機能に対してCSSを適用させるのはとても大変なので

元記事を表示

Laravelで複数の宛先にメールを送信するときにつまづいた。

##環境
Laravel 5.5

##背景
仕事で、とあるアクションを行った時に複数の宛先にメールを送る方法がわからずに四苦八苦してしまった。

##問題点
“`app/Mail/sendmail.php
public function build()
{
return $this->from(‘XXXXfromXXXX@gmail.com’)
->subject(‘テスト送信完了’)
->to(????)
->view(‘emails.sendmail’);
}
“`

初めは直接->to()の中に記述していたが、エラーでうまくいかず…

## 見るべき場所
途中Maiableを継承している場所を確認すればいいことに気づいた。

“`app/Mail/sendmail.php
use Illuminate\Mail\Mailable;

class OrderShipped extends Mailable
{
“`
illuminateな

元記事を表示

レンタルサーバを比較してみた

レンタルサーバと言えば、超老舗の「さくらインターネット」や、わりと老舗「XSERVER」などが有名だが、「カラフルボックス」という2年前にサービスを開始した最新技術を取り入れた高速サーバがあると聞いて、ちょっと試してみた。(お試し期間30日と長め)

# カラフルボックスとは?
カラフルボックス(ColorfulBox)とは2018年1月23日に大阪で出来たレンタルサーバの会社である。
**出来てから1年と11カ月!**
1996年 さくらインターネットが創業。ホスティングサーバ事業を開始
1999年 さくらインターネット株式会社が設立される
2004年 エックスサーバが設立される
2018年 カラフルボックスが設立される

歴史が浅いためか、情報収集しても「カラフルボックス」を使っているWEBサーバは少ないようです。

さらに「カラフルボックス wiki」で検索すると・・・
> 『カラフルBOX』(カラフルボックス)は2003年12月5日にSoundTailが発売した18禁恋愛アドベンチャーゲーム。

全然違う・・・

> 『COLORFUL BOX』(カラフル ボックス)は、198

元記事を表示

DBとLaravelの接続設定【備忘録】

# はじめに
PHP/Laravelの勉強にて備忘録として

# 前提
MySQLがインストールされていること

# LaravelのDB接続設定ファイル
`config/database.php` を開く

“`php:config/database.php
/*中略*/
‘default’ => env(‘DB_CONNECTION’, ‘mysql’),
/*中略*/
“`

となっている。

`env(‘DB_CONNECTION’, ‘mysql’)`
上記のenvはDB_CONNECTIONが設定されていればDB_CONNECTION
設定されていなければMySQLを使用という意味である

#### ここでLaravelの環境変数を見てみる。
tinkerを起動し、 `print_r($_ENV)`を入力

“`
$ php artisan tinker
$ print_r($_ENV)
<中略>
[APP_DEBUG] => true
[APP_LOG_LEVEL] => debug
[APP_URL] => http://

元記事を表示

AmazonインセンティブAPI実装(Amazonギフト券)

#経緯
Amazonギフトカード実装をお願いされ、気軽にokを出したものの、概要がとってもわかりずらく、かつ参考文献が全くなく、意外と四苦八苦したので、同じ悩みの方が出ないように投稿する事にしました。
なお、事前に用意されたphpのサンプルコードからLaravelに実装し直す、という流れが一番良いと思いますが、あまりにも面倒だったのと時間との勝負だった為、決してベストプラクティスでないことはご了承ください。。

#本題
####登録→確認方法
基本的には導入マニュアルがあるので、これに沿って開発をしていきます。
[AmazonインセンティブAPIとの統合プロセスについて](https://s3-us-west-2.amazonaws.com/incentives-api-setup/index-JP.html#)
登録した後、[サンドボックス環境](https://s3.amazonaws.com/AGCOD/htmlSDKv2/htmlSDKv2_NAEUFE/index.html)で正常に動作するか確認

####サンプルコード参照
[FAQ付録](http://s3.amazon

元記事を表示

2019年の勉強会を集計してみた〜都道府県別&キーワード別〜

この記事は[Ateam Hikkoshi Samurai Inc. & Ateam Connect Inc.(エイチーム引越し侍、エイチームコネクト) Advent Calendar 2019](https://qiita.com/advent-calendar/2019/hikkoshi) 15日目の記事になります。

## はじめに

皆さん勉強会はお好きでしょうか?
私は興味のあるものを見つけては社内外の開催に関わらず参加しています
それまで知らなかった技術や知見に出会えることがその醍醐味かなと思っています?

さて、2019年はどのような勉強会がどこで多く開催されたのでしょうか?
個人的に気になって集計してみたので結果とそのやり方を公開します!

## 結果

2019年に開催された勉強会(イベント)の集計結果です。

### 都道府県別開催数

まずは都道府県別の開催数です。
東京の開催数が多すぎて単純な数値にすると他県の棒が潰れてしまうため対数軸にしています。
さすが東京!

スクリーンショット 2019-12-15 18.00</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>PHP</div>
<div class='tag-cloud-link'>勉強会</div>
<div class='tag-cloud-link'>Laravel</div>
<div class='tag-cloud-link'>Metabase</div>
<div class='tag-cloud-link'>アドベントカレンダー2019</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/2bo/items/8d8a8b37b4875e16eecf'>元記事を表示</a></div>
<h3 id=wordpressまとめ

##スラッグ

設定
– パーマリンク
– 投稿名
へ変更

## メニュー出し分け
管理メニュー
外観 – メニュー

出し分けするメニュー複数作成

header.php

if (is_user_logged_in()) {
$args = array(
‘menu’ => ‘main-menu’,
‘menu_class’ => ‘nav navbar-nav’,
‘container’ => false,
);
} else {
$args = array(
‘menu’ => ‘menu-02’,
‘menu_class’ => ‘nav navbar-nav’,
‘container’ => false,
);
}

wp_nav_menu($args);

※ ナビゲーションメニューのcss は 上記 menu_class で設定?

##サイドメニュー出し分け

###sidebar.phpと sidebar-2.php (出し分け

元記事を表示

Laravel構築

Apacheインストール

“`
# yum -y install httpd (yオプションは問い合わせに対して全て「y」で応答)

以下のコマンドで確認
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Aug 8 2019 11:41:18
“`

起動確認

“`
# systemctl status httpd
● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)
“`

`Active: inactive (dead)` は停止

Apache起動

“`
# systemctl start httpd
“`

PH

元記事を表示

PHPerが久しぶりにRubyを書いて思ったこと

## 内容

– PHPer(Laravler)が感じたRuby(Rails)への感想

## 私の背景

– PHP成分が多い人生
– 初期だとFuelPHPとか触ってた
– ここ数年はLaravel使ってた
– Rubyは2011年頃に遊びで触ってた
– [メタプログラミングRuby](https://www.amazon.co.jp/dp/4048687158/)とか読んで興奮した記憶はある
– この当時のRailsを触って「ほーん、なるほど」、みたいに思った記憶もある
– 仕事では結局使わなかったけど、[Project Euler](https://projecteuler.net) をRubyで解いたりしてみてた

といった感じの背景です。
最近Railsで仕事することになったので、PHPer(というかLaraveler)が感じたRailsに対するギャップをいくつか書きたいと思います。
すでにRailsのプロジェクトがあり、そこにJOINした感じです。

## Autoloadがわからない

PHPのロード

“`php
requir

元記事を表示

特定の日付との差が何年何か月かを表示

社内システムである特定の日付と現在の日付との差を何年何か月で表示する必要があったので、調べてみた。

– Java

あまり使ってこなかった java.time を使用。
今回は時間までは必要ないため、LocalDateTimeではなく、LocalDateを使用。

“`Java
LocalDate sampleDate = LocalDate.parse(“2019/12/09”, DateTimeFormatter.ofPattern(“yyyy/MM/dd”));
LocalDate currentDate = LocalDate.now();
// 特定の日付と本日の差を年形式で取得
//long year = ChronoUnit.YEARS.between(sampleDate , currentDate);
// 特定の日付と本日の差を月形式で取得 ※間違い。トータル月数が取得される
//long month = ChronoUnit.MONTHS.between(sampleDate , currentDate);

// コメントいただいた方法で修正
Period

元記事を表示

S3で署名Verを4にしたらエラー

AWS SDK for PHP v2を使ってるもんで、署名Verを2から4にする必要があった
そしたらファイルのアップロードで以下の様なエラーが出てアップロードできない

“`
The request signature we calculated does not match the signature you provided. Check your key and signing method.
“`

修正自体はfactoryするときに’signature’ => ‘v4’を渡すくらいで大した作業でもなく。
キーが間違ってるから確認して的なエラーメッセージだけど、ファイル一覧は正常に動くしそもそも今まで動いてたのでACCESS_KEYとSECRET_KEYが間違ってる訳でもなさそう。

ファイルアップのソースはこんな感じ

“`
// S3バケット名
$backet = ‘backet_name’;
// アップするS3のパス
$s3dir = ‘/hoge/fuga’;
// アップ時のファイル名
$file = ‘a

元記事を表示

index.phpにリクエストする時は最後に「/」を付けましょう

JSのaxiosを使ってPHPでレスポンスを返すコードを書いてたんですが、CORS対策書いてるはずなのに通信できない事態が起こったので備忘録として書きます。

#そもそも何をしたかったか
JSでリクエストする時、URLの末尾に「.php」が付くのが嫌だった

“`js
// こんな感じのが嫌
axios.get(‘**/api/user/get-user.php’)
“`
下のようにすればuserだけでアクセスできるなと

“`
api
+ user
+ index.php
“`

そうするとJSはこんな感じ

“`js
axios.get(‘**/api/user’, {params:{type: ‘get’}})
“`

これで末尾に「.php」付かなくていいね!と思いましたと…

#問題発生
最初はCORS対策書いてなかったので調べながら書いてたんですが、いくらそれっぽいこと書いても通信できない。

実際こんなの書いてた…

“`php
header(‘Access-Control-Allow-Origin: *’);
heade

元記事を表示

phpenv/php-build の小ネタ集

## はじめに

この記事は、[PHP Advent Calender 2019](https://qiita.com/advent-calendar/2019/php) の15日目の記事です。

少し前に [phpenv/php-build で拡張がすこし入れやすくなりました](https://qiita.com/kunit/items/d2db65f81d57cad96b52) という記事を書いたんですが、それに引き続き、phpenv/php-build のちょっとした使い方を紹介したいと思います。

## phpenv をいれるならば、anyenv 経由がおすすめ

[phpenv の github のページ](https://github.com/phpenv/phpenv) を参考に `phpenv` および `php-build` を入れて使うことももちろんできるのですが、 [anyenv](https://github.com/anyenv/anyenv) を使ってインストールすることをおすすめします。

最初は `phpenv` だけ使っていたが、途中から `rbenv

元記事を表示

PHPのマジックメソッド~ 駆け出しエンジニア編 ~

こんにちは!
株式会社オズビジョン 開発グループのShoと申します。

私は2019年9月に入社して、webエンジニアへジョブチェンジしました。
エンジニア歴約3ヶ月で未経験入社の新人です。29歳です。
大学出てからの約7~8年はずっと営業職でした。
というわけで今は知識も技術力もない私ですが、脱未経験エンジニア目指して頑張ります!!
(入社前に3ヶ月くらい勉強してCRUD機能実装できる程度です)

今はPHP/JavaScript/TypeScript/React/ReactNativeで、
自社Webサービスの開発(バックエンドもフロントエンドも)を行なっています。

入社する前にはプログラミングスクールでRubyを学んで、Ruby On Railsでのアプリケーション開発の仕方を学んでいましたが、入社を機にPHPerデビューしました。

そんな私が業務の中で、学んだことを書いていきます。

今回はPHPのマジックメソッド
`__call`についてです。
他にもマジックメソッドは存在しますが。

このメソッドについて理解がなく、機能改修の時に悩みました。

#背景
担当しているサー

元記事を表示

(Laravel6.x)laravel/ui で 5.8 以前の make:auth のscaffolding をする

## Laravel6.x から make:auth コマンドが消え、react と vue のscaffolding に変わった??
“`
php artisan make:auth

Command “make:auth” is not defined.
“`
以前から **laravel/ui** に認証のscaffolding が移行されたから、という情報は認識していたのですが、最近 **「laravel/ui の make:auth(ui:auth) では npm が必要で vue、react が defaultになったらしい。」** というのを聞いて公式を調べたところ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342307/2c202d69-16d3-e2be-fb11-b9342987fffc.png)

vue が前提となっているように見えるので、**今のプロジェクトではSPA用のJSは使っていないため** bladeのscaffoldings がこのまま廃止

元記事を表示

VisualStudioCodeを使い始めて変わったこと

#VisualStudioCodeを使い始めて変わったことを書いていきたいと思います。
##実は今回書いたのはVisualStudioCodeが出たての頃からのヘビーユーザです。
戸倉さん(@ayatokura)ごめんなさい。
自分はVisualStudioCodeが出たときからのヘビーユーザです。
なぜかと言うとEclipseが◯んこだったから。
1ヶ月に一回再インストールに飽き飽きしていた頃に出てきたのがAtomとVisualStudioCodeでした。
Atomはプラグインが少なかったのと重くて使いようになりませんでした。
そこで選んだのがVisualStudioCodeでした。
一番の特徴はTerminalが入っていてコマンドスクリプトも使えるんですよ。
実はLinux(Ubuntu・CentOS・RHESなどで使用可能)やMac・Windowsでも喜んでVisualStudioCodeを使っちゃうユーザでした。

依然ある職場でLinuxVimerにかなり妬まれました。
Vimが嫌になっておりしこたま困りました。
それはVisualStudi

元記事を表示

OTHERカテゴリの最新記事