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

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

Laravel Logを出力してみる

# 目的

– Laravelでのログの出力方法をまとめる

# 実施環境

– MacのローカルにLaravelの環境を構築して実施する。環境構築手順の記事はリンクを後述する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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 |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築

元記事を表示

artisanコマンドの自作で引数付きのSeederを作成する

# あらすじ
Laravelにはseederがありテスト時などにサンプルデータを気軽に作ることができます。
ただartisanコマンドを用いて呼び出すのですが、この時にshellscriptのように作成するデータ数などを引数として与えられたらなあ…と思っていました。
そんなところartisanのコマンド自作で行けそうといアドバイスをいただいたので、コマンド作成の練習もかねて作成してみることにしました。

## 通常のSeeder
今回は例として、Laravelのプロジェクトに最初からついてくるUserテーブルのSeederをもとに作っていきます。似た構造のレコードを複数追加するのでFactoryを記述して(されていて)、

“`Userfactory.php
define(User::c

元記事を表示

nikic/PHP-Parser を使ってPHPコードをパースして出来る事とサンプル

# nikic/PHP-Parser
https://github.com/nikic/PHP-Parser
PHPをASTとしてパースし、サクッとコード変換ツールを作成するのに便利なライブラリの紹介とサンプルです

# 対象読者
* PHPのコードをツールで機械的に安全に一斉変換したい
* preg_match/preg_replaceだと、不安が残る
* Rectorが動かなかった
* PHP-Parserで変換処理を書こうと思ってる矢先の人

といういるのかいないのか分からない超限定的な状況の方 (自分)

# 書くこと
* 使おうと思った経緯
* 変換したい内容と、実現するコードのサンプル

# 書かないこと
* 導入方法や、機能の紹介
* 懇切丁寧なドキュメントがあるので、そちらを参考にして下さい。

# 経緯
CakePHP1.3からCakePHP3系にバージョンアップをしたい中で、[Rector](https://github.com/rectorphp/rector)という便利なツールを使いたかったのですが、そちらが変換対象コードの名前空間によるautoload

元記事を表示

【Laravel】laravel new のあとにやること

# 環境
– macOS
– PHP7.4
– Laravel7.x
– SQLite3

# やること
新しくアプリケーションを作成する時、laravel new [アプリ名]を実行した後にすることをまとめました
あくまで筆者の場合なので、参考程度に読んでみてください

– git周辺
– アプリ名、タイムゾーン、言語の設定
– データベースの設定
– メールの設定
– Auth機能の導入
– 日本語化

# git周辺
はじめに、BitbucketやGitHubのリポジトリを作っておきます
以下のコマンドを実行して、リポジトリの初期化、BitbucketやGitHubへの接続を行います
ちなみに筆者は執筆現在Bitbucketを使っています

“`zsh
# LaravelAppディレクトリに移動
% git init
% git add -A
% git commit -m “Initialize repository”
% git remote add origin [BitbucketやGitHubのリポジトリ名]
% git push -u origin master
`

元記事を表示

Laravel 1対多のリレーション先の項目の集計値(最小値, 最大値, 平均値, 合計値 など)で親テーブルを並べ替えたい

###テーブルの例

たとえば、商品基本情報と詳細が1対多の関係で、データベースを構成したとします。
一覧表示する時に、価格順で並び替えたい時はどんな感じにクエリビルダーを使えばいいか、いろいろ試してこれかなぁというのを投降します。

【商品情報テーブル (products)】
id 商品ID
name 商品名

【商品詳細テーブル (detail)】
id 商品詳細ID
productID 商品詳細ID
size サイズ
price 価格
visible 表示・非表示

###コードの例

“`
$aggregates = DB::table(‘detail’)
->select(‘productID’,
DB::raw(‘MIN(price) as min_price’),
DB::raw(‘MAX(price) as max_price’)
)
->where(‘visible’, 1)
->groupBy(‘itemID’);

