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

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

PHP_CodeSniffer & VSCodeの環境を作ってみた

何かしらのコーディング規約を導入したいPHPのプロジェクトがあったので、PHP_CodeSnifferを導入してみました。その手順をまとめています。

# PHP_CodeSnifferとは?
PHP_CodeSnifferとは、特定のコーディング規約に違反していないかどうかをチェック、修正する開発ツールです。
PHP、JavaScript、CSSファイルのコーディングに関して、規約違反がないかを判定、修正することができます。

# 導入手順
### PHP_CodeSnifferの導入
Composerを使って、プロジェクトのローカルにPHP_CodeSnifferをインストール

“`
composer require –dev “squizlabs/php_codesniffer=3.*”
“`

## コーディング規約の設定ファイル作成
規約の設定用ファイル`.phpcs.xml.dist`をプロジェクト内に作成
中身は例です。

“`xml

元記事を表示

Laravelで自作Paginatorを作る

LaravelでPaginationを実装するときは、Laravelフレームワークで提供されている LengthAwarePaginatorを継承して、独自のPaginatorクラスを実装すると便利です。

ブログの記事を想定してサンプルコードを示します。

“`php:PostPaginator.php

元記事を表示

LaravelのミドルウェアでDBにアクセスログを残す

Laravelアプリの検索フォームのリニューアル時に、ユーザーへのアンケートではなく、chromeの開発チームのように利用統計から改善したいと思いました。

最も利用される検索フォームは電話番号か氏名のどちらか、と調べられたり、レスポンス改善の優先度を見える化するためにミリ秒単位でロード時間を測るまでをゴールとします。

ミドルウェアを使って、簡単に実装できました。ファイルもartisanコマンドで作成できます。

“`
$ php artisan make:model HttpRequest –migration
Model created successfully.
Created Migration: 2020_06_20_010616_create_http_requests_table

$ php artisan make:middleware CollectHttpRequestStat
Middleware created successfully.
“`

