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

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

Laravelでエラーハンドリング(エラー時の制御)を行う

# Laravelのエラーハンドリング
Laravelでエラーが起こった場合に表示する画面を制御します

# 前提条件
下記前回記事の続きです
[Laravelでリクエストデータを取得する](https://qiita.com/toontoon/items/eff426606ce0f194c345)
本記事は上記が完了している前提で書かれています
上記記事で使用したプロジェクトを引き続き使用していきます

# HTTPステータスコードのエラー画面

## viewの作成
(1) /sample/resources/views/errorsフォルダ作成
(2) /sample/resources/views/errors/404.blade.phpファイル作成

“`404.blade.php


sample


存在しないURLです


“`

/resources/views/errors/HTTPステータス

元記事を表示

Laravelでリクエストデータを取得する

# Laravelのリクエストデータ取得処理
Laravelでのリクエストデータ取得について書いていきます

# 前提条件
下記前回記事の続きです
[Laravelでビュー描画前処理を行う](https://qiita.com/toontoon/items/b3f2ceb1d89b15ce1079)
本記事は上記が完了している前提で書かれています
上記記事で使用したプロジェクトを引き続き使用していきます

# Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpにrequest1メソッド、request2メソッドを追記

“`
public function request1(Request $request)
{
$request->flash();

$data = [
‘get’ => $request->get(‘a’),
‘input’ => $request->i

元記事を表示

MVCモデルをもう一度振り返ろう!

#MVCモデルをもう一度振り返ろう!
MVCモデルとはモデル(M)、ビュー(V)、コントローラー(C)の3つに役割を分けて開発を行う設計パターンです。
railsなどもMVCモデルに基づいて作られています。

##MVCモデルのそれぞれの役割

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629620/068ffd73-21b4-e199-7b2d-187a0e72aa86.png)

MVCモデル参考イメージ出典:https://www.katonobo.com/entry/what_is_MVC

・モデル(model):表示や入力に関連しない処理
・ビュー(view):表示や入力に関する処理
・コントローラー(controller):ビューとモデルの橋渡し役

という役割とされています。
役割を聞いただけですとよくわからなかったのですが、私のイメージですと、、、
・モデルはデータをコントローラーに引き渡す役
・ビューは見た目の役
・コントローラーは上記の理解

といった解釈をして

元記事を表示

PHP 関数について

#関数とは
処理をまとめて名前をつけたもので、関数を呼び出す事で必要な値などを簡単に得る事ができます。

###関数の種類
組み込み関数とユーザー定義関数がある。

####組み込み関数
元々PHPに定義されている関数で、関数を呼び出すだけで簡単に使用出来る。
使い方はPHPマニュアルの関数リファレンスに載っている。(https://www.php.net/manual/ja/funcref.php)

####ユーザー定義関数
自身で定義が出来る関数

##基本的な書き方
関数を定義する場合は、`function`を最初に記述する。

“`php

function 関数名(引数){
処理
}

//関数の呼び出し
関数名();
“`

###例文

“`php
//関数の定義
function getWord($word){
echo $word;
}

//関数の呼び出し
getWord(‘こんにちは’);
“`

解説をすると、`function getWord`でユーザー定義関数(getWord)を定義しています。そのあとの`($word)`は引数にあたります

元記事を表示

大学生のEC-CUBE奮闘記① ~EC CUBE4.0をXAMPPで実行~

#0.自己紹介

これが初記事なので、自己紹介をしたいと思います。地方で情報系の大学生やってるikoma1234と申します。今日からEC-CUBEを使ってECサイトを制作することになりました。

僕は現在、市内のEC業者でデータ入力のアルバイトをしています。(楽天、yahoo、Amazonなどへの商品登録)

データ入力自体は難しい仕事じゃないので、Pythonでソフト作って効率化とかしてました。
画像制作ソフト、メール便くん
→https://github.com/ikoma1234/mail-bin-kun

商品説明文生成ソフト、商品説明くん
→https://github.com/ikoma1234/setsumei-kun

#1.ことの始まり

そんなこんなでまったり働いていたのですが、この度自社製のECサイトを作ろう!という運びとなり、パソコンが詳しいという理由で仕事を任せてもらえました。一介の学生アルバイトの身に余るほどの裁量のある仕事で、とても緊張しています。

このブログは活動記録として残すことにしました。拙いところもあると思いますが、気軽に見ていってほしいです

元記事を表示

Laravel タイムゾーンを日本に変更する

# 目的

– タイムゾーン変更の方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いて導入 |

# 実施方法

1. 下記コマンドを

元記事を表示

「Problem 1 – laravel/framework v6.9.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your systemの解決方法

#はじめに
composerをインストールし、Laravelプロジェクトを始めたら以下のようなエラーが出たので解決方法を載せておきます

““
[vagrant@localhost]$php composer.phar create-project –prefer-dist laravel/laravel myblog
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
– laravel/framework v5.7.9 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
– laravel/framework

元記事を表示

【PHP】恐竜コンビネーション(r種類までの組み合わせか、r種類の組み合わせか)

###1.nCrと再会

懐かしい。
本当に懐かしい。
見ているだけならば。
高校数学の此奴を使う出番があるとは思わなかった。
paizaを解いていくと、コンビネーションが必要になる事がある。
備忘録として、7種類のうち〇〇種類を組み合わせるか、または1から〇〇種類までの
組み合わせが欲しいときについて、まとめることにした。

###2.コード

恐竜一覧が表示された後に、プルダウンとラジオボタンで出力項目を選択して「確定ボタン」を押す。

数字の(1,2,3)の中の2つの数字の組み合わせは(12,13,23)になる。
ここで注意したいのが__一桁目の数値より大きい数値が後ろにくるように作成すればいいことがわかる。__
get_combi1でこの性質を利用して作成している。

“`php:combi_php2.php




組み合わせ

組み合わせ

元記事を表示

cronと同様の設定方法で秒単位でコマンドを定期実行させるPHPスクリプト

[NASのミラーリング用スクリプト](https://qiita.com/akebi_mh/items/93d77526b8109dc58589)を数秒間隔で定期実行させる目的で作成。
crontabにsleepを組み合わせたりすることでも秒単位での定期実行は可能ですが、せっかくなのでもう少し細かな設定もできるようにしました。

###スクリプト###

~~~php:interval.php

元記事を表示

[PHP] 静的解析ツールPHP Insightsの機能概要

# はじめに
PHPの静的解析ツールのPHP Insightsの概要をざっと理解することを目的とした記事です。
PHP Insightsの機能を再確認するときのメモとして使いたかったので、公式ドキュメントへのリンクを多めにしています。
PHP Insightsのことを知っている人にとってはスキップできる内容だと思います

# 本記事投稿時点の最新ver
v1.14.0

# どのようなツールか?
PHPで書かれたソースコードを解析してくれるツール。

# コード解析の視点
– [Code](https://phpinsights.com/insights/code.html)
– [Complexity](https://phpinsights.com/insights/architecture.html)
– [Architecture](https://phpinsights.com/insights/complexity.html)
– [Style](https://phpinsights.com/insights/style.html)

以上の4つの視点からコードを解析して

元記事を表示

PHP 日本の東京の今日の日時を表示する

# 目的

– PHPで日本の東京の只今の日時を表示する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |

# 実施方法概要

1. タイムゾーンの設定
1. コードを書いて確認

# 実施方法詳細

1. タイムゾーンの設定
– php.iniに記載する方法
1. 下記の投稿を参考にさせていただき、php.in

元記事を表示

間違った名前のマイグレーションファイルを生成してしまった時

## 一つだけロールバックしたい
間違えてCというマイグレーションファイルを作ってしまい
他のは残してCだけロールバックしたい

“`
Ran? | Migration | Batch |
+——+————————————————+——-+
| Yes | xxxx_xx_xx_xxxxxx_create_xxxxx_table | 1 |
| Yes | xxxx_xx_xx_xxxxxx_create_xxxxxxx_xxxxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxx_xxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_x

元記事を表示

未経験からエンジニアがキャリア初期に、任されるあろう3つのタスクを出題してみる

## はじめに
もくもく会を主催したり、未経験からエンジニアを目指す方と関わる機会が多く、どんな記事なら読んでみたいか、聞いてみたところ、「実務としてエンジニアがどのように仕事しているのか想像出来ない」、とか「いつもどんな仕事をしているか教えてほしい」という声をいただくので、この記事を書くことにした。
## 私が感じた実務とのギャップについて
私は未経験から転職を目指している際、カレンダー上で日々のカロリー計算ができるアプリケーションを作成した。未経験からの転職にしては、それなりに機能も考えて実装したが、やはり実務とのギャップは存在した。

①実務で動いている案件は規模が大きく、全体像を掴むことが難しい。人が書いたコードを適切に読めることはプログラムが書けることと同じぐらい大事!!!!

②案件のキックオフから参画できるようなことは稀で、他人の書いた既存コードの中に自分のコードを書き加えていくことが圧倒的に多い。すでに完成されているプロダクトの修正などが、最初に任されるタスクとなる。

③動けばいいというものではなく、保守性や拡張性を考慮したコードを然るべきところに書いていく必要がある

元記事を表示

PHP 構文memo

#構文まとめ

##名前空間

namespace 名前空間;
class クラス名{
public function __construct(){
print (“test”);
}
};

###参考
https://www.atmarkit.co.jp/ait/articles/1808/01/news009_2.html

PHPの基礎 参考サイト
https://www.atmarkit.co.jp/ait/series/1432/

元記事を表示

一口メモ – PHPできれいに短くコードを書く方法 (switch編)

switch文で書かれた長たらしいswitch文のコードを短く書き直してみる。

## PHPのバージョン
* PHP 7.1.2

## 使用するやつ
* ??を使った三項演算子(null合体演算子)
* 連想配列

※ これらはあらかじめ使い方を知っておいて下さい。

## 実践
それぞれのHTTPステータスコードに対応するメッセージを表示させたい場合、通常ならばswitch文で書く人が多い(という根拠の無い推測)

“`php

元記事を表示

EC-CUBE4 独自プラグイン開発 ③今後も使えそうなTips

# 概要
独自プラグインの開発を通して学んだことをまとめました。
別の記事として書いた場合もあります。タイトルにピンときたら読んでみてください。

# 目次
[EC-CUBE4 独自プラグイン開発 ①環境構築手順](https://qiita.com/haruna-nagayoshi/items/948b196cf4f5186641e9)
[EC-CUBE4 独自プラグイン開発 ②独自プラグイン開発Tips](https://qiita.com/haruna-nagayoshi/items/27108c75eaf9511f3524)
EC-CUBE4 独自プラグイン開発 ③今後も使えそうなTips、考えたこと (本記事)

# 今後も使えそうなTips
## .gitkeepと.gitignoreの違いと使い分け
[空のディレクトリを維持するための、 .gitkeep と .gitignore の使い分け](https://qiita.com/ndxbn/items/f124d2b183b60cb074e2)
PhpStormを使う都合上`.gitignore`はよく使うけど、`git

元記事を表示

PHP foreachを使う

#foreachを使う
###foreachとは
配列の値を複数表示させる時に使います。

“`php
$members = [
‘name’ => ‘鈴木’,
‘height’ => 172,
‘hobby’ => ‘野球’
];
foreach($members as $member){
echo $member;
}
“`
説明すると、`$members`という連想配列があったとして、`foreach`の`($members as $member)`とありますが、これは`$members`を`$member`という変数で展開するという事です。従って、変数`$member`は`$value`等配列に関係性のあるものの名前にすると分かりやすいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629307/0bb6b9c9-dcd3-1126-2db2-15041f745a59.png)
ブラウザで見るとこのように表示されます。`$members`のバリューが表

元記事を表示

PHP Laravel 基礎

#前提
Laravelでアプリを作っていた時に学んだことを殴り書きしていきます。

#本題

ミドルウェアとは
アプリケーションへ送信されたHTTPリクエストをフィルタリングする、便利なメカニズムを提供してくれるもの。
ブラウザ経由で来たリクエストをコントローラーに処理が行く前に何らかの処理を追加できる機能。
ログイン認証のミドルウェア。

storeメソッド
Laravelでは慣習的にstoreメソッドはデータをデータベースへ挿入する際、よく使われるメソッド名です。

insertメソッド
insertメソッドはデータベースに新しいレコード(行)を追加するメソッド。

アップロードした画像はハッシュ名(ランダムな名前)で保存したいため、どのレビューとどの画像が紐付くのかをデータベースに保存しておく必要がある。
ハッシュ名で画像を保存する理由としては、セキュリティのため。
わかりやすい名前で保存してしまうと直接URLにアクセスされてしまう等のセキュリティリスクが上がるため、ランダムな名前で保存する。

論理削除
論理削除とは実際にはデータを削除せずに、削除されたと見なすフラッグと呼

元記事を表示

さくらレンタルサーバーでCRON制限無くなるようにする方法?

### 目的
さくらレンタルサーバーでCRON制限無くなるようにするために作ったものです。
スタンダードの場合、5つしか登録できない(´・ω・`)ので
それを回避するためにコードを書きました。
まだ、テスト段階です。

![2020-05-01_1919.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66081/c9502c3d-b226-4ccf-2970-3930ae5adafc.png)

CRON設定は上記のような設定にする。

### 注意事項
1. 外部から実行ファイルを叩かれないように設定するように
2. PHP7推奨
3. プログラムを見て解釈してください
4. 5分刻みのクローン設定にしか有効性がないです。
5. カンマ区切りの際に月や日に0を入れないように?

### 実行コマンドの例 こんな感じ

“`
command”:”cd /home/user/www/user_dir/site/; /usr/local/bin/php cron.php “cron.json”
“`

元記事を表示

Advanced Custom Fields の関連記事を選択する際の並び順を変更

WordPress で開発する時にあったら大変捗るプラグインといえば Advanced Custom Fields です。
その中のフィールドの一つである「関連」フィールドの Tips をご紹介します。

## 関連フィールドとは

Relationship


作成済みの記事やページ(カスタム投稿も可能)を選択できる機能を提供してくれます。ある記事に対して手動で関連記事を設定して有用なサイト内回遊を促したり、固定ページで特定の記事を表示させたい場合などに大変便利です。

### 選択可能な記事の表示順を変更する
ただこの記事選択をする時のUI上の記事の並び順がタイトルのアイウエオ順となっており、キーワード検索を前提とした場合は良いと思うのですが、基本的に最新の記事から記事を選択したい場合などでは不便なので、公開日時の新しい順に並び替えたいと思います。

Screen Shot 2020-05-01 at 18.35.14.png

  • OTHERカテゴリの最新記事