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

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

PHPフレームワークLaravelの使い方

# 環境構築
・[LAMP+Redis環境を超短手数で構築する](https://qiita.com/toontoon/items/0ade09a5fb3f70fd0c0d)
・[Composerをインストールする](https://qiita.com/toontoon/items/62a42ca2d05735a8c082)
・[eclipseでPHPの開発環境を構築する。デバッグでブレークポイントを付けてステップ実行できるようにする](https://qiita.com/toontoon/items/f7340a259b7135952ac3)

# 実装
・[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
・[Laravelのテンプレートエンジンを使う](https://qiita.com/toontoon/items/2d6d3d6c88fa61a0c2e3)
・[Larave

元記事を表示

【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる

推移律?
そんなものはこの世の果てに置いてきた。

“`php:PHP7
“true” == 0;
0 == “0”;
“true” == “0”;
“`

結果は順にtrue、true、falseです。

これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。
よもや今さら基本中の基本である比較演算子の動作を弄ってくるとは思わなかったぞ。

以下は[Saner string to number comparisons](https://wiki.php.net/rfc/string_to_number_comparison)の日本語訳です。

# PHP RFC: Saner string to number comparisons

## Introduction

`==`やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。
この結果、多数の不可解な結果が得られますが、中でも注目すべきは`0 ==

元記事を表示

LaravelでWebSocket

# 目次
Laravelの記事一覧は下記
[PHPフレームワークLaravelの使い方](https://qiita.com/toontoon/items/c4d0371e504c37f6576e)

# Laravelバージョン
動作確認はLaravel Framework 7.19.1で行っています

# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています

[LaravelでDIを使う](https://qiita.com/toontoon/items/ebf53e4053be6f663730)
本記事は上記で作成したフォルダとファイルを使用します

[LaravelでRedisを操作する](https://qiita.com/toontoon/items/02

元記事を表示

ニートがPHPで求人サイト(Webアプリ)を作ってみた

技術記事ではなく、「作ったものを共有する」ライトな記事です。

# 経緯
小学5年生でゲームにハマる

ニートになって暇人

アプリ作ってみよう、みたいな

# 公開する理由
頑張って勉強されている方に少しでも参考になればいいなと思ったからです。
また、リリース後はしっかり運用・保守していく予定なので、エンジニアさんからフィードバックをもらえるかも?という下心もあります:rolling_eyes:

# 作ったもの
地元「釧路」限定の求人サイトです。
※釧路:北海道の避暑地であり、魚が美味しい海沿いの町

■サイトURL
[https://job-cinema.com](https://job-cinema.com)
■github
[https://github.com/haruyaono/jobcinema-prod](https://github.com/haruyaono/jobcinema-prod)

ただ、サイトURLがリンク切れしていたらごめんなさい。
ニートは節約せずに生き残れないので、AWSのリソースを止めています。

代わりにドキュメントにまとめております

元記事を表示

LINE Messaging APIを使って、ポケモンの弱点を教えてくれるBotを作る【Laravel・初心者向け】

## 1.はじめに

先日、久しぶりにポケモンの対人対戦をやっていたときに、

**「相手(ポケモン)の弱点何???」**

といった疑念を抱き、対戦時間と戦略を見失いモチベーションが下がってしまいました。

見た目だけだとタイプが分からないポケモンもいるし、タイプが2つあるポケモンもいるとなると覚えられない、、と悩んでました。

これって対戦初心者にありがちでは・・・

と思ったのがきっかけで、これを解決したいと思い

**簡単・気軽・素早く**弱点を知れるもの作ってみよう!!

と考えて実際に作ってみました。

本記事は、以下のようなコンセプトの記事になります。

・製作の経緯と意図

・簡単な製作の手順とコードのポイントの説明

・初心者向け(今後外部APIを使用したいと考えている方)

といった記事になります。

**注意**
実際には、とくせいや環境変化によってバトル戦略は変化すると思うので、タイプ相性だけではガチ対戦者さんにとっては不向きかと思います。あくまで、LINE botを作ってみよう!という趣旨です。

また、実際のゲームに基づいていますので、掲載において不適切

元記事を表示

カリー化チートシート

拙作『[不動点コンビネータを用いた無名再帰関数の実行まとめ](https://qiita.com/ytaki0801/items/596efbbcb07d38630bc9)』の補足説明として書き始めたところ,カリー化関数を記述・利用するための独立したチートシートとした方が少なくとも約1名(自分自身)には役立ちそうだったので,新しく記事にした.なお,カリー化してくれる関数の定義[**ではない**](#%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96%E3%81%AE%E6%A6%82%E8%A6%81)ことに注意.複数言語にわたっている都合上,各言語に精通している方々のツッコミ歓迎.

記法のみの一覧は次の通り.なお,`f`は関数,`a`は引数を指す.

| 言語 | 各引数の戻り値 | 各引数の指定 | 備考 |
|:-:|:-:|:-:|:-:|
| Haskell | `\“->`による無名関数 | `(・・・(f a) a)・・・a` | 自動的にカリー化 |
| Scheme | `lambda`による無名関数 | `(・・・((f a) a)・・・a

元記事を表示

Laravel Excel を用いてCSV出力する手順

Laravel Excelに関しての情報があまり多くないので、備忘録としてアウトプット。
手順は、
1.パッケージのインストール
2.Excel.phpの生成
3.サービスプロバイダーの登録
4.エクスポートクラスの生成
となる。

#1.パッケージのインストール
composerを用いて、LaravelExcel3.1をインストールする。
必要なバージョン、PHP拡張モジュールは以下の通り。
・PHP 7.0以上
・Laravel 5.5以上
・PhpSpreadsheet 1.6以上
・php_zip、php_xml、php_gd2、php_iconv、php_simplexml、php_xmlreader、php_zlib

ルートディレクトリで以下のコマンドを実行する。

“`
$ composer require maatwebsite/excel
“`
インストール完了後、composer.lockを確認する。

“`
“name”: “maatwebsite/excel”,
“version”: “3.1.20”,
“`
ちゃんとインストールされている。

元記事を表示

LaravelにSassを入れて好きなCSSフレームワークを使う

## 準備
– 導入したいCSSフレームワークのSassのソースフォルダをダウンロードしておきます。
– Laravel標準のBootstrapではなく、どうしてもMaterializeを使ってみたかったのでこれを導入します。

[Materialize](https://materializecss.com/)
![Materialize01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649853/137fba65-302e-2373-d29c-f59f18c1d8b3.png)

### 環境
– Laravel Framework 7.22.4
– Materialize 1.0.0

## Sassを使えるようにする
Sassの導入は他の方が解説されていたので、こちらを参考にしました。
[LaravelにSCSSの導入方法](https://qiita.com/mk185/items/1508ac6172c73db7808b)

## フレームワークを導入する
npmをインストールした

元記事を表示

【PHP/Laravel】マイグレート時に発生したエラー解決

#はじめに
Laravelでアプリ開発をしております。
環境構築が完了し、いざマイグレートをする段階で今回のエラーが発生しました。
備忘のために記録しております。
同じような方の助けになれば幸いです。

#開発環境
・MacOS:10.14.6 (Mojave)
・PHP7.3
・Laravel6

#発生したエラー

“`ターミナル
$ php artisan migrate
**************************************
* Application In Production! *
**************************************

Do you really wish to run this command? (yes/no) [no]:
> yes

Illuminate\Database\QueryException : SQLSTATE[HY000] [1044] Access denied for user ”@’localhost’ to database ‘forge’ (SQ

元記事を表示

PHPで世界のナベアツさんのネタを実装する

元ネタ
[rubyで世界のナベアツさんのネタを実装してテストを書く \- Qiita](https://qiita.com/yoshinyan/items/7dbe38f4751b8019a8c5)

これを書いたあとPHPでも書きたくなりやってみました。
テストは書いてません。
実行したらrubyでやったものと同じように出力できたのでよしとします。

#### 仕様
最初に「これから面白いことつまりオモローなことをします」という
1から40まで数を数える
3がつく数字のときアホになる
3の倍数のときアホになる
5の倍数のとき犬になる(3と5の倍数なら犬になる)
最後に「オモロー」という

“`php:omoro_class.php

元記事を表示

PHPのマジックメソッドについて調べてみた件

# マジックメソッドとは
PHPには様々な特殊機能をもった関数をもとから持っています。

`__`で始まる関数名を特殊関数と呼び、あらかじめ取りおいているようです。
なので、特殊な機能を持たない関数を`__`で始まる名前にしないほうがいいみたいです。

また、全てのマジックメソッドは`public`で宣言しないといけないようです。

コンストラクタ(`__construct()`)などもマジックメソッドです。

# マジックメソッドの一覧

| メソッド | 引数 | 戻り値| 内容 |
| — | — | — | —— |
| __construct() | 任意 | なし | インスタンス生成時 |
| __destruct() | なし| なし | インスタンスを破棄するとき |
| __call() | 任意 | 任意| アクセス不能メソッドをオブジェクトのコンテキストで実行したとき |
| __callStatic() | 任意 | 任意| アクセス不能メソッドを静的コンテキストで実行したとき |
| __get() | プロパティ名 | 任意| アクセ

元記事を表示

PHPでポートフォリオ 開発(イベント管理アプリ)

##記事の概要
私が開発したWebアプリ(ポートフォリオ)の解説をします。
開発にいたる背景から、作成手順、機能、工夫したところ、課題などをまとめました。

開発したWebアプリは[EventRunner](http://160.251.8.13:8080/login.php)にて公開中。

以下のテストユーザーでログインできます。↓↓
アドレス :test0001@gmail.com
パスワード:test0001

開発に必要な設計書や要件定義書は以下のリンクからご覧ください。
[GitHub](https://github.com/KasumiHarada/EventRunner)
[設計書URL](https://bit.ly/3j6WZvr)
##開発の背景

私は、学生の頃から兵庫県に拠点を置く、ボランティア団体に所属しています。
この団体では、2ヶ月に1回のペースで、行事(地域奉仕活動やワークショップなど)が行われます。

それらの行事への参加者を募るために、毎回SNSで情報を共有し、出欠をとり、参加者をSNSグループに招待し、運営していました。

これが、かなり手間で、

元記事を表示

本当は怖い論理値の真実~if true or false~

#はじめに
この記事はphpにおける論理値についてまとめたものです。
ノリで映画みたいなタイトルをつけてみましたが当たり前のことを当たり前にまとめただけなので、
対象読者はプログラミング初級者、又は死ぬほど暇なエンジニアの方になります。

#まずはテスト

さっそくですが、みなさん下記処理の結果はわかりますか?

“`
$function = ”;

if($function):
echo ‘おはよう’;
endif;

if(!empty($function)):
echo ‘こんにちわ’;
endif;
“`
**「両方とも$functionが定義されていればifの中の処理を実行するだろう」**と思った方は本記事必読です。
ちなみに答えは**「何も出力されない」**です。

#論理値とは
まずは論理値ってなんやねんという人のために。

>
論理値 とは、「何かが真であるか、真でないか(偽であるか)」を表す値のことです。ブール(bool)値 とも言われます。又、論理値 のデータ型は 論理型 となります。論理型 は、ブール(bool)型、ブーリアン型(Boolean)とも言われま

元記事を表示

PHP 数値を整数にする

# 目的

– 小数点の値を整数へ変換する方法をまとめる。

# 例

– 下記に少数の値を整数へ変換するキャストを用いた方法の例を記載する。少数が切り捨てられた整数の値が出力される。

“`php
echo (int)小数点の数値;
“`
– 下記に少数の値を整数へ変換する関数を用いた方法の例を記載する。少数が切り捨てられた整数の値が出力される。

“`php
echo intval(小数点の数値);
“`

# 具体例

– 変数`$a`に格納された数値を整数に変換するキャストを用いた方法を下記に記載する。下記を実行すると「2」が出力される。

“`php
$a = 2.2;
echo (int)$a;
“`
– 変数`$a`に格納された数値を整数に変換する関数を用いた方法を下記に記載する。下記を実行すると「2」が出力される。

“`php
$a = 2.2;
echo intval($a);
“`

# 参考文献

– [整数](https://www.

元記事を表示

[mac]MAMPでxdebugを使いたいとき

#参考記事

大変わかりやすくまとまっている記事。初心者向けに書いてあると思うので
これ読めばわかるはず。
https://qiita.com/miriwo/items/6edd6e1817def4fc11d5

元記事を表示

【Qiigle】というQiitaの記事を検索するサービスを作りました

**[Qiigle](https://qiigle.com/)**という、Qiitaの記事を検索するサービスを作りました。

サイトURL: https://qiigle.com/
GitHub: https://github.com/nyshk97/qiigle
![how_to_use_qiigle (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244893/705f60c4-238e-f10e-f048-0a7f3a443800.gif)

## 何ができるか(仕様)
– Qiitaの記事を「ユーザー名」「タイトル」「本文」「タグ」で絞り込んで表示します
– 複数入力した場合、**AND条件**になります
– ユーザー名とタグは**完全一致**、タイトルと本文は**含む**です

## なぜ作ったか
開発中に過去自分が書いた記事を参照することがよくあるのですが、数が多くなってきて探すのが大変になってきました。(ブックマークで管理するのツラい)

ユーザー名 + 記事の内容で簡単に記事を検索

元記事を表示

PHPでWebSocket

PHPでWebSocketやっていきます

# プロジェクト作成
Composerプロジェクトをつくります
Composerをインストールしていない方はインストールしてください
[Composerをインストールする](https://qiita.com/toontoon/items/62a42ca2d05735a8c082)

適当なフォルダをつくって
コマンドラインでcdして行きます
`composer init`
これでcomposer.jsonできます
今回はRatchetを使っていきます
[Ratchet (http://socketo.me/)](http://socketo.me/)
`composer require cboden/ratchet`
これでRatchetが使えるようになります

srcフォルダをつくります

composer.jsonのautoload修正します
composer.jsonは下記にします

“`composer.json
{
“autoload” : {
“psr-4” : {
“App\\” : “src”
}
},

元記事を表示

【Laravel】Artisanコマンド基礎

# Artisanコマンドとは
– **PHPのフレームワークであるLaravel専用のコマンド**
– **Artisanコマンド使用することでモデルやコントローラを簡単に作成することが出来る**

## アプリケーション作成

“`terminal:ターミナル
laravel new アプリケーション名
“`

## サーバー立ち上げ

“`terminal:ターミナル
php artisan serve
“`

## コントローラ作成

“`terminal:ターミナル
php artisan make:controller コントローラ名
“`

## サービスプロバイダー作成

“`terminal:ターミナル
php artisan make:provider サービスプロバイダー名
“`

## ミドルアウェア作成

“`terminal:ターミナル
php artisan make:middleware ミドルウェア名
“`

## フォームリクエスト作成

“`terminal:ターミナル
php artisan make:request フォ

元記事を表示

【PHP + Google Drive API】アプリケーションから自動で共有ドライブにアクセスしてファイル操作する

# 実現すること
アプリケーション側からGoogleDriveの共有ドライブへ自動でファイルアップロードや検索を行いたい:nerd:

なお、共有ドライブを外部に公開する必要があるため、所属する組織の運営方針等を確認してから行いましょう。
わたしは外部公開しないで直接共有ドライブへファイル操作を行う方法は見つけられませんでした。

# GoogleDriveを操作する準備
やることは3つです。
1. GCPでサービスアカウントを作成
2. GoogleDrive側の設定
3. 共有ドライブにアクセスするためのパラメーター付与(アプリケーション側)

## GCPでサービスアカウントを作成
GCPへアクセスします。
共有ドライブを所有する当該組織とプロジェクトを作成または選択します。
ナビゲーションメニューより「APIとサービス」からGoogleDriveAPIの有効化しておきます。
サイドメニューより「IAMと管理」よりサービスアカウントを作成します。
その後、作成したサービスカウントに対して、JSONのcredental keyも作成しておきます。

## GoogleDrive側の

元記事を表示

PHPの超雑な開発環境を作る

“`zsh
$ cd ~/sample_app
$ php -S localhost:3000
Listening on http://localhost:3000
Document root is /Users/your_name/sample_app
Press Ctrl-C to quit.
“`
“`sample_app/index.php
hello world
“`
http://localhost:3000 にアクセスしてhello worldを確認

元記事を表示

OTHERカテゴリの最新記事