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

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

自分なりのFizzBuzzの解説。

エセコボラーがFizzBuzzを解説してみました。

# 材料

* 代数演算子
* 比較演算子
* 条件分岐
* 繰返し制御
* 順次、逐次
* 改行コード
* 数値型変数
* 変数のパース

# PHPでFizzBuzz問題を解いてみる。

問題の解決には、問題を分解することが重要。

これは実生活でも同じ。(知らんけど)

僕が初めて、SES契約で常駐した会社の常務さんは、
**「我々の仕事は、因数分解なんやで」** ってプロパーの社員さんに話してた気がする。
もう14年前かな。

でもこの話は時間と共に、大きなインパクトを僕の中に植え付けた。(多分、多分)

***脱線を戻そう***

# 問題の分割をやってみよう。

* 1〜100までの数字を出力
* 3の倍数はFizzを出力
* 5の倍数はBuzzを出力
* 3の倍数と5の倍数の場合FizzBuzzを出力

これら4つが分割結果。

# 1〜100までの数字を出力しよう。

“`php

元記事を表示

symfony/stringを使ってみる

# はじめに
Symfony5には`symfony/string`という文字列を扱うための新しいコンポーネントが含まれています。今回は軽くそちらを触ってみました。

# symfony/stringとは
公式より引用
> 文字列コンポーネントは、文字列の3つの「単位システム」である、Byte、コードポイント、そして書記素クラスタで機能する単一のオブジェクト指向APIを提供します。

ここで出てきた書記素クラスタとは、 Unicodeにおいて1文字を表す単位の事らしいです。純粋にUnicode文字列を扱えると考えて差し支え無いかと思います。

具体的な使用方法ですが、以下のような事ができます。

## 例1
“`php

$text = (new UnicodeString(‘symfony:stringコンポーネントのテストです、’))
->trimEnd(‘、’)
->replace(‘:’, ‘/’)
->append(“。”);

echo $text;
“`

“`
symfony/stringコンポーネントのテストです。
“`

## 例

元記事を表示

laravel を利用した、ローカル環境での開発サーバ立ち上げ

#立ち上げ方について
composer を実行できる環境を想定して、記載します。
自分はmacを利用して、サーバーの立ち上げを行っています。

初めに以下コマンドを実行すると、ServerTestフォルダが作成されます。
`composer create-project –prefer-dist laravel/laravel ServerTest`

フォルダが作成されたことを確認後、フォルダの直下へ移動。
`cd ServerTest`

以下コマンドを実行すると **http://localhost:8000/** にてサーバーが起動します。
`php artisan serve`

#参考URL
https://readouble.com/laravel/6.x/ja/installation.html

#補足
laravelのレポジトリをgit clone して、サーバーを起動しようとしても以下のエラーが発生して、起動しないので、その点はご注意を。
`$ php artisan serve`

> Warning: require(/Users/test/git/php/

元記事を表示

PHP ファイル操作

様々なファイル操作についての備忘録

“`
ファイル構造について

-mainte
|-file.php
|_.contact.dat
  //拡張子はtextまたはdat。
  datはセキュリティ的にカモフラージュになる
“`

#外部ファイルの内容をまるごと呼び出す方法
“`php

元記事を表示

Laravelでタスクアプリを作る

![202006091556.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643170/8a51557c-9d0e-14a0-edc0-ff9a29b0eef1.png)

下記の「Laravel 5.2 中級者向けタスクリスト」を、Laravel 7以上での作成する方法をご紹介します。ボリュームが多いので、解説は少なめです。認証機能以外はほぼ同じです。

https://readouble.com/laravel/5.2/ja/quickstart-intermediate.html

##作業環境
OS:Windows 10 HOME Edition(ver.2004)
Laravel:7.14.1
Xampp:7.4.6
Composer:1.10.7
Node.js:13.9.0

##①Laravelのインストール
###Composerをインストール
Laravelをインストールするには、Composerというソフトが必要です。
Composerはプログラムの依存関係を解消できるソフトで、

元記事を表示

【PHP】「’ ‘」と「” “」の違い

## 文字列の括り方
PHPで、文字列を記述する場合は、文字列をシングルクォーテーション「’ ‘」またはダブルクォーテーション「” “」で括ります。

“`php
‘; //「改行」
echo “バナナが{$count本}あります。”; //ダブルクォーテーション使用
“`

