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

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

PHPって使いづらい・・・

**愚痴を連ねた記事です。**(あくまで個人の感想です。)

#生産性低くね・・・?
とふと思いました。仕事で半年程度ですが、使った感想を書いていきます。

##PHPの特徴
PHPの特徴はWEB関係のフレームワークが多く存在し、WordPressなどもよく用いられます(WordPressはCMSですが・・・)。案件ではCAKE PHPやLaravelを用いて開発をしていましたし、WEB関係の実装はやりやすいとは感じました。

動的型付言語であり変数型をあまり考えずに変数を実装できるので、あまり頭を使わずに変数を利用できます。実際、文字列型と数値型をあまり意識せずに値を入れられるのは便利でした。

##ただ生産性がちょっとね・・・
– ロクなIDEが無い
– Eclipse、VSCode、NetBeansと使いましたが、定義ジャンプが無かったり自動インポートが無かったりと不便でした。特にVS使ってて自動インポート無いのは辛い・・・。VSStudioでは使えたのに。

– 動的型付けめんどくさ!
– 数値と文字列考えなくて良いとは言ったが、引数型は合わせないといけない

元記事を表示

【Unity】UnityWebRequestで画像ファイルを送信してPHPで受け取る最小実装

UnityWebRequestで画像ファイルを送信しPHPで受け取る最小の実装を備忘録として残します。

## Unity側

前提条件として画像ファイルはバイト配列として取得している状態を作ります。

