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

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

Laravel MySQL SQLSTATE[HY000] [1049] Unknown database が出た時に確認すること

# 目的

– 自分がよくやらかすミスなので確認する内容をまとめる

# 実施環境

# エラー内容

– Laravelアプリのマイグレート時やアプリからのDBアクセス時にターミナルやブラウザ情に下記エラーが表示される。
-「SQLSTATE[HY000] [1049] Unknown database ‘データベース名’」

# 解決方法その1 MySQLの再起動

1. 下記コマンドを実行してMySQLの再起動を実施する。

“`terminal
$ mysql.serve restart
“`

# 解決方法その2 データベース名の記載の確認

1. 下記コマンドを実行してMySQLのターミナルを開く。(MySQLのrootユーザのパスワードがわからなくなってしまった方はこちら→[MySQL 8.0.18 のrootパスワードを忘れた時のリセット方法](https://qiita.com/miriwo/items/1880e9d2ebcfd3c0e60d))

“`terminal
$ mysql -u root -p

元記事を表示

僕(フロントエンジニア)のQiita投稿内容

初めまして。渡辺大地です。

現在(2020/04/08)大学生ながらフロントエンジニア兼営業のフリーランスとして活躍しています。

画像の拡大の仕方忘れた→調べよう

エンジニアの方なら、分からないことを調べる。当たり前の日常ですよね!?
僕も毎日これの繰り返しです。
しかし僕の場合同じことを何回でも調べてしまうのです。

非常に時間がもったいない。そう感じたので自分なりの教科書を作ろうと思いこのアカウントを作りました。

いずれは皆さまも分からないことが出てきたらグーグルではなく僕の投稿から調べたくなる。そんな投稿をしていきますので今後ともよろしくお願いします。

元記事を表示

[コピペでOK] PHPでログを出力する

# はじめに

PHPでログを出力するLoggerを作成しました。
PHPでは、標準のエラーログや便利なライブラリがありますが、
ここでは、ライブラリを使用しません。
コピペですぐに使えるものを目指しています。

機能としては下記の通りです。

– ログメッセージを出力する
– ログレベルの指定
– ログローテート
– 出力先の指定

## ErrorLog

PHPには、「ErrorLog」という実行時エラーをメッセージに出力する機能があります。
これは、try-catchで補足できないエラーもあります。
今回の作成したLoggerクラスでは対象外です。

詳細は下記の通りです。

[PHPでのログ出力 まとめ](https://qiita.com/iwason/items/8dc9f62b4118186cf2df)

## Monolog

PHPには、「Monolog」というログ出力のライブラリがあります。
Laravelなどの有名なPHPフレームワークで採用されています。
今回の作成したLoggerクラスでは対象外です。

詳細は下記の通りです。

[コード改善に役立ちそうなP

元記事を表示

PHP/json文字列をデコードする

json_decode関数を使う。

“`
$object = json_decode($json_string);
// 第二引数をtrueにすると連想配列になる。
$array = json_decode($json_string, true);
“`

例:

“`
$request = file_get_contents(“https://www.googleapis.com/books/v1/volumes?q=search+%E6%8A%80%E8%A1%93&maxResults=40”);
$json = json_decode($request, true);

var_dump($json[‘kind’]); // string(13) “books#volumes”
“`

元記事を表示

Laravel PassportでPersonal Access Tokenを使う場合の有効期限設定

## 概要
LaravelでAPIを構築する場合の認証基盤として、Laravel Passportを使用するケースもあると思います。Laravel Passportの認証方法の一つであるPersonal Access Tokenでの認証について、取り上げます。

## Laravel Passportの概要とPersonal Access Tokenに関して
@zaburoさんの[Laravel Passportの使い方まとめ](https://qiita.com/zaburo/items/65de44194a2e67b59061)の記事にざっくりとした概要と、Personal Access Tokenの実装サンプルが紹介されています。
Personal Access Tokenは認証後にユーザに対し、アクセストークンを発行しこのトークンを用いて、認証済みかの判定を行います。

## Tokenの有効期限に関して
[Laravel Passportのクライアント認証を試してみる](http://kayakuguri.github.io/blog/2017/10/20/laravel-p

元記事を表示

Eclipse 拡張子を追加する

# はじめに
CakePHPで開発をしている時、.ctpファイルを開いたらPHPファイルとして認識してくれませんでした。.ctpファイルを開いたらPHPファイルとして認識させる方法を紹介します。

# やりかた

### メニューバー
ウィンドウ > 設定

### 設定
一般 > コンテンツ・タイプ

### コンテンツ・タイプ
テキスト > PHPコンテンツ・タイプ
→ファイルの関連付けに.ctpが登録されていない!!

### ファイルの関連付け
* 追加ボタンを押す
* .ctpと入力してOK
* 適用して閉じる

# おわりに
以後、.ctpファイルを開くとPHPファイルとして認識してくれるようになります。

元記事を表示

文字列に変数を埋め込む【Ruby/PHP/Swift】

## 概要
RubyとPHPをざっくり学び、現在Swift学習中の筆者の備忘録です。
よくある「文字列に変数を埋め込む(変数展開)」ことについて
言語間で微妙な違いがあり、すぐ分からなくなるのでまとめました。

## 記述する内容

変数「name」に文字列「田中」を代入する。
この変数を埋め込む形で「こんにちは、田中さん」という文字列を出力する。

## Ruby

“`ruby
“#{変数}”

name = “田中”
puts “こんにちは、#{name}さん” 
“`

## PHP
“`php
“${変数}”


“`

## Swift
“`swift

“\(変数)”

var name: String = “田中”
print(“こんにちは、\(name)さん”)
“`

## 最後に
以上、簡単ですが変数展開についてでした。
こういう細々した違いは、新しい言語に挑戦していると
すぐにこんがらがってしまいます。。。
まとめておくと安心ですね。

元記事を表示

Laravelエラーメッセージの日本語化

Laravelのエラーメッセージを日本語化したい。
英語は苦手なので、こんなのが来ると諦めの気持ち多めになります。
スクリーンショット 2020-04-07 23.11.33.png

##Laravelの言語ファイル
Laravelには言語ファイルが標準であるそうです。ローカリゼーション機能というらしいです。
ここに言語ファイルがあります。
スクリーンショット 2020-04-07 23.16.19.png
ただデフォルトではenしかありませ

元記事を表示

Laravel でファサードを禁止されたときにすること

## はじめに

Laravel はアーキテクチャの自由度が高い点でユニークなフレームワークに思う。

しかしチームで開発する上では、実装者によって書き方やアーキテクチャが変わりやすい点もある。

加えて MVC アーキテクチャだけではモデルやコントローラが太りやすい。

そんななか弊社で「DIに基づいた設計を行う」「ファーサードの使用は違法」とする「設計勧告案」が登場した。

でもあまり順守されていないように思うので、私の理解を書く。

## なぜ DI か

ファサードは簡単に使える。

> 自分で取り込んだり、設定したりする必要があり、長くて覚えにくいクラス名を使わずに、Laravelの機能を簡素で覚えやすい文法で使ってもらえます。その上に、PHPの動的メソッドのユニークな使用方法のおかげで、簡単にテストができます。
https://readouble.com/laravel/6.x/ja/facades.html#when-to-use-facades

DI なら同じテスタビリティで、
クラスの依存関係を明示して、「大きなコンストラクタの視覚的なフィードバック」を得られる。

元記事を表示

サーバーレスライブラリbrefを使い、素のPHPでHello world

ちょっと素のPHPが欲しいときがあったら、以下のようにさくっとデプロイできます。

“`bash
$ serverless # プロジェクト作成 https://github.com/umihico/bref-demo/commit/0269a62
Serverless: No project detected. Do you want to create a new one? Yes
Serverless: What do you want to make? AWS Node.js
Serverless: What do you want to call this project? bref-demo

Project successfully created in ‘bref-demo’ folder.

You can monitor, troubleshoot, and test your new service with a free Serverless account.

Serverless: Would you like to enable this? No
Yo

元記事を表示

ブラウザにnfcpyを使ってNFCタグのIDmを表示してみる

##はじめに
PaSoRiでNFCタグを読み取ってブラウザに表示するというのは他の方もやっていらっしゃるのですが([WebUSBでFeliCaの一意なIDであるIDmを読む](https://qiita.com/saturday06/items/333fcdf5b3b8030c9b05))、ただ自分の環境ではエラーが起きて使えなかったので、勉強も兼ねて別の方法で試してみることにしました。
※今回のこのNFCタグの読み取りはUbuntu環境で行いました。

##準備
nfcpyまでの準備はこちらの記事を参考にしました([Python で PaSoRiのセットアップ と FeliCaの読み取り](https://qiita.com/75u2u/items/010b602605d087edd1ee))
pythonのNFCタグ読み取り用の簡潔なコードも準備します

“`python:nfc.py
import nfc
import binascii
from nfc.clf import RemoteTarget

try:
clf = nfc.ContactlessFron

元記事を表示

Mac Laravel 環境構築初期やgit clone直後でローカルサーバを起動した時に500エラーが出た話

# 目的

– Laravelアプリの環境構築初期やgit clone直後にローカルサーバを起動すると500 Server Errorのエラーが出力される問題を解決した話をまとめる

# 問題のエラー

– Laravelアプリのディレクトリ内で`$ php artisan serve`を実行し、ブラウザから[http://127.0.0.1:8000/](http://127.0.0.1:8000/)にアクセスしたところ下記の画面が表示された。

![スクリーンショット 2020-03-18 13.54.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/66a179dd-92f2-084d-698d-5dd489335075.png)

# 原因

– Laravelアプリのルートフォルダ内に「.env」のファイルが存在しないことが原因である。
– 下記に問題発生時のLaravelアプリのルートフォルダ直下のフォルダ構成を記載する。

“`terminal

元記事を表示

Doctrine で Oracle の日付を扱う時にすること

Symfony を使っていて Doctrine で Oracle データベースの日付を扱う時に

“`
Could not convert database value “10-11-10” to Doctrine Type date
“`

というようなエラーがでました。
Oralce が返してくる日付フォーマットと Doctrine のフォーマットが合わないので、このようなエラーが出ます。

`sqlplus` コマンドで、日付を含むテーブルをクエリしてみると、フォーマットがそのようになっています。`NLS_DATE_FORMAT` を指定すると、そのフォーマットで返ってくるようになります。

では、Symfony ではどうしたらよいのでしょう。

https://github.com/doctrine/DoctrineBundle/issues/217#issuecomment-68053651

こちらの答えがありました。

*service.yaml* に次の定義を追加します。

“`yaml
oracle.listener:
class: Do

元記事を表示

PHPでcsv(tsv)ファイルを読み込み・書き出しする方法

PHPでcsvファイルまたはtsvファイルの読み込み・書き出しする方法を紹介します。
どちらのファイルも手順と使用する関数は同じです。
(関数に指定するパラメータは一部異なります。)

■補足情報
csvファイル…データがカンマ(,)で区切られた形式のファイル。
tsvファイル…データがタブ(/t)で区切られた形式のファイル。

■手順
・「読み込み」の場合
1:fopen関数で読み込むファイルを指定する
2:fgetcsv関数でファイル内のデータを読み込む
3:fclose関数で読み込んでいたファイルを閉じる

~~~

元記事を表示

laravel5.5でゲストログイン実装

ゲストログイン方法の実装をやりたかったんです。
誰かに機能を試してもらう時、いちいちユーザー登録とか面倒かなと思いましてん。

若干わかりにくかったのでメモとして残します。

##認証機能

Laravelにはお手軽で強力な認証機能が初めから使えるようになっています。

“`
php artisan make:auth
“`
これだけで良いとかお手軽すぎます。
あとは新規ユーザー登録してログインすれば良いだけなんですが、ここにゲストユーザーのログイン機能を付けたいと思います。

##やりたいこと

公式ページにはこのように書いています。
>Laravelの認証サービスにはAuthファサードでアクセスできます。クラスの最初でAuthファサードを確実にインポート>しておきましょう。次にattemptメソッドを見てみましょう。

“`App/Http/Controllers/Auth/LoginController.php

元記事を表示

WordPressの出力内容を制御するときの超基本

#まえがき
※この記事は「[カスタム投稿タイプをゼロから作ってウェブサイト上に表示させるまで](https://qiita.com/yomogenium/items/32979df92721483a81e1)」
の続き。
前回の記事では書ききれなかった重要ポイントを書いていく。
なお、この記事は**PHPどころかプログラムがろくに分からない人向けの記事である。**

#基本原則1:表示と出力

[前回の記事](https://qiita.com/yomogenium/items/32979df92721483a81e1)で、以下のようなコードが登場した。

“`php:single-newspaper.php


元記事を表示

Composerとか入れたくないので簡単に使えるフレームワークを作った

そういえば僕も3ヶ月くらい前にComposerとかに依存したくなくて1ファイルで完結するフレームワークを作ってた。ソースコードは[zonuexe/hogephp](https://github.com/zonuexe/hogephp)にある。

こういう雰囲気でコードが書ける。

“`index.php
get(‘/’, function () { ?>


Hoge index

The Hoge PHP Framework



“`

トップページのルーティングしか定義していないが、これで起動スクリプトのコード全部だ。ほかにディスパッチ処理などのボイラープレートは要らない。

たわむれに作ったものなのでセキュリティは万全に考慮できているわけではない。

## コンセプト

*

元記事を表示

超簡易ルーターを作成しました。

## 前置き

これ、本当に自分の良くない所だと思うのですが、Composerとかで入れるライブラリとかって分からないエラーが起きたり覚える事が多かったりで使うのが面倒なんですよね。
(なのでLaravelとかも中々踏み込めないでいるんですよね)

ということで自分用として簡易ルータを作りました()
とりあえずTinyRouterという名前にしておきました。

ソースコードは最後に載せますが、正直自分でもしっかり動くかわからないのでちゃんとしたサイトとかでは使わない方が良いです。

## これの特徴
– 本体容量が小さい & 1ファイル
– $_GETなどの変数をそのまま使える。
– **少しだけ**Node.jsのExpressに似てる
– できることが普通のルーターに比べて少ない
– 他のルーターに比べてしっかり作られてない
– 他のルーターとの互換性がない

## 使い方

“`php
get(‘/’, function() {
echo

元記事を表示

Virtualbox+Vagrant+HomesteadでLaravelの開発環境を構築した際に躓いたことを4つまとめ

どうも、直人です。
本日は、
**Virtualbox+VagrantでLaravelの開発環境を構築した際に躓いたこと**
というテーマで4つピックアップしてお伝えしていければなと思っております。

#執筆背景
はじめに、執筆背景です。
私は、現在laravelフレームワークについて学習してます。
開発環境は、Homesteadを利用して構築しており、laravelのバージョンは6.xを使用しております。

この記事では、そんなlaravel初心者の私が
**Homesteadを利用してlaravelの開発環境を構築する際に躓いたところ**
をまとめてみました。

なお、本記事は、躓いた点に焦点を当てた記事となっており、
**環境の構築方法については本記事では触れないため、**
構築方法について知りたい方は他の記事を参照してください。
#躓いたこと4選
以下から、躓いたところとその解決方法を示していきます。
##VirtualBoxのインストールでインストールできませんでしたと表示される

VurtualBoxのインストーラーを公式サイト(https://www.virtualbox

元記事を表示

【WordPress】ACFで、『投稿以外』でチェックボックスやセレクトボックスの値とラベルを全て取得 | get_field_object(っぽいもの)を使う【Advanced Custom Fields】

WordPressを使用した企業サイトで、**「管理画面のカスタム投稿一覧で、カスタムフィールドを使った絞り込み検索がしたい」**というオーダーがあった時の話。
カスタムタクソノミーや作成者での絞り込み検索の実装は過去に経験があったので、その要領でいけるだろうと考えていたら意外なところで詰まったので備忘録として。

# 要件
– カスタムフィールドの実装
– 管理画面のカスタム投稿一覧で、カスタムフィールドで絞り込み検索できるようにする

実装するカスタムフィールドはこんな感じ。
![test-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284502/9ee13734-be23-abd6-b1f4-45da41d6f0a8.jpeg)
よくある簡単なセレクトボックス。

 

## 実装
ひとまず、管理一覧画面に自前の検索用セレクトボックスを追加するには`restrict_manage_posts`を使ってよしなにコードを書けばよい。

で、ACFには`get_field_object`という、

元記事を表示

OTHERカテゴリの最新記事