実行結果

“`
バナ

元記事を表示

LaravelのFacadeを使う時のお作法が分からなすぎる問題を解決(納得)してみた。

#LaravelのFacadeを使う時のお作法が分からなすぎる問題を解決(納得)してみた。
Laravelを使い始めて、
コントローラーで処理を書いて、DB使うならモデル作って、ルートの指定はweb.phpに書いて、bladeエンジンにテンプレートを書いて(HTMLを書いて)いいけばいいんでしょ!

ってくらいの駆け出しレベルの時に、ふと悩むポイントがあります。
それは「**Facadeってなんや?**」ということ。

`DB::table(‘users’)->where(‘id’,1)->first();`の***DB::***とか、
`$name = Request::input(‘name’);`の***Request::***そんなのですね。

偉い人に「ファサードに入ってるから使えばいいじゃん」なんて言われた日には、「あぁ~ファサードですよね。はいはい、どこやったなぁ…ここら辺に置いといたんだけど…(やべぇ…)」なんてことになりますよね。

ってことで今回はFacadeを使うときのお作法をざっくりと分解してみました。

***・どうやってFacadeは動いているのか?
・なん

元記事を表示

LiteSpeedを試しに動かしてみた

# LiteSpeedとは

以下の特徴があるWebサーバです。

## 特徴

* NGINXの様な`イベント駆動型`アーキテクチャ
* キャッシュ機能やページスピード最適化の機能など`速さを売り`にしている
* `Apache`の`mod_rewrite`と互換がある
* `HTTP/3`&`HTTP/2`のサポート
* 複数バージョンのPHP対応など

※その他詳細は[公式サイト](https://www.litespeedtech.com/products/litespeed-web-server)を御覧下さい

## バージョンの違い

LiteSpeedにはEnterprise版とOSS版があり、今回はOSS版の`OpenLiteSpeed(以降OLS)`を試しに動かしてみました。

* Enterprise
* LiteSpeed Web Server Enterprise
* OSS
* OpenLiteSpeed(OLS)

# セットアップについて

今回はCentOS7のサーバで試しに動かしてみました。

## OLSのインストール手順

### OLSの

元記事を表示

【全6回】Laravel6でTwitterっぽいサイトを作るチュートリアル(第1回DB設計とMigration)

# Laravelで始めるTwitter風(Twitterクローン)のSNSツール開発チュートリアル

## 概要

以前5.8で作成した記事の6.x版です。
6.xの書き方に変えるだけじゃなくて、色々気になるところも修正していこうと思います。

> Laravel5.8の記事
第1回 [【全6回】Laravel5.8でTwitterっぽいSNSツールを作る(第1回DB設計とMigration)](https://qiita.com/namizatop/items/d79017aa474966244073)

スクールとかの課題だったりLaravelを初めてみたいけど何を作ろうって迷ってる人向けによくあるTwitter風のWEBサイトを作ってみます。

第1回は環境構築からDB設計->マイグレーション実行までやってみたいと思います。

## 前提

– PHPをある程度理解している
– Laravelが使える環境がある
– MVC構造をある程度理解している

> Laravel初心者を脱却したい!という方はこちらも合わせてどうぞ!
[Laravelワカンネ(゚⊿゚)から「完全に理解した

元記事を表示

Vue CLI+ Laravel 5.8で、クロスドメイン SPA構成/PWA対応のCRUD作成する。

# 概要
前の SPA構成と似ていますが、
バックエンドを、Laravel API サービス
とした。SPAの事例となります。
PWAも対応しています

・デプロイは、netlify ホスティングサービスを使用し
 Vue CLI の build を、zip圧縮でアップロードしています。
 *) SSL対応の、設置場所であれば。問題ないと思います

***
# 構成
Vue CLI
vue-router
@vue/cli-service : 4.4.0
・API サービス:
Laravel 5.8
nginx
mysql
・フロント設置ドメイン ,Vue-CLI:
netlify / ホスティングサービス

***
### 構成図みたいな図
![ss-summary-0609a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159710/6fc9deb0-77c1-58cc-a3a6-a650062be2f7.png)

 複数ドメイン構成で、やや複雑になりますが。
 ブラウザセキュリテ

元記事を表示

Twitter APIでユーザーのタイムラインから、正規化表現で特定のワードが含まれたツイートを取得

#概要

Twitter APIでアプリを作成中、ユーザーのタイムラインから特定のワードを取り出す際になかなか苦労したので、その辺を記録として残しておきます。他にもやり方はあると思いますので、一つの手段として参考にしていただけると幸いです。

Twitter Developerへの登録やタイムライン取得の流れは、他にわかりやすい記事がありますので、そちらを参考にしてください。

[Twitterのタイムライン取得](https://qiita.com/hawk777/items/1986f79de455a0e8e4dd)

[Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ](https://qiita.com/kngsym2018/items/2524d21455aac111cdee)

#ユーザーのタイムラインを取得

“`
//100件のツイートを取得
$params = array(‘count’ => 100′);