以前執筆したコチラの記事でTextureをPNGにエンコードしたバイト配列作成までを紹介しているので、参考になるかもしれません。
[【Unity】RawImageのTextureをPNGにエンコードする方法](https://qiita.com/ohbashunsuke/items/5d9b9771e33d3027fb9c)

“`cs
IEnumerator Send(byte[] bytes)
{
var form = new WWWForm();
// “file”はPHP側で$_FILESから取得するキー ex)$_FILES[“file”]
form.AddBinaryData(“file”, bytes, “image.png”, “image/png”);
var req = UnityWebRequest.Post(“http://lo

元記事を表示

【PHP・laravel】クエリパラメータを送る時まとめ(getとrequest)

初歩的なことですが、調べてもなかなか出てこなかったため、記録します。
#HTMLからPHP側に送る

“`sample1.laravel.php
送信
“`

“`sample2.laravel.php
送信
“`

php側

“`index.php
$get1 = $_GET[‘suji’];//1
$get2 = $_GET[‘moji’];//’文字’
“`

#PHP内のやり取り(関数から関数)
####数値や文字を送るとき

“`index.php
function a(){
redirect(‘/b?suji=1’);
}

function b(){
$request1 = $_REQUEST[‘suji’]//1
}
“`

“`index.php
function a(){
redirect(“/b?moji=’文字'”);
}

function b(){
$request2 = $_R

元記事を表示

Laravelのブログ開発でmarkdown対応させてみた

# はじめに
Laravelを使ってブログを開発している際に見出しや装飾を本文に反映させてみたいな
と思い、markdown対応させてみました。
至らない点がありますが暖かい目でみてやってください。

### 使用するmarkdown
Markdown Extraを使用します。
また、ライブラリは[cebe\markdown](https://github.com/cebe/markdown)を使用します。

### markdown実装
markdownの実装自体は簡単なコードで完了します。

“`convertMarkdown.php
$converter = new \cebe\markdown\MarkdownExtra();
$String = $converter->parse(“# AAA”); //

AAA

“`

### Laravelプロジェクトに組み込む
convertMarkdown.phpで使用したコードをLaravelプロジェクトに組み込みます。
今回はブログでの使用なのでブログの本文が表示される画面で反映させたいので、
記事一覧画

元記事を表示

Laravelでテーブルのcreated_at, updated_atに時刻をミリ秒単位で入れる

##初めに
PHP(laravel)の開発で、
データベースにinsertする際、created_at、updated_atの時刻を、ミリ秒(3桁)まで指定する要件があり、ネットで探しても良記事が見つからなかったのでメモ。

###1.getDateFormat()をModelに記載
例として、productsテーブルに商品を登録するという想定。

“`Product.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
//~省略~

//この関数をモデルに追加
public function getDateFormat()
{
return ‘Y-m-d H:i:s.v’;
}
}

“`

###2.現在時刻をミリ秒単位に成型

コントローラにDBの処理を書くことはバットプラクティスかもしれませんが、
今回簡単な例としてコントローラーに下記のように記述。
*Carbonを使用

元記事を表示

CakePHP3.8 と Laravel7.x の「書き方」の違い ~ORM周りその2~

# CakePHP3.8 と Laravel7.x の「書き方」の違い ~ORM周りその2~

今回はアクセサー周り

前: [クエリの要約](https://qiita.com/yokocho-comachi/items/30330f24dbdcc0c03720)

# そもそもクエリオブジェクトの返り値が別

## 1件取得

* CakePHP

Table クラスとは別に、Entity クラスがあり、それが返ってくる

“`php
// \App\Model\Entity\Users が返ってくる(Table クラスとは別)
$veteranHyphen = $usersTable->find(‘hyphen’)->find(‘veteran’)->first();
“`

* Laravel

Model が Cake で言う Table, Entity の役割を持っている。
なので Model 自身のインスタンスが返ってくる。

“`php
// \App\Users が返ってくる
$veteranHyphen = Users::hyphen()->veteran()

元記事を表示

Visual Studio Code設定メモ

## Extensions
– PHP
– [PHP Extension Pack](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-pack)
– [PHP Debug](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug)
– [PHP Intelisence](https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-intellisense)

– View側
– [Smarty](https://marketplace.visualstudio.com/items?itemName=imperez.smarty)
– [Sass](https://marketplace.visualstudio.com/items?itemName=robinbentley.sass-indented)
– [SVG

元記事を表示

PHPのSwitch文の厳密な比較について

PHPのSwitch文は厳密比較`===`ではなく`==`で比較される

“`php
$param = “2”;

switch ($param) {
case 2:
echo “paramはInteger型の2です”;
break;
case “2”:
echo “paramはString型の2です”;
break;
}
“`
これの出力結果は`paramはInteger型の2です`
String型なのにInteger型と判断されてしまう
コレを解決するには

“`php
$param = “2”;

switch (true) {
case $param === 2:
echo “paramはInteger型の2です”;
break;
case $param === “2”:
echo “paramはString型の2です”;
break;
}
“`

こうしてやる必要がある
最初は条件式にtrueを入れるなんて!!!!と思ったけど

条件式に “2” をいれるとPHPがその時点で自動的にInt

元記事を表示

Laravelで和暦を扱う

和暦を扱う必要があったので,その実装をまとめてみました

# 環境
– Laravel 5.8

# 作るもの
– 年号を管理するテーブル(era_names)
– 和暦クラス
– 和暦と西暦の変換処理

# 年号テーブルの作成
年号を管理するテーブルには

– 年号の名前
– 略称
– 開始日
– 終了日

の4つのカラムを作成します.テーブル名を“`era_names“`とし,マイグレーションファイルは次のようになります.

“`php
public function up()
{
Schema::create(‘era_names’, function (Blueprint $table) {
$table->id();
$table->string(‘name’);
$table->string(‘short_name’);
$table->date(‘start_at’);
$table->date(‘end_at’);
$table->timestamps();

元記事を表示

Laravel5.6以降のログの機能をちょっと調べた

# 目的

– 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の環境構築を行う](https://qiita.com/miriwo/items/adaaa

元記事を表示

Laravel Socialiteを使用してソーシャルログイン を実装する

Laravel Socialiteを使用してソーシャルログインでの登録・ログイン機能を実装していきます。

# Googleの設定
[GoogleAPIs](https://console.developers.google.com/cloud-resource-manager?pli=1)
上記にアクセスして、『プロジェクトを作成』を選択する

### 新しいプロジェクト
プロジェクト名: 適宜
場所: 組織なし
を入力して『作成』を押下

### Google Cloud Platform
利用規約をチェックし『同意して続行』を押下

### 左上ハンバーガーメニュー/『APIとサービス』/『OAUTH同意画面』を選択する

### OAuth同意画面
UserType: 外部を(適宜)選択し『作成』を押下

アプリケーション名: 適宜
『保存』を押下

### サイドメニュー/『認証情報認証情報を作成』/『OAuthクライアントID』を選択する

### OAuthクライアントIDの作成
アプリケーションの種類: 『ウェブアプリケーション』をチェック
名前:適宜
承認済みのリダイ

元記事を表示

Laravel + Vue.jsの導入方法

LaravelのBladeにVueコンポーネントを組み込む方法をまとめます。

## 環境
+ laradock
+ php: 7.3
+ Laravel: 7.2

## Vue.jsをインストールする
“`php:laravel/package.json
“vue”: “^2.6.11”,
“vue-template-compiler”: “^2.6.11”
“`

“`
$ docker-compose exec workspace npm install
“`

## Vueコンポーネントを作成する
試しにハートボタンを作成します。

“`laravel/resources/js/components/SampleLike.vue