$db = DB::table(‘products’)
->joinSub($aggregates, ‘aggreg

元記事を表示

Rust は流行りそうもないので、Go を使う。

最近、暇で以下のサービスを作った。
https://deau-project.herokuapp.com/

バックエンドには仕事で使ったことがない、Go にした。
勉強してたのは、Rust で、仕事のCSVを分析するシステムを Rust で作ったけど、
この先、使うことがないのでは? と思っている。

以前、Haskell が流行りそうで、だいぶ勉強したけど、今では話題にすらならない。
関数型も、いまいち浸透していない。

流行る言語は、何かしらの手間を無くす。
Ruby が流行ったのは、Rails がフレームワーク使用時の共通作業を無くしたから。
PHP が未だに廃れないのは、WordPress が共通作業を無くしてるから。

Go は流行る。もう流行っている?
理由は学習コストを減らしたから。

今回、Go Gin を使用した、そして、簡単に実装できた。
情報も充分にあった。

Rust でも、情報に関しては充分にある。
ただ、実装時に面倒だなと感じることが多い。
私のように趣味で実装するなら、尚更、面倒に感じる。

Rust が流行るには、組込み系にターゲットを絞るか、
当時の

元記事を表示

【Laravel】任意のExceptionをthrowする。

メモとして残します。

#■やり方

`throw new \Exception(“エラーメッセージ”);`

“`php
getMessage();// testです
}
“`

元記事を表示

safari(ios)でMediaRecorderを使う

#前提
使用デバイス等の説明
##機種
iPad 13.5.1
safari
##実現すること
MediaRecorderを使おうと調べたらSafari未対応という記事しかない
が、iosでMediarecorderを使うことができるっぽいことを見つけたので
まとめておく

#方法
方法としては非常に簡単である
>①設定を開く
②Safariの項目を開く
③詳細の項目を開く
④Experimental Featureを開く
⑤MediaRecorderをオンにする

試用機能なのかな?詳しくはわからないが、これで使えるはずです。

元記事を表示

php

#個人学習用にメモ

標準入力の値を、foreach文で表示する。
※あとでまとめる用

“`php
$input_line = fgets(STDIN);
while($input_line = trim(fgets(STDIN))){
$array[] = explode(” “,$input_line);//2次元配列で横の行を読み込み
}

print_r($array);

foreach ($array as $key1 => $value1) {
foreach ($value1 as $key2 => $value2) {
if ($key2 == 1){
$value2 = $value2 + 1;//$key2が「1」なら、要素に+1の処理
print $value2 . “\n”;
}else{
echo $value2.” “;//$key2が「0」なら、要素+スペース

元記事を表示

百番煎じくらいの、CentOS8でPHP8環境作るコピペ

# 前置き
[PHP8.0.0α1がリリースされたのでさっそくJITの威力を体感する(した)](https://qiita.com/rana_kualu/items/73c346b3feadfa3a5b21)

これ試したかったんですが、centos8でやりたかった。

[CentOS8で、PHP8のインストール。](https://qiita.com/IiToshihide/items/efc80ed6be4e1fcbaa01)

で、これをコピペしようとしたら、ちょこちょこライブラリでつまずいた。

あれこれ調べた結果、コピペ手順ができたので、載せておこうと思いました。

OPCache/JIT周りは上の記事読んでどうぞ。

# 諸準備
“`
dnf update -y

dnf install -y git wget tar sqlite* libxslt* gcc gcc-c++ make autoconf automake bison
“`

# re2c

最新をチェック

“`
cd /usr/local/src

wget https://github.com/s

元記事を表示

【1ヶ月で学ぶ!】Back-end Developperへの道 # 04日目 : Learn a Languageとは

下記の企画の4日目です。
【1ヶ月で学ぶ!】Back-end Developperへの道 #0:導入

下記を参考に項目を作成しました。
Roadmap to becoming a web developer in 2020

# Learn a Language

## Java
– クラスベースのオブジェクト指向の、実装の依存関係をできるだけ少なくするように設計された汎用プログラミング言語
– スマホアプリやWebサービス、業務系システムなど、さまざまな分野の開発に用いられる
– コンパイルされたJavaコードは、再コンパイルを必要とせずにJavaをサポートするすべてのプラットフォーム上で実行できる
– 小規模なプログラムやシステムの場合、逆に時間がかかる
## C#
– Microsoft社が独自に開発した、Wi

元記事を表示

GoogleのCustom Search APIでニュースを検索する方法

# 方法 : 検索エンジンの設定でschema.orgタイプにニュース関連のノードを設定する
1. [Programmable Search – 検索エンジンの編集](https://cse.google.com/cse/all)から作った検索エンジンを選択
2. [schema.org タイプを使用しているページを制限する]で「schema.orgタイプ」を選択する
– 選択できるschema.orgタイプ : [Full Hierarchy – schema.org](https://schema.org/docs/full.html)
– 今回は、[NewsArticle](https://schema.org/NewsArticle)、[Newspaper](https://schema.org/Newspaper)、[NewsMediaOrganization](https://schema.org/NewsMediaOrganization)を選択してみた
1. 保存は自動でされる

![a.gif](https://qiita-image-store.s

元記事を表示

PHPでメッシュコード(最大8分の1)から中心点を取得する

PHPでメッシュコードの中心点を取るコードが以下です。
呼び出すのは `coordinateFromMeshCode($mesh_code)` で引数にメッシュコードを入れればOKです。
4分の1などを出したい場合は末尾の数字を削っていけばOKです。
その際中心出す距離も適宜変更が必要です。

“`php
function coordinateFromMeshCode($mesh_code) {
$first_coordinate = $this->first($mesh_code);
$second_coordinate = $this->second($mesh_code);
$third_coordinate = $this->third($mesh_code);
$forth_coordinate = $this->forth($mesh_code);
$fifth_coordinate = $this->fifth($mesh_code);
$sixth_coordinate = $this->sixth($mesh_code

元記事を表示

日付をjson形式で送ってxcodeで日本語形式に表示例「ISO8601形式(iOS10.0以上)」

Json形式

“`php
date(‘Y-m-d’,mktime(0, 0, 0, $month, $i, $year)).”T00:00:00+00:00″
“`

xcode文

“`xcode
let datew = json[“calendar”][i][“date”].string
print(“datew”)
print(datew)

let datewx = datew!
// iOS10.0以上ならズバリのフォーマッターが使える
let iso8601DateFormatter = ISO8601DateFormatter()
// 変換

元記事を表示

LaravelでCSVする方法

# はじめに

FuelPHPには `Format:forge($array)->toCsv()` という感じで配列からかんたんにCSV用の文字列を生み出すことができたのですが、Laravelにはありません。
http://fuelphp.jp/docs/1.9/classes/format.html

それくらい `foreach` でぐるぐる回せやってのはあるのでしょうけど、めんどくさいじゃないですか。
そこでいい方法がないかなって探してみました。

# `soapbox/laravel-formatter` を入れる

まあ、だいたいこういうものはpackagist漁ればいいのがありそうなもんなんですよ。
Laravel用じゃなくてもいいのですが、Laravel用だと5.5以降ならServiceProviderにいちいち登録しなくても使えるのがいいですよね!

というわけで今回は `soapbox/laravel-formatter` というのを使ってみます。
https://packagist.org/packages/soapbox/laravel-formatter

こい

元記事を表示

ApacheのAddDefaultCharsetを変更しても一部文字化けが解消されない

#概要
CentOS5x->CentOS7xへのリプレースを実施したときのことです。
旧環境では文字化けしていなかった一部のhtmlファイルの日本語が新環境では文字化けしていることが確認されました。

#調査
対象htmlファイル内ではcharsetがshift-jisに指定されていました。
一方、ApacheのAddDefaultCharset utf-8(旧環境ではOFF)でした。なるほど。
そこで、新環境でも同じくこれをOFFにしたところ、、、なんと文字化けは解消しませんでした。

#解決
調査の過程でphp環境の影響が浮上しました。
php.ini内でcharsetがutf-8と指定されており、これがApache起動時の設定パラメータを上書きしていたと思われます。

“`php.ini
; PHP’s default character set is set to UTF-8.
; http://php.net/default-charset
default_charset = “”
; If empty, default_charset is used.
“`
上記のと

元記事を表示

WordPressが初めてでさっぱりわからないときに見たいリンク集

# 管理画面の使い方がわからない
– [【丁寧解説】WordPressヘッダーメニューバーの作り方と設定方法 | WEBST8](https://webst8.com/blog/wordpress-menubar-setting/)
– [WordPressのカテゴリーの設定方法から編集まで徹底解説](https://bazubu.com/how-to-setup-wp-category-23699.html)
– [WordPressで「テーマの編集」が表示されない?もしかしたらそれマルチサイトじゃありませんか](https://it.sorayori.com/wordpress_themecustomize/)

# ディレクトリ構成
– [WordPress のフォルダ構成/ Web Design Leaves](https://www.webdesignleaves.com/pr/wp/wp_folder_structure.html)

“`bash
サイトディレクトリ
├app
|├public
|├public/wp-admin
|├public/wp-content

元記事を表示

PHP初心者がPHP7技術者認定初級試験を受けてみた。

2019年5月27日に開始された試験ということもあって、記事も少なかったので
自分の備忘録と今後取得される方へ参考になればと思い書かせていただきます!

#取得目的
業務では約1年ほどRubyに触れていましたが
就業先でPHPを使用することになるので日々の学習の継続とスキルアップのために
受けさせていただきました…!

#初級試験について
– 試験会場: 全国のオデッセイコミュニケーションズCBTテストセンター
– 試験日:試験会場にてほぼ一年中実施しています。
– 設問数:40問
– 試験時間:1時間
– 合格ライン:7割正解
– 出題形式:選択式(複数または単一選択)

公式ページの合格体験を見てる限りですと
初級試験に関しては独学で取得されている方が多い印象でした。

#勉強方法と期間
##[**初めてのPHP(PHP7版)(公式主教材)**](https://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEPHP-David-Sklar/dp/4873117933)
公式教材として挙がっている入門書ですが
他の言語

元記事を表示

GoogleのCustom Search APIでORとAND検索する方法

# GoogleのCustom Search APIをWordPressで使う方法を覚えた
[WordPressにショートコードを使ってPHPを埋め込む方法 – Qiita](https://qiita.com/ponsuke0531/items/a4328cdd7ddd98579146)
を覚えたので
[WordPressでGoogleのCustom Search APIを使ってみる – ponsuke_tarou’s blog](https://ponsuke-tarou.hatenablog.com/entry/2020/06/29/184108)
をやってみたところで思た

## ORとAND検索したい
いくつもの検索ワードを検索したいけどAPIでは100検索/日という制限があるので何回も何回も検索したくない

> Custom Search JSON API provides 100 search queries per day for free. If you need more, you may sign up for billing in the API Consol

元記事を表示

Laravel ログの格納場所を変更する

# 目的

– Laravelのログの内容によって出力先を変更する第一歩として、デフォルトのログ出力状態で格納場所を任意の場所に変更する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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 |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](

元記事を表示

OTHERカテゴリの最新記事