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

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

file_get_contentsくん、今までごめんね。

私が弊社に新卒で入社してから,プロジェクトの中で様々な調査作業をやってきました.
中でも統計を取るタイプの調査が多かったです.
その中でも印象に残っていることがありますので,紹介しようと思います.

## 大容量 CSV を読み込む

弊社,広告関連の企業なのですが,ある日,上司からある調査依頼が来ました(一部アレンジしています).

> 弊社 HP へのアクセスや広告表示,コンバージョンの履歴で,どの県からのアクセスが多いか,また,どの時間帯にアクセスが多いかを分析してくれ

私は早速,サーバでデータを収集しました.
普段から PHP を使っておりましたので,この集計作業も PHP でやることにしました.
慣れた手つきでファイル名を指定し, `file_get_contents` 関数でファイルを読み込む処理を記述していきます.

(ファイル読み込み部分のみ)

“`php

元記事を表示

一人暮らしの寂しさを推しとIoTとLINE Botで解決した話

この記事は[「ニフティグループ Advent Calendar 2019」](https://qiita.com/advent-calendar/2019/nifty) 7日目の記事です。
6日目は「[私のチームで行っているプラクティスとスクラムマスターとしての考え方](https://qiita.com/yt_hatterene/items/868e766229512ed3a2f1)」でした。
私のチームでもスクラム開発を導入していますが、同じスクラムと言ってもチームごとに進め方の違いが見えて面白かったです。
特に `ファシリテーターを持ち回り制にする` や `デイリースクラムでBGMを流す` がとても新鮮でした!

# はじめに
10月に実家を出て一人暮らしを始め、**一人暮らしデビューあるある**の例に漏れず数日でホームシックになった @saikei です。
*誰も出迎えてくれない真っ暗で無音の家に帰る*のはメンタル的にしんどいですね。寂しい。家族って大事。

このままでは本当に家に帰りたくなくなってしまうので、どうにか対策方法は無いかと考えた結果、「推しとIoTとLINEに頼ろ

元記事を表示

Laravelを一年間くらいやったので、個人的ハマりポイントと掲示板作成!

こんにちは。Advent Calendar初参加です!?
Advent Calendar 2019の7日目の記事になります。
去年の6月からお仕事でLaravelを使えることになって、Webシステムの開発をやってました。自宅でも復習がてらに掲示板を作ってみました。
お仕事や自分で一年間くらい使って、個人的に感じたLaravelのハマりポイント的なことのまとめと、簡単な実装だけですが、作った掲示板の紹介をしたいと思います。

## ハマりポイントと解決方法
思い出せたものだけ。ホントはもっと色々あったはずだけど。。
何かにメモっておけばよかったです?

### 暗号化キーの未設定エラー
起動して画面を確認すると「No application encryption key has been specified.」というエラーメッセージが…
下記コマンドで実装すると.envのAPP_KEYに値が設定されて、正常に動くようになる。

“`
php artisan key:generate
“`

### .envが読み込めてない。
なぜか分からないけど、.envが読み込めてなくて、渡し

元記事を表示

CakePHP3 ORM → CakePHP2 変換を作って挫折した話

[CakePHP2→3への段階的なバージョンアップ](https://engineer.blog.lancers.jp/2019/09/cakephp2to3_start/)に挑戦しています。

その際、一番のハードルになるであろうModelのORM周りの移行方法を検討していました。

昨年のAdvent Calendarでの @kunit さんの記事「[CakePHP2 から CakePHP3 ORM を使ってみる](https://qiita.com/kunit/items/f00d232baead413ba223)」はとても興味深い試みで、可能性を感じさせるものでした。

今回、このアプローチを応用し、段階的な移行ができるか挑戦してみました。

※結果、挫折して別なアプローチに切り替えたのですが、CakePHP2からCakePHP3を呼び出す処理など、参考にさせていただいた部分は非常に多かったです。

以下、その顛末を書きたいと思います。

# CakePHP2とCakePHP3を共存

CakePHP2とCakePHP3を共存します。

CakePHP3をcomposerでイ

元記事を表示

【Docker / php-fpm】docker-php-entrypointの動作

[php公式イメージ](https://hub.docker.com/_/php)のDockefileの内容を確認していたら

“`Dockerfile:Dockerfile
ENTRYPOINT:[“docker-php-entrypoint”]
(中略)
CMD:[“php-fpm”]
“`

という記述を見つけてなんぞこれ?となったのでその解説。
php公式イメージで**php起動にオプション付与**したり、
**phpと別プロセスも走らせたりする**ときの一助にはなるかと。
# ENTRYPOINTとCMDが両方ある場合
ENTRYPOINTとCMDがどちらもセットしてある場合、
**CMDの設定値はENTRYPOINTへの引数として渡されます。**
# 今回のケース
今回の場合、CMDに設定されている**php-fpm**は**それ単体でプロセス起動**されるのに、わざわざENTRYPOINTの**docker-php-entrypoint**に**引数として渡される**ことになります。

僕の場合、**CMDにシェルを指定してphpとcronを同一コンテナで動かそう**

元記事を表示

音声認識するオンラインビンゴゲームつくった

# オンラインのビンゴゲーム
私は[commew(こみゅー)](https://commew.net/)というフリーランスコミュニティーに参加してます。
そこでチームを組んで作った「みんにゃでビンゴ」というWebアプリを紹介します!

commewでは、月に1回「フリーランス集会」が開かれています。オンライン飲み会的なやつです。
その集会で**「オンラインでビンゴゲームをしたいよね」**と言う話になったのですが、なにげにWebを探してもいい感じのサービスが見つからない~~(最近のわけぇもんはビンゴとかしないのかな・・・)~~ので、**コミュニティー内でチームを組んで作る**ことにしました。

このビンゴには、遊び心で**音声認識**の機能をつけたので、そこの実装を中心に紹介をします。

ゲームは公開済みです。
https://minnya.fun/
https://github.com/daisuke85a/bingo ~~(コードは汚いから読まないで)~~

JSとPHPで作っています。フレームワークは使ってません
~~(むしろ、当初の僕はフレームワークを使えなかった・・・)~~

元記事を表示

AWS EC2上にPHPのWebサイトを公開して、「Hello World」を表示するまでの全手順

# はじめに
AWSにまったく触れたことがない人、サーバーを立てたことがない人を対象とした記事です。
AWSのEC2にPHPファイルを置いて、独自ドメインでWebサイトを公開するまでの手順をまとめました。
AWSのアカウント取得は以下の記事を参照してください。
[AWS上に静的なWebサイトを公開して、「Hello World」を表示するまでの全手順](https://qiita.com/harufuji/items/b3ebb4ac059587e6168f)

### AWSとは
AWSとは、Amazon Web Serviceの略で、Amazon社が提供する世界最大のクラウドサービスの名称です。
クラウドサービスとは、ネットワーク上にあるさまざまなサービスを必要に応じて利用するシステム形態のことです。

### EC2とは
amazon elastic compute cloudの略で、Amazonが提供する仮想サーバーサービスの名称です。PHPを動かすことができるレンタルサーバーサービスがEC2です。Elasticは「しなやかな」という意味です。

# 全体の流れ
1. サーバー

元記事を表示

PHPで行うと楽になること

#PHPアドベントカレンダー6日目です。
##やっと常識的な時間に戻ってまいりました。
今回の話題はPHPのデータベース関連でやっておくと楽になることです。
##毎回接続部を書くのめんどくさいと思う人いませんか。
これ実はOJTに一緒に行った相方からしつこく言われたことですが。
私自身はそれが常識だからいいんじゃないっと言ってました。
ですが、同士得てもカプrセル化して設置したらそのままつながってSQLを立たけるようにしてほしいと言われたので作ってみました。
実はこれはGithubの自分のリポジトリにもあるので見ておいてほしいと思いますがあえて今回は書きます。

“`php:databese接続用Includeファイル