// ユーザーのタイムライン取得
$tweets_obj = $twitter->get(‘statuses/user_

元記事を表示

技術記事投稿サービスに誰でも有料記事を投稿できる機能を作った

僕は趣味で[Crieit](https://crieit.net/)というQiitaのような感じのもっとゆるいサービスを運営しています。そちらで有料記事の販売機能を開発しました。ユーザーが自由に記事を販売することが出来るようになっています。開発にはStripeという決済サービスのStripe Connectという機能を使っています。

実際の作り方や考える必要があった事などをまとめていきます。

## Stripe Connectとは

まずStripeというのは簡単にアプリケーションに決済機能を導入することができるサービスです。そしてStripeにはStripe Connectという機能があり、ECサイトや今回の技術記事のように、サービス内でユーザーに商品を販売する機能を提供することが可能になります。

サービス運営者は手数料を設定することで収益を得ることが出来ます。例えばStripe Connectを使わずに振り込みで運用する場合は一度全ての商品の支払いはサービス運営者のところに振り込んでもらい、手数料を引いた分を各販売ユーザーに振り込みする、という手間と費用がかかってしまいます。

元記事を表示

【Mac】MAMP のドキュメントルートを「htdocs」から変更する方法

# MAMP のドキュメントルートを「htdocs」から変更したかった

最近 PHP の勉強をはじめました。
ローカルの環境構築は MAMP で行ったのですが、デフォルトのルートディレクトリである「htdocs」では、いろいろと面倒なことに気づいたので、
変更する方法を調べたので残しておきます。

## 環境

– MAMP : 5.7
– MacOS: Catalina 10.15.3

## 結論

– MAMP → Preferences → Web Server → Document Root から任意のディレクトリをルートディレクトリに設定することができます。

## まずは MAMP を起動する
まずは MAMP を起動する。

![BFCC6CF9-8C55-40E1-AC98-011940B79DAE.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485313/ead547ef-5303-8c4d-5a03-332b027a4d57.jpeg)

## 「Preferences」を開

元記事を表示

写真ACのダウンロード数をグラフ化したい【APIサーバー構築編】 ~1日10行コーディング~

## 5日目

### 【技術テーマ】
PHPでAPI構築

### 言語
* PHP
* JavaScript

### 目標成果物
今日は前回までにためたデータJSONで返却するAPIを作りたいと思います。

### コードと資料

#### 1. PHP,composerの環境構築

PHPのインストール

“`sh
brew install php@7.2
“`

composertのインストール

“`sh
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
“`

これでだけで完結しました。

#### 2. Lavavelでプロジェクト作成

下記のコマンドでLaravelでAPIのもととなるプロジェクトを構築します。

“`sh

composer create-project –prefer-dist laravel/laravel photo_ac_graf
“`

これだけでLaravelのプロジェクトができるので非常に簡

元記事を表示

Mandelbrot ベンチマーク(C, PHP, HHVM, Ruby, Python, PyPy, and Kinx)

# Mandelbrot ベンチマーク

– 対象 … C, PHP, HHVM, Ruby, Python, PyPy, and 我らが Kinx

> PyPy できるようになったので追加してみた。その結果はいかに?!

## はじめに

この記事 [【PHP8】PHPでJITが使えるようになる](https://qiita.com/rana_kualu/items/ba312d2789bd228f887a) でのベンチマークを拝見させていただきまして。

PHP8 に JIT が入るとかで Mandelbrot のベンチマークをしているのですが、は!、これは我らが Kinx 君も `native` メソッドでブイブイ言わせられるやつでは!、との気持ちから試しにベンチマークしてみよう、という趣旨のイベントです。

記事にしたということは、**勝負になった** ということでもあります。というか予想以上。やったね!

ちなみに、Kinx って何?という方は以下をご参照ください。

* 参考
* 最初の動機 … [スクリプト言語 KINX(ご紹介)](https://qi

元記事を表示

【Laravel】@errorディレクティブを使って任意のエラーをメッセージ表示する。

メモとして残します。

基本的にはブレードでは`@input`ディレクティブを使うため、エラーメッセージは自動的に生成されます。
しかしながら、配列入力のN件の入力項目で、0件の場合にエラーとする場合、エラーメッセージ用の要素を生成しなければならないと思います。
そんなときに`@error`ディレクティブが便利でした。
わざわざ、`$errors->get()`でエラーの存在を確認する必要もありませんし、スマートです。

#■やり方
指定した要素のエラーがある場合のみ、ディレクティブ内の処理をします。
また、`@error`ディレクティブ内の`$message`は特別で指定した要素のエラーメッセージが入っています。

“`php
@error(‘attrname’)

@enderror
“`

元記事を表示

【Laravel】バリデーションで任意のフィールドに任意のメッセージを設定する。

メモとして残します。

バリデーションで任意のフィールドに任意のメッセージを設定する方法をメモ。
Laravelのバリデーション便利ですが、たまにくどいエラーメッセージになってしまうことがあるため、
任意のメッセージを設定してあげましょう。
ルールごとに設定できるようです。
今回は、個人的に少しくどいエラーメッセージである`required_if`のメッセージをいじります。

#■やり方
messageメソッドをオーバライドしてあげることで、任意のフィールドに任意のメッセージを設定できる。

“`php

元記事を表示

【Auth0】LaravelでAuth0を使って認証する【Laravel】

Auth0は公式のドキュメントやチュートリアル、Q&Aがとても充実しているのですが、どれも英語で微妙に検索しにくいので自分でメモ代わりに記事を書くことにしました。

今回はLaravelでのJWT形式のアクセストークンの認証のチュートリアルに関してまとめます。
[Auth0公式チュートリアル](https://auth0.com/docs/quickstart/backend/laravel/01-authorization)

# 環境
PHP: 7.2.5
laravel: 7.0
Auth0/login: 6.0

## Auth0の設定

まずはAuth0にフリートライアルで登録して、APIを作成しましょう。
そうしたら`APIs`タブを開き、`CREATE API`から新規Auth0 APIを作成します。

スクリーンショット 2020-06-03 23.48.57.pngPHPの少数演算における切り上げ切捨て問題

http://ollie-creation.co.jp/blog/?p=1

https://gotohayato.com/content/491/

“`
// 小数点下位+1桁 指定での切り捨て処理
$strNum = round($strNum – 0.5 * pow(0.1, $decimalPoint+1), $decimalPoint+1, PHP_ROUND_HALF_UP);
// 小数点下位 指定での切り上げ処理
$strNum = round($strNum + 0.5 * pow(0.1, $decimalPoint), $decimalPoint, PHP_ROUND_HALF_DOWN);
“`

【1.5501】などの小数点下位第三位が0で且つ、第四位が0以上の場合
事前に第四位以下を切り捨てしないと、第三位での切り上げが【1.56】となってしまう。

元記事を表示

変更された項目の差分を知るための PHP の array_diff_assoc の応用小ネタ

### 概要
ユーザがあるフォームからユーザ情報を変更したとする。
「どの項目が変更されたのだろう?」 というのを簡単に知る方法はないかというところで array_diff_assoc を使った小ネタです。

例えばユーザ情報の所属が `開発部` から `プロダクト部` に変更されたとすると、
`所属`の項目が変わったのだな、と知ることができる。

### コード
“`php

$before = [‘ユーザ名’ => ‘yamotuki’, ‘会社名’ => ‘M&Aクラウド’, ‘所属’ => ‘開発部’];
$after = [‘ユーザ名’ => ‘yamotuki’, ‘会社名’ => ‘M&Aクラウド’, ‘所属’ => ‘プロダクト部’];

$changedBeforeList = array_diff_assoc($after, $before);
$changedAfterList = array_diff_assoc($before, $after);
$beforeAndAfterDiff = [];
foreach ($changedBeforeList as

元記事を表示

OTHERカテゴリの最新記事