作成された3ファイルに[https://github.com/umihico/laravel-demo/c

元記事を表示

LaravelでRedisのテストにFaker(Factory)を使う

先生はfですか?zですか?

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪ ---- ------------------- ↓ 余談はここから ↓------------------- Laravelを使っていて、 CSVファイルをデータベースに登録する際、 一時的に利用するデータをテーブル創って入れていたのだが、 **Redisでよくね?** と思い立ってしまった。 で、データベースのテストにはFactoryやSeedを使ってるわけだけど、 Redisでも使えるようにならんかなぁ :thinking: となったのでちょっとやってみた。 また、訳わからんこと。。。 :upside_down: とりあえず動くレベルで、 形にはなったのでここに残しておこう。 Laravelのバージョンはこちら ```bash $ php artisan --version Laravel Framework 5.7.28 ``` テーブル構造はこんな感じ | item_name | item_num | item_price | |:----------------:|:-----

元記事を表示

Laravelでデータベースを操作する(Eloquent編)

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

[Laravelで入力値エラーチェック(validate)を実装する](https://qiita.com/toontoon/items/abf5c52eb0c3fe11003c)
[Laravelでフラッシュデータ(直後のHTTPリクエストの間だけセッションに保存されるデータ)を使う](https://qiita.com/toontoon/items/eb9de17f65c198112f24)
本記事は上記の内容を理解している前提で書かれています

[LaravelでDIを使う](https://qiita.com/toontoon/items/ebf53e4053be6f663730)
本記事は上記で作成し

元記事を表示

【FuelPHP】Html::anchorを使わずにページ遷移させる

#問題点 : Html::anchorを使った時

“`
//返り値 Example
echo Html::anchor(‘example’, ‘Example’);

//返り値 Example
echo Html::anchor(‘http://www.otherdomain.com/example’, ‘Example’);
“`

公式のドキュメントには上記のように書いていますが、
次のようにaタグの中にspanタグなどを入れたい場合の書き方が解説されていませんでした。

“`
Qiita

“`

#解決策 : Uri::base()を使う

半日頭を悩ませて、Uri::base()を使う結論に至りました。

“`
一歩進んだMVCフレームワークの使い方

## まえ書き
私は現役バリバリでコードを書いてるエンジニアではないので、モダンな内容の記事は書けません。エンジニア1, 2年生がなんとなく理解しているけど、はっきりとは理解できていない、そんなことが、よりはっきりとした理解に変わる。そんな記事が書けたらなと思っています。

## MVCパターンの限界
前回の投稿からだいぶ時間がたってしまっていますが、[前回投稿](https://qiita.com/takutokondo/items/955a4967dfac64cdc4a2)した記事では、MVCパターンにおいて、ビジネスロジックとはどういうことなのか、それはどこに実装するのが望ましいのかについて書かせて頂きました。しかしながら、ビジネス要件が目まぐるしく変わる今となっては、これに対応できず限界に達しています。

**MVCパターンが限界になるまでの変遷**
MVCパターン(≒MVCフレームワーク)の登場

ビジネスロジックをControllerに書くため、Controllerが肥大化
※ そもそも間違ってる、でも当時の参考書がみんなそうなっていた

Skinny Controll

元記事を表示

【Laravel】テンプレートの書き方

# 概要
LaravelのMVCのうちのビュー周辺について説明するよ
つまり、テンプレートの書き方だね
初心者向け程度の内容だよ
[【Laravel】コントローラの書き方](https://qiita.com/KagYeah/items/08c8159a5439f522018c)と一緒に読むといいよ

# ビューの呼び出し
コントローラ側でview()が呼ばれると、引数に与えられたテンプレートがレンダリングされてブラウザに表示されるよ
例えば、view(‘welcome’)の場合、resourcesフォルダ内のviewフォルダの中にあるwelcome.blade.phpまたはwelcome.phpというファイルが呼び出される
2つともファイルがあると拡張子がblade.phpの方が呼び出される

viewフォルダの中にさらにフォルダを作りその中にテンプレートを作ると、
  view(‘フォルダ名.テンプレート名’)
のように呼び出せばいい

# テンプレートの例
– htmlファイルと同じように書く

“`php:resources/view/hello.blade.php

元記事を表示

【Laravel】コントローラの書き方

# 概要
Laravelのコントローラ周辺について説明するよ
初心者向けの内容だよ
[【Laravel】ルーティングの書き方](https://qiita.com/KagYeah/items/552a36596e0d8b4b9b92)と一緒に読むといいよ

# コントローラ
コントローラとは、アプリケーションの処理を実装する部分だよ
クライアントからアクセスがあると、ルーティングによって、「○○というアドレスがきたら××という処理を行う」ということを決めるんだけど、この「××という処理」を書いているものがコントローラだよ
コントローラはクラスで表されていて、アクションというメソッドで書かれたものの中に具体的な処理を書いていく

## 基本
コントローラを作成するにはartisanコマンドを使う

“`zsh:
% php artisan make:controller コントローラ名
“`

コントローラ名は大文字で始まって、○○Controllerという名前にするのが一般的だね

“`zsh:
% php artisan make:controller HelloControl

元記事を表示

LINEのトークをメールで自動転送するボットを作った

#はじめに
プログラミング初心者の投稿者は完成に1ヶ月を要しました()
が、この記事を読んでいる皆さんは、もっと短期間で作れると思います(たぶん)。
ほかの記事、サイトを調べれば分かるところ、書くのが面倒くさいところは簡潔に説明します。
投稿者はQiitaも初心者ですのでお手柔らかに…
ネット上にはいろいろ記事がありますが、できるだけ新しいものを見つけるようにしてください。

#仕組み
LINE botを作り、トークを転送したいグループに招待します。
誰かがグループに(テキストメッセージ、写真、動画、スタンプ、ファイルなど)を送ると、LINEは、それらを予め設定しておいたところ(Webhook URL)に送ってきます。
受け取り先(heroku)に、送られてきた内容をメールで送るプログラムを書いておけば、メッセージが送られてくるたびに自動でメール転送できるようになります。

#LINE Developers 登録
LINE botを作るには、LINE Developersに登録する必要があります。
無料プランで大丈夫です。

登録方法は下で説明します
#Messaging API
>M

元記事を表示

【VS code】キーボードショートカット・keybindings.jsonの開き方

#【VS code】キーボードショートカット・keybindings.jsonの開き方

PHPでカーソルを単語の外に出すショートカットキーを設定した際にkeybidings.jsonを利用したため、そのファイルの開き方をまとめます。
*動画の後半がjsonファイルの開き方です。

![VScode_keyboard.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526570/7350c59a-a230-615e-7a14-3785a0933f1c.gif)

ちなみにtabキーで単語の外に出す設定は以下のリンクで紹介されています.
https://qiita.com/noanoa07/items/0e22d7115a35498e0e08

元記事を表示

【PHP】POSTメソッドとHTMLエスケープをしよした割り勘の金額を求めるプログラムの作成

本日は、割り勘する時の一人当たりの金額を調べるプログラムを作成しようと思う。

始めに、HTMLエスケープを実行するためのes()を作成していく

“`util.php
$value){
//f

元記事を表示

PHP 切り上げ(ceil)、切り捨て(floor)に小数点の桁数を指定できるようにする

PHPには似通った組み込み関数として以下のようなものがあるのだが、

`round()` : 四捨五入(modeで多少いじれる)
`ceil()` : 切り上げ
`floor()` : 切り捨て

桁数を指定でいるのは `round()` だけで、
`ceil()`, `floor()`の二つの関数に関しては、桁指定できる宣言部がない。

そこで、切り上げ、切り捨て処理ができる関数を作ってみた。

##切り上げ、切り捨て処理

### 切り上げ処理(ceil_round_up)

`ceil_round_up ( float $value [, int $precision = 1 ] )`

第一引数 : 切り上げしたい数字
第二引数 : 切り上げしたい小数点桁数(初期値1)

“`
function ceil_round_up($value, $precision = 1) {
return round($value + 0.5 * pow(0.1, $precision), $precision, PHP_ROUND_HALF_DOWN);
}
“`

### 切り捨

元記事を表示

PHP、MySQLで、Wordpressのような記事サイト制作。絞り込み、ページャー機能について

初めまして。
phpを独学で勉強中です。

phpの投稿フォームからMySQLへ保存し、一覧で書き出したり絞り込み検索ができるシステムを構築しています。
(Wordpressのブログのイメージです。ページャー機能も付けています)

絞り込み検索とページャーの機能はとりあえず動くようになったのですが、下記問題があります。
 ・複数項目の絞り込みに対応できない。
   →現状、キーワード検索のみ
 ・ページャーが、絞り込みをかけてもテーブル内すべてのデータを含んでしまう。
  2ページ目に移動すると絞り込みが解除されてしまう。

こちらどの様に改善するかお分かりになる方いらっしゃれば、ご教授いただけますと幸いです。
お手数おかけしますが、よろしくお願いいたします。

▼MySQL
テーブル名: shop
カラム1: ID(連番)
カラム2: s_name(テキスト)

▼HTML(検索フォーム)

キーワード検索
元記事を表示

Laravelログイン機能の実装について

# はじめに
草野と申します。
今回の投稿は、プログラミングスクールを卒業後、同期生に声をかけチームを作り、行っている開発についてアウトプットを行います。自分用のメモのため、文章は拙いですが、少しでも初学者の助けになればと考えています
内容は、表題にもあるとおり、チーム開発によるアプリのログイン機能実装についてです。未熟な点も多いと思います。不備等ありましたらご指摘ください。随時改善して行こうと思います。ちなみに私は、Railsを学びLaravelを次に学んでいるという状況です。

# Laravelの導入方法について
Laravelの導入方法については以下の記事を参考にさせて頂きました。

– [macにLaravelを導入](https://qiita.com/iczo32/items/c20ebd5cf40c8a376cd2) @iczo32様
– [【Laravel】データベースを作成しよう](https://qiita.com/hitochan/items/f5dc22ecbe24a350276a) @hitochan様

# 完成品
[![Image from Gyazo

元記事を表示

YoutubeAPI $ composer require google/apiclient:~2.0で詰まった件について

初投稿になります。
見辛い記事かと思いますがご容赦ください。。

今回、オリジナルポートフォリオを作るにあたって、LaravelからYoutubeAPIを使い動画のアップロードをしたいと考えました。
その際そもそものインストールや認証などでかなり詰まったので備忘録として記事にしておきたいと思った次第です。

環境
AWS EC2 Micro無料枠
Docker Laradockにて構築
PHP7.3
Laravel 6.10.0

まずは公式からサンプルコードをコピーしてきました。
https://developers.google.com/youtube/v3/code_samples/php?hl=ja#resumable_uploads

レジューム可能なアップロード
次のコード サンプルは API の videos.insert メソッドを呼び出して、ユーザーのチャンネルに動画を追加します。また、このコードは Google_MediaFileUpload クラスに true に設定した resumable upload パラメータを付けて使用して、動画を分割してアップロードでき

元記事を表示

PHPの環境構築(パスを通すとは)

パスを通すって何?
環境構築って何をすればいいの?

この記事は、PHPの環境構築に関するメモです。
MAMP内のPHPのバージョンを変更する手順を解説します。

## PHPのバージョン確認

ターミナルから、`php -v`コマンドで現在のバージョン情報がわかります。
私の場合、`user`ディレクトリから確認してみると以下の情報が出力されました。

“`terminal
$ php -v
PHP 7.4.7 (cli) (built: Jun 12 2020 00:01:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.7, Copyright (c), by Zend Technologies
“`
続いて、MAMPのディレクトリから確認してみると…

“`terminal
$ php -v
php -v
PHP 7.1.33 (cli) (built: Jan 18 2020 13

元記事を表示

PhpStormでのコード解析 ~InspectCode設定~

## 概要
PhpStormにあるコードチェック機能の「コード・インスペクション」を触ったので備忘録。

`※PhpStorm : JetBrainsが提供しているPHP用のIDE(統合開発環境)`

## 利用方法
– 上部メニューバーの「Code」 > 「Inspect Code…」
– ファイルやディレクトリを選択して右クリック > 「Inspect Code…」

## 設定内容
– Inspection scope
– チェック範囲の指定
– 下記の3項目から選択
– Whole project (プロジェクト全体)
– Directory ‘…XXX’ (指定されているディレクトリ配下)
– Custom scope (自身で登録したカスタム設定を使用)
– Inspection profile
– チェック項目を指定
– 特定言語やサービスのチェックを選択やカスタマイズ可能

### Custom scope
– ダイアログ左上部の「+」「-」でスコープ(チェック範囲)の設定を

元記事を表示

PHP for文を用いて配列に配列を確認する

# 目的

– for文を用いて全く同じ配列データをさらに配列に格納する方法を下記に記載する

# 実施環境

– ハードウェア環境

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

– ソフトウェア環境

– 処理の確認下記のサイトでブラウザ上で確認した。
– [https://paiza.io/ja/projects/new](https://paiza.io/ja/projects/new)

# コードの例

– `[“test01”, “test02”, “test03”]`という配列さらに配列`$main_array`に10回格納する

元記事を表示

Laravel 7.16.1でTwitterっぽいSNSツールを作る

以下の記事を参考に、Laravel 7.16.1でTwitterっぽいSNSツールを作成します。
基本的にエラーが起きた箇所のみ書いていきます。

【全6回】Laravel5.8でTwitterっぽいSNSツールを作る
第1回:[DB設計とMigration](https://qiita.com/namizatop/items/d79017aa474966244073)
第2回:[Seeder->ログイン/新規登録](https://qiita.com/namizatop/items/3c20c0d0565906cc6a1a)
第3回:[ユーザ関連とフォロー機能](https://qiita.com/namizatop/items/0c81b0a94a1084cda6de)
第4回:[ツイートのCRUD機能](https://qiita.com/namizatop/items/c9ed67f98fc3e5ce67c7)
第5回:[ツイートのCRUD機能 編集と削除](https://qiita.com/namizatop/items/2273bd0dcc817785b131)
第6回

元記事を表示

OTHERカテゴリの最新記事