元記事を表示

Laravel Excelで読み込んだファイル編集して出力する方法

環境
Laravel 5.2
Laravel Excel 2.1
php 7.0

業務でExcelファイルを出力する必要が出たため使用しました。

42列×1万行ほど出力する予定で、bladeテンプレートを使った場合と比較した結果、Excel雛形を用意したほうが速かったので今回はそちらを使用しました。

#インストール
インストールについては[document](https://docs.laravel-excel.com/3.1/getting-started/)にLaravelバージョンごとの案内があるのでそれにしたがってください。
config/app.phpのServiceProviderとaliassesに追加しておくと“`use Excel“`で呼び出せて便利です。

composer update後にphp artisan config:cacheをしないと反映されないみたいなので忘れずに!

#やり方
“`php

//読み込み
Excel::load(‘file.xlsx’, function($file) {
//シートの選択
$file->she

元記事を表示

Laravelのユーザスニペットが効かない時 (VSCode)

laravelでは.phpファイルを使っているから勘違いしやすいが、
php.jsonに記載したコードが出てこない時は、
blade.jsonに記載していないことが原因だったりするので注意です。

なんて、間違うのは多分私だけだと思いますが・・。

元記事を表示

【CakePHP2】複数データベース設定ファイル(database.php)の読込み

## 内容

データベース接続の設定ファイル「database.php」を複数置いた環境にて
動的にDBを切り替えるため設定ファイルを読み込みたい

## やったこと

Behavorに処理を追加しControllerから取得

“`Model/Behavior/HogeBehavior.php

元記事を表示

(超初心者向け)Laravelとdocker-composeでの開発環境構築

2年前に書いた以下の自分の記事がいい加減古臭くなってきたので、サクッとアップデートしようと思います。
それでもだいぶ枯れた技術の塊ですいません。

https://qiita.com/miutex/items/ebc13fc78da4a19a3da4
https://qiita.com/miutex/items/4a22a404d26d3ffd16f2

# やること
– Laravelインストール
– docker-composeによる設定、起動

公式ではHomesteadの利用が推奨されていますが、Dockerの方が文字通り「あっという間に」構築が完了しますし、複数人の開発者に展開する時にDockerの方が楽です。

# 開発環境
以下の内容はMacでやっています。
composerとDockerのインストールは済ませておいてください。

# ディレクトリ構成

最終的に以下のようになります。

root(親ディレクトリ)
├docker
| ├php
| | └Dockerfile
| └web
| └default.conf
├Laravel
└docker-compose.

元記事を表示

SpreadSheetを簡易データベースのように使う最も簡単な方法

この記事は [StudioZ Tech Advent Calendar 2019](https://qiita.com/advent-calendar/2019/studioz) の6日目の記事です。

先日、ちょっとしたWebサイトの開発において不定期で企画側で表示上の数値を変更したいという要望がありました。
そんなとき、SpreadSheetなら誰でも扱えるし、スマートフォン上からでも操作できるし、DBマスタのように使う事ができればエンジニアの手を使わずに好きなタイミングで更新できるよね、ということで調べ、対応した内容を手順を追って記述します。

## 新しいSpreadSheetを作る

特になにも考えず、新しいシートを作りましょう。
https://docs.google.com/spreadsheets/create

## DBのごとく必要な情報をまとめる
以下の画像は記事のマスタを扱うような感じで捉えてもらえればいいです。
![スクリーンショット 2019-12-02 17.28.15.png](https://qiita-image-store.s3.ap-northe

元記事を表示

PHPでMySQLからデータを抽出する方法

まだPHPをやり始めて半年くらいなので、色々つまづきました。
DBからどうやってデータを引っ張って、WEBに表示するのか?

どうやってSQLを実行するのか?
どうやってその結果をWEBへ流すのか?

オブジェクト指向とは?
クラスとは?継承って?

どんどんわからないことが出てきました。
10年前にかじったJavaを思い出しながら、ひたすらググりましたよ。

## <おおまかな流れ>
1.まずおまじない的にDBへ接続するための準備クラス。

“`php:pdo_config.php

元記事を表示

PHPフレームワーク「composer dump-autoload」の重要性について

# はじめに

この記事の対象者は、「PHPはやったことあるけど、フレームワークはあまり使ったことないよ」って人を対象にしております。
フレームワークの構成を壊さずにプロジェクトを遂行できるように少し豆知識を。

と、言う筆者も実は昔。。。
あんまり理解せずにフレームワークの構成を壊していろいろ作っちゃっていました。。。

しっかり構成に従って効率的にコーディングしていきましょう!!!
その上で重要になるのがいろいろありますが、今回紹介するのは***composer dump-autoload***です。

フレームワークを使用せずにPHPでスクラッチ開発をしていると、よくソースの頭に書くものがありますよね?

それはコチラ!

“`
require(‘ファイル名’);
require_once(’ファイル名’);
“`

Laravelなどフレームワークを使用してコーディングする際は、上記の記述は不要です。
他のクラスを参照したくても上記の記述は書いちゃダメ。

じゃ、どうすればいいの??ってなりますよね?

次に進みます。

# ダンプオートロード

なんかカタカナで見出し書く

元記事を表示

memo

LAMP環境の構築

##用意するソフト
すべてフリーソフト

・VirtulBox
・Vagrant
・Cyberduck

##仮想マシンの準備
LAMPのLの部分。
まず、CentOS7のboxを追加する。

“`console:console
$ vagrant box add centos/7

virtualboxを使用しているので「3」を選択

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3
“`
CentOS7用のboxが入っているかどうかを確認する。

“`console:console
$ vagrant box list
centos/7 (virtualbox, 1905.1)
“`
*特定のboxを削除する場合は次のコマンドを使用。

“`console:console
$ vagrant box remove CentOS7
“`

仮想マシン用のフォルダを作成して、作成したフォルダに移動しておく。

“`console:console
$ m

元記事を表示

Laravel windowsPCにインストールするにあたって躓いた点

#概要

どうも。初めまして東京へ越してきたばかりのwakakenといいます。

今回はお世話になっているプログラミングスクールさんの教材を基にマイPCにlaravelをインストールし、環境構築を行ったときに躓いたところを紹介します。

・Larabelのインストール

#PCのスペック

プロセッサ: Core(TM)i3-7100U
メモリ: 8.00G
システムの種類:64ビットOS

PCは5年くらい前に買ったWindowsPCです。

#Larabelのインストール 躓きその1 ~composerのPATH設定~

Larabelのインストールをするにあたって参考にしたサイトは以下のサイトです
https://reffect.co.jp/laravel/windows-xampp-laravel-install

手順については特に説明しないので、もし気になった方は上記のサイトを参照してください。

laravelは通常webサイトからのダウンロードなどでインストールを行いません。
「composer」と呼ばれるバージョン管理ソフトを用いてインストールを行うことになります。

元記事を表示

LaravelやCakePHPで’PDO’が見つからない場合の対処方法

#エラーの発生内容

AWSのEC2(AmazonLinux)で下記のフレームワークを実行した際に表題のエラーが発生した。
・Laravelのmigrate実行時
・CakePHPのビルドインサーバー実行時

## 環境
PHP7.2
PostgreSQL10系

# 対処方法

下記のコマンドを実行して、自身の環境に合ったモジュールを探す

“`
$ yum search php-pdo
“`

そうすると、下記のように表示される。

“`
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
242 packages excluded due to repository priority protections
=========================================================================================================== N/S matched: php-pdo ============

元記事を表示

Homestead の PHPバージョンを変更する方法

以下のように `Homestead.yml` にphpのバージョンを追記するだけ

“`Homestead.yml
sites:
– map: homestead.test
to: /home/vagrant/project1/public
php: “7.3”
“`

### 注意
これだけだとバージョンは上がっても、CLIのバージョンはデフォルトのままになってます。
( `php -v` としても思っていたのと違うPHPのバージョンが表示される)

設定したバージョンに合致する以下のコマンドを実行して、CLIのバージョンも上げましょう。

“`bash
php56
php70
php71
php72
php73
php74
“`

## 参考記事
https://laravel.com/docs/6.x/homestead#multiple-php-versions (公式ドキュメント)

https://www.84kure

元記事を表示

GitLabのwebhookからのjenkisビルド

### はじめに
プロジェクトの運用でアセットを作るときにjenkinsでビルドしてるんですが
画像などgitにpushしてjenkinsのパラメータをセットしてポチる
これだけなんですが、これを行う作業が毎日結構な回数あって
なんのアセットあげるんだっけな、パラメータどんなだっけなってのがちょくちょくあって
地味にめんどくさい

### やりたいこと
gitにpushしたら勝手にjenkisビルドして欲しい
例)
test.pngをコミット
コミットされたファイル名をphpで解析し、jenkinsにコミットされたファイルが包まれるアセットビルドを依頼
アセットが出来上がる

※今回は勝手にビルドされると困ることもあるのでchatworkにjenkinsビルド用のリンクが飛んで来てそれをポチるとjenkinsが回る流れにした

### GitLabのwebhook使ってみた

⑴ GitLabにログイン
⑵ プロジェクトを開く
⑶ Setting > Integrationsを選択
⑷ webhook用のURLを入力
⑸ TriggerのPush eventsを選択
⑹ Add web

元記事を表示

OTHERカテゴリの最新記事