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

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

PHPのIterable型を使ってみる

# TL;DR
– PHPが用意してる型の1つの**Iterable型**に関する内容
– 特に、array型を受け取る前提、かつ、型に厳格さを求めるfunctionなどの場合、**Iterable型**での定義は最適な実装方法の1つではないかと感じる

# 前提
– 実行環境
– **PHP 7.1.32**

## 注意
>Iterable は PHP 7.1 で導入された疑似型です。array、あるいは Traversable インターフェイスを実装したオブジェクトを 許容します。これらの型は、いずれも foreach で繰り返し可能であり、また、 ジェネレータ 内で yield from できます。

引用元:https://www.php.net/manual/ja/language.types.iterable.php

上記に記載されているように、公式ドキュメントには、**Traversable インターフェイスを実装したオブジェクト**も許容するとあるが、実際のユースケースとして、arrayの方が頻度は多いと判断したため、arrayを主に利用したサンプルコードと

元記事を表示

Laradocを使ってLaravel6の開発環境をインストールする

##はじめに
こちらの記事はTechpitに販売されている教材を進めるにあたって、教材を参考(ほぼ丸写し)にさせてもらって作成しています。
参考箇所はプレビュー部分なので、誰でも見ることができます。
URLも貼っておきます → [Laravelで飲食店検索LINE Botを作ろう!](https://www.techpit.jp/p/laravel-line-bot)
開発者はコチラの方です → やんばるさん([@shonansurvivors](https://twitter.com/shonansurvivors))

##前提
Dockerをインストールしていること。
今回は略しますが、開発者のプレビューでもインストールの方法を丁寧に解説されていますので、よければご覧ください。

#ユーザライブラリフォルダの直下にフォルダを作成
今回はユーザライブラリフォルダの直下にlaravel-projectフォルダを作成します。
下記のコマンドを叩けばユーザライブラリフォルダの直下にlaravel-projectフォルダを作成できます。
さらにlaravel-projectフォルダに移動。

元記事を表示

今後について

ども。久々です。

突然ですがサブカルチャー特化型のSNSを開発します。

システムは既存のオープンソースプラットフォームを利用しますので開発期間はあまり長くはないと思う。というか時間が取れない。

なぜなら今年大学受験だから………だけでなくまともにネットができるのが土日しかない。

それでもやりたい理由はまた今度…

そんでまず手始めにVPSサーバーを契約して必要なモジュールは入れた。

基本的なシステム構成はapacheをbuntu 18.04LTSで回すというごく単純です。

何が問題なのかというと低スペックサーバーでもいかに安定な処理ができるかです!!

ということでRubyとかも検討したのですが比較的重めのシステムはいかんかな〜と思ったんで結局php7.3にしました。(7.4にしなかった理由は単純に安定性重視だから)

PHPってサーバーサイドの言語だけどhtmlの静的なページはできるだけクライアントで処理していただく…という魂胆です。

また気が向いたら開発理由とか今後の計画とか書きますー

元記事を表示

【PHP】Qiita 週間いいね数ランキング【自動更新】

# 他のタグ

– [Python](https://qiita.com/kou_pg_0131/items/9d7f2ffeafb36cf59a77)
– [JavaScript](https://qiita.com/kou_pg_0131/items/eaa7ac5b62a0a723edbb)
– [AWS](https://qiita.com/kou_pg_0131/items/e24b6279326a462d456c)
– [Ruby](https://qiita.com/kou_pg_0131/items/72c3d2e896bdc3e1a6b3)
– [Rails](https://qiita.com/kou_pg_0131/items/93b9e7f7d143e9ce650e)
– [Docker](https://qiita.com/kou_pg_0131/items/ae11fca7d2eba445b037)
– [Vue.js](https://qiita.com/kou_pg_0131/items/2774e02c6eea5c830d99)
– [PHP](htt

元記事を表示

【PHP】PHPの超基礎をここに(パート1)

#PHPの基礎をここに

###昔かじったPHPを完全に忘却したので復習を兼ねてPHPの超基礎

PHPはHTMLの中にぶっこむことができる

“`PHP





“`
※メモ※ファイルの最後がPHPのプログラムで終わるときは?>は省略可!

##コメントアウト
“`PHP






“`

##文字列の表示
文字列出力の際は”echo”を使う
文字は「’」か「”」で囲む必要がある

“`PHP

“`

##変数
変数とは、、、一時的に値を保存する箱?的な存在
※$を頭につけて半角英数と「_」を使用して名前をつける
※変数名の頭に数字は使用不可
※変数には「=」を使って値を入れる
※値を入れることを「代入」という

“`PH

元記事を表示

phper用 vscodeでダブルクリックで、$を含んで変数を選択したい

環境 mac

~/Library/Application Support/Code/User/settings.json
を開いて次を追記する。

“`
“editor.wordSeparators”: “`~!@#%^&*()-=+[{]}\\|;:’\”,.<>/?”,
“`

もしくは、「command + ,」 でsettingを開いて窓に「wordSeparators」と入れて検索し出てきた設定から”$”を抜く。
設定はリセットできるので、うまくやろう。

参考
[Make Visual Studio Code to correctly select PHP variables on double\-click \| Igor Kromin](https://www.igorkromin.net/index.php/2018/04/12/make-visual-studio-code-to-correctly-select-php-variables-on-double-click/)

元記事を表示

PHPでお問い合わせフォームを作る その2 テンプレートを使ってみる

#PHPでテンプレートを使ってみよう
[前回の記事](https://qiita.com/hotate_chan/items/b8ac6b270eac50b0b8e2)で、最低限のコードでお問い合わせフォームを作ってみました。

+ 1 入力画面 データを入力させる
* 2 確認画面 データを受け取り、受け取ったデータを表示する
– 3 完了画面 メールを送信して、ありがとうメッセージを表示する

という流れでした。
データの引き渡しをやってみた、というところです。

で、今回は前回の記事に書いていた__やっておいた方が良い事__のうち、テンプレートの使用をやってみたいと思います。

#前提
今回もフレームワークは使いません。
なので、厳密な意味でのテンプレートエンジンは使用しません。
PHPファイルとhtmlを書いたファイルを分離することを目的とします。
では、作っていきます。

##構成
“`
index.html // 入力画面です
confirm.php // index.htmlで入力されたデータを受け取ります
confirm.html //

元記事を表示

PHP/Laravelで初の新規開発を行ったので利用したライブラリや概念などまとめてみる

# 概要

独学でちょい勉強して未経験エンジニアとしてスタートで、まだ働き始めて1年経たないですが、初めて新規での開発(バックエンド部分メイン)を担当したのでその感想として、利用したライブラリや概念などを紹介したいと思います。
1ヶ月ちょっととかで大体終わらせる感じだったのであまりライブラリ選定であったり設計にかける時間も
取れない中だったのですが、少しでも参考になればと思います。

# Formatなど記述や構造で注意したとこ

## ディレクトリ構造

並列でポンポンフォルダ置くことは避けました。
特に名前が2単語3単語のファイルが出てくるときには、ディレクトリでカテゴリ作って
綺麗にできるように工夫しています。特にモデルをlaravel内でのフォルダ名からの
テーブル名識別に頼らずに積極的にリレーション系列はまとめて下層においてわかりやすくしています。
例えばusersテーブルに対する、user_prefilesテーブルだったら

Models—-User.php
|
|-User—-Profile.php

作って

元記事を表示

【 laravel】ER図 からCRUD自動生成ツール。テストデータ生成も追加!【Laravel DB.com 】

#Laravel DB.com
**「 テストデータ登録 」** までCODEを書かずに作成可能なツールにアップデートされました。

###私の開発環境

– Laravel5.5/PHP7.2.1/MySQL5.6.38 (Mac: Chromeで確認)


####LaravelDB.com 操作解説ページはこちらです。
**[【 Laravel 】CRUD『 表示・登録・更新・削除 』機能をCODEを書かず自動作成](https://qiita.com/daisu_yamazaki/items/3755467b39ef158b81a3)**
https://qiita.com/daisu_yamazaki/items/3755467b39ef158b81a3

#### アップデート内容
###### faker自動生成(テストデータ生成処理)

**注意点**:テーブル作成後 → テストデータ投入 の順でコマンド打ってください。
seeds_と_views.jpganyenv下のphpenvを使ってPHPをインストールしてみた

Homebrewでインストールしたanyenvに導入されたphpenvを使ってPHPをインストールしていきます。
割とすんなりと行かなかったので備忘録。
anyenvとphpenvは導入している前提となります。

環境
macOS : Catalina 10.15.2 (zsh)
phpenv : v0.9.0-rc.1
入れるPHP : 7.4.1

##早速インストール
コンソール上でコマンドを打ちphpenvでPHPのインストールを試みました。

“`
phpenv install 7.4.1
“`

するとエラーが。

“`
No package ‘krb5-gssapi’ found
No package ‘krb5’ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables KERBE

元記事を表示

小中学生向けのプログラミング言語4つまとめ

最近は、小学生からプログラミングを始める時代になってきているそうです。
物事を考える力がつくから~ とかで、義務教育に入るそうですね。
そんな小学生・中学生の人におすすめなプログラミング言語)を紹介します。
# Scratch
早速言語じゃないやん!ってね。
サイトはこちら:https://scratch.mit.edu/

GUIで、プログラミングをできるサイトです。
ブロックをつなげて、キャラクターを動かしたりできます。

## 特徴

他のものと違い、コードを打たないで、ブロックをつなげて作品を作ります。
そのため、始めやすいですが、他の言語に移るのは大変です。

私はあまり好きではありません。

# JavaScript

一番おすすめです。

3日くらい勉強サイトを見ていれば、(若いうちは)すぐ頭に入ってくるくらい単純な言語です。

## 特徴

動かすのが簡単です。

Chromeを使っているなら、「右クリック→検証」か「F12」を押すとデバッグツール が出てきます。
その、「Console」と書いてあるところにコードを入力すると動かせます。

Googleで、「使っている

元記事を表示

CentOS 7にPHP 7.3をインストール(IUS Community Project)

# はじめに

IUS Community Projectを利用してCentOS7にPHP7.3をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Usage – IUS](https://ius.io/usage)

## サポート

本手法で導入した場合、[PHP: Supported Versions](https://www.php.net/supported-versions.php)/[PHP: Unsupported Branches](https://www.php.net/eol.php)より、2021-12-06がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

“`shell-session
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

元記事を表示

CentOS 7にPHP 7.3をインストール(SCL)

# はじめに

Software Collection(SCL)を利用してCentOS7にPHP7.3をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Quick Start — Software Collections] (https://www.softwarecollections.org/en/docs/)

## サポート

本手法で導入した場合、[Red Hat Software Collections Product Life Cycle – Red Hat Customer Portal](https://access.redhat.com/support/policy/updates/rhscl)より、2021-12がEOLだと思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### インストール

“`shell-session
# cat /etc/r

元記事を表示

プログラミング入門メモ

# プログラミング作成から実行までの流れ
* コンパイラ系言語
プログラムをコンパイラに渡してコンパイルしてもらう。全行一発で翻訳するため早い。しかし、タイポなどが実行までに分からないデメリットがある。

* インタプリタ系言語
プログラムをインタプリタを通して実行する。一行ずつ機械語へ翻訳するため実行速度が遅い。しかし、コーディング中にタイポがわかるメリットがある。

# PHP
以下の特徴がある。
* HTML埋め込み型のプログラミング言語
* サーバサイドスクリプト言語
* OSL
* 数多くの機能が装備されている

## HTML埋め込み型のプログラミング言語とは?
PHPはHTMLの文書の中に部分的に埋め込んで記述する。動的に表示を変更することができるため、Webアプリケーションの作成に向いていると思われる。

## サーバサイドスクリプト言語
PHPはウェブサーバ側で動くためこのように呼ばれる。ウェブサーバはapache

### クライアントサイド言語もあるよ
主にJavaScriptがそうです。Webページでの入力値をチェックしたりします。

## オープンソース

元記事を表示

Moodle 3.8 マニュアル – OPcache

# OPcache

訳者注:この記事は PHP5 および Moodle2 の記述もありますので、そこのところは参考にとどめてください。

標準 OPcache extension は強く推奨されます。Moodle 2.6 から、それは PHP 開発者により唯一公式にサポートされているものです。利点はパフォーマンスの向上と圧倒的に少ないメモリ使用率です。しかしながら、opcode キャッシュ extension はsuPHP(デフォルト WHM 上の / cPanel Linux サーバー) などのある共通のタイプの高セキュリティ PHP ハンドラーを使用するように設定されたサーバと互換性がありません。

![Opcache_error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/87bc85e5-5d07-181b-7b74-be117662c2f6.png)

内容

[1 インストール](#1-インストール)
[2 設定](#2-設定)
[3 Opcache 管理プラグイン](#3

元記事を表示

外為で勝つために その5 ~ Laravel 編

前回「[外為で勝つために その4 ~ LINE 通知編](https://qiita.com/Kazuya_Murakami/items/6dce328bd988bfcafd98)」の続きです。

ご無沙汰してます。
ポータルサイトを作るための材料を用意したり、NISA で株の買い付けしたりしてました。
今年もどうぞよろしくお願いします。

ポータルサイトを作るにあたり、
チャートなどを表示するために、データベースに接続する必要があります。

データベース接続といえば PHP ですが
ここはオシャレに Laravel フレームワークを使いたいと思います。
PHP だけでも構築できますが、勉強も兼ねてということで。

## PHP バージョン確認
早速問題になるのが PHP のバージョンです。
今回導入する Laravel は 6.7.0 で、土台として PHP 7.2 以上が必要なのだそう。

Raspberry Pi の標準的なインストール方法では PHP 7.0.33 までしか入りません。

“`
$ php -v
PHP 7.0.33-0+deb9u6 (cli) (built

元記事を表示

PHPStormのTemplateを設定してdeclare(strict_types=1)を常に設定する

# PHPStormのTemplateを設定してdeclare(strict_types=1)を常に設定する

PHP7から`declare(strict_types=1)`が導入され、設定している場合は暗黙的な型変換が行われなくなり、より厳密にタイプヒンティングをチェックするようにできます。

しかし`declare(strict_types=1)`はファイル単位でしか効力が無いため、常にファイルの冒頭に書かなければいけません。

これを矯正するためにPHPStormに設定を追加します。

スクリーンショット 2020-01-24 18.38.47.png

PHPStormのCode Templatesを利用します。

Preferences > Editor > File and Code Templates

元記事を表示

PHP の array_reduce 関数 分かりやいサンプル

“`php

array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) : mixed
“`

array_reduce() は、配列 array の各要素に callback 関数を繰り返し適用し、 配列を一つの値に減らします。

例:

“`php


‘;
return $carry;
}

$a = array(1, 2, 3, 4, 5);

var_dump(array_reduce($a, ‘sum’, 10));

“`

結果

int(10) int(1)
int(11) int(2)
int(13) int(3)
int(16) int(4)
int(20) int(5)
int(25)

元記事を表示

Laravelでトランザクションをネストせずに新しいトランザクションを切る

毎度同じことをやろうと思った時にどうやればいいか忘れてしまうので備忘も兼ねて

# はじめに
Laravelでは以下のコードのようにするとトランザクションをネストしてSAVEPOINTを作成するため、やんごとなき事情で新しいトランザクションを切りたいなーと思ってもうまくいきません。
(ID発番が連番ではない場合に別テーブルでID発番を管理しトランザクションを分けることでロックする時間を短くするとか)

“`php
DB::beginTransaction();
{
DB::beginTransaction();
Animal::create([‘name’ => ‘ぺんぎんさん’]);
DB::commit();
}
DB::rollBack(); // ぺんぎんさんの挿入もロールバックされる!
“`

SAVEPOINTってなんだ!って方は以下の記事が非常にわかりやすかったです。
●トランザクションのネストの使い方まとめた(初心者向け)
https://qiita.com/_natsu_no_yuki

元記事を表示

静的メソッドと動的メソッドの違い

自分なりのメモです。
#ずっと前から気になってた
selfと$thisの違いってなに
#ざっくりいうと
そのクラスのインスタンスが持つプロパティがメソッドの結果に
・影響を受けないのが静的メソッド
・影響を受けるのが動的メソッド
#もっとわかりやすい参考
[【PHP】静的と動的メソッドとは](http://fresh-engineer.hatenablog.com/entry/2018/08/23/031829)

元記事を表示

OTHERカテゴリの最新記事