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

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

習熟過程の整理

# 習熟過程の整理

##習熟するべき大項目

### プログラマとしての基礎教養

Early exitなどコーディング規約の把握

工数や進捗管理の理解

コンパイラ言語とインタプリタ言語

バブリングとキャプチャリング

検索のレベルと粒度の決定力

技術の検索の為、正確な名称を知っていること

タイピング

思考の段階化、問題に対して仮説の立証と検証、

### ローカルPC環境構築

LinuxなどOSの設定と操作

– bashなどのOS操作用言語の習熟

editer(開発ツール)の最適化(カスタマイズ)

workspaceごとの設定

作業ディレクトリの配下で(xxx.app/).vscodeファイル作成setting.jsonを作成、設定を書き込んで反映する。

– 開発ごとのカスタマイズ(設定)

– 開発効率向上の為,

元記事を表示

PHP while文まとめ

# 目的

– while文の書き方をまとめる

# 書き方の例

– while文は条件式がtrueの場合に無限に当該処理をループ実行する。
– 回数以外の条件に応じた繰り返し処理を実行する。(if文と一緒に使用した場合)
– 下記にwhile文の書き方を記載する。

“`php
変数の初期化;
while (ループ処理の条件){
ループで実行する処理;
変数の更新;
}
“`

# より具体的な例

– 変数`$i`に3の倍数が格納されている時のみ出力する処理を下記に記載する。

“`php
//変数の初期化
$i = 1;

//ループ処理を$iが100になるまで実行する
while ($i <= 100){ //$iを3で割った時のあまりが0になる時 if ($i % 3 == 0){ echo $i; echo "
“;
}
//$iに1を足す(ifの条件に関係なく$iは足される必要があるためif文の外で$iを更新する。)
$i++;
}
“`

元記事を表示

LaravelのupdateOrCreateでUnknown column ‘id’ in ‘where clause’ でエラーが出た

##概要
Laravel5.5を使用していて、UpdateOrCreateという関数を使用した実装を行おうとしたところ
指定していない`id`がNULLになっているとエラーが出てきた。
[Laravel公式ドキュメント](https://readouble.com/laravel/5.5/ja/eloquent.html)

“`
$flight = App\Flight::updateOrCreate(
[‘departure’ => ‘Oakland’, ‘destination’ => ‘San Diego’],
[‘price’ => 99]
);
“`

###結果
`id`以外のプライマリキーを使用する場合、
モデルに`primaryKey = ‘id以外’ `を記入しないと`id`を使ってSQLが叩かれるみたい

元記事を表示

Laravel hasManyThrough メモ

#決済情報テーブル

|id | user_id|決済情報2 |
|—|—|—|
|1 |1 |hoge1 |
|2 |2 |hoge2 |

#中間テーブル(購入した商品と購入者)
|id |アイテム_id | 決済情報_id |
|—|—|—|
|1 |1 |1 |
|2 |1 |2 |
|3 |2 |2 |

#商品テーブル

|id | 商品名 |商品説明 |
|—|—|—|
|1 |huga1 |huga1 |
|2 |huga2 |huga2 |

“`
class Settlement extends Model
{
  
    public function getItems()
    {
        return $this->hasManyThrough(商品::class, 中間::class, ‘決済情報_id’, ‘id’, null, ‘商品_id’);
    }
}

“`

“`
Settlement::with(‘getItems’)->where(‘use

元記事を表示

PHP: fputcsv: delimiter must be a single character エラー

## エラーメッセージ

“`
PHP Notice: fputcsv(): delimiter must be a single character in /work/app/sample.tsv on line 4
“`

## コード

“`php:sample.php

元記事を表示

Laravelについてのノート

PHPを触り始めて一年程経過し、「そろそろフレームワークを使ってみたいな!」と思い、PHPのフレームワークの中でも特に人気の高い**Laravel**を使ってみることにしました。
インストールする前に事前に調べ、まとめたものをノートとしてQiitaに残すことにしました。

#フレームワークとは
多くの場合は「Webアプリケーションフレームワーク」のことを指す。
Webアプリ開発を効率よく且つ迅速に進められるように、必要なモジュールやツールをひとまとめにしたもの。
LaravelはPHPにおけるフレームワークの一種である。

#Laravelにある主な機能
##テンプレートエンジン
「テンプレート」と呼ばれるHTMLのひな形を元にプログラムで加工し、画面に出力するためのライブラリのこと。
これにより、PHPでの開発とHTMLでの開発を分けることができる。
Laravelには「BLADE」というテンプレートエンジンが備わっている。

##データベース
主に以下二つの機能が備わっている。
###O/Rマッピング
オブジェクト指向で作られたプログラムと関連性データベースを繋げる(マッピング

元記事を表示

Apache Aliasのパスの設定で「¥」を使っててリライト機能が動いていなかった件(404エラー解決)

## はじめに
レンタルサーバ環境とmacのxampp環境で動作していたApacheのリライト機能が、windowsのxampp環境でのみ動作しなかった。具体的には404エラーバンバン出てくる。これを抜け出すのに二日もかかってしまったので備忘録として残しておく。

## 環境
win10 64bit
xampp v3.2.4
Apache 2.4.41

## やったこと備忘録
結果はタイトルの通りなんですが。。。原因の詳細のみ知りたい方は飛ばしてください。

最近windowsを使う機会が増えてきたので、xamppで環境構築したのですが、リライト機能だけがどうしても動かなかった。まじでいみわからん。本当にこれ苦しみました。

phpinfoにもちゃんとmod_rewrite読まれてるし、めちゃくちゃ記事サーチしたけど

`「AllowOverride None」になってるからでしょ?
httpd.confちゃんとみなおせよ!
rewriteログだして確認しなさいよ。。。
.htaccess書き方あってる?
`

てきな感じで書かれているものが多かった。

なので、まずはセキュリティ気

元記事を表示

【作成途中】簡易掲示板の作成

# 登録画面
– バリデーション
– 入力値($_POST)をチェックする
– エラーメッセージ用の連想配列を用意
– 入力の手間を減らす
– 入力値($_POST)をエスケープして出力
– 確認画面への遷移
– エラーメッセージ用の連想配列が空だったら実行する
– 入力値($_POST)をセッション変数に格納する
– header関数で確認画面へ遷移する

# 確認画面
– 直に確認画面へアクセスされた場合
– セッション変数が空だったら、登録画面へリダイレクト
– 入力値を出力する
– セッション変数から入力値を出力する(画像の場合はセッション変数から画像のパス名を出力)
– 書き直し
– URLパラメータで書き直しかどうかを判断し、登録画面へ遷移する
– セッション変数の値を$_POSTに戻す

# 画像のアップロード
– formタグ
– enctype属性に`multipart/form-data`を指定
– inputタグのtype属性に`file`を指定
– 画像以外はアップロ

元記事を表示

PHP 連想配列まとめ

# 目的

– PHPの連想配列の書き方をまとめる

# 書き方の例

– 連想配列は若干難しそうに感じるが、通常の配列の値の順番を示す`[0]`などがキーになっただけである。
– 下記に連想配列の書き方の例を記載する。

“`php
$変数A = array(
“キーA” => “入れる値A”,
“キーB” => “入れる値B”,
“キーC” => “入れる値C”
);

//キーAに格納された値Aを出力
echo $変数A[“キーA”];

//キーBに格納された値Bを出力
echo $変数A[“キーB”];

//キーCに格納された内容を更新
$変数A[“キーC”] = “入れる値D”;
“`

元記事を表示

Web開発初心者がLaravelで実務開発するまでの3ヶ月の研修ステップ

# はじめに
弊社、株式会社Re:Buildは現在、沖縄拠点で全社員で7人。エンジニアインターン1人。そのうち正社員でエンジニアが6人いますが、ほぼ全員Web開発初心者の状態で入社しました。
また、大学生インターンや若手Web開発初心者の採用も積極的に行ってきました。採用後は7人という少人数の会社ながらも3ヶ月の研修カリキュラムをみっちり行って頂き、Laravelで実務開発するまでサポートしてきました。実際に昨年の1月にWeb開発初心者で入社した方は3ヶ月の研修を経て、今では設計から開発、Laravel、Vue.jsでのSPAのWebアプリ開発までこなすまで成長してくれています。
これらの話をCTOやスタートアップ経営者の方に話すとけっこう驚かれることが多く、どうやってこの会社規模で研修まで丁寧にやられているんですか?と聞かれるようになってきました。
そこで、今回は全ては書けませんが、全体の流れや研修においての考え方を書ければと思います。
あと、こちらのツイートの反応が少し良かったのもあり、書く

元記事を表示

PHP switch文まとめ

# 目的

– PHPのswitch文の書き方をまとめる

# 書き方の例

– 下記にswitch文の書き方を記載する。

“`php

switch (変数){
case 変数に入っている可能性のある値A:
変数に値Aが入っている時の処理;
brake;
case 変数に入っている可能性のある値B:
変数に値Bが入っている時の処理;
brake;
default:
変数に値Aと値B以外のものが入っていた時の処理;
brake;
}
“`

# より具体的な書き方の例

– 変数`flag`に入っている値で処理を変更したい時の処理を下記に記載する。

“`php
switch ($flag){
case 0:
echo “flagには0が格納されています。”;
break;
case 1:
echo “flagには1が格納されています。”;
break;
default:
echo “flagには0と1以外が格納されています。”
break;
}
“`

元記事を表示

VSCodeに入れておきたい(個人的に)最低限の拡張機能

日頃から周囲に勧めているVSCode。
自分自身のメモ兼、勧めた際に拡張機能をスムーズに探せるようにこれだけは必要だろうというものをまとめました。

## Git
### 1.GitLens
Gitの更新差分が一目でわかります。
一番効率を上げているのではないでしょうか?
### 2.Git History
Git logを視覚化して見られるようになります。
SorceTreeのような表示ができるようになります。
## PHP
以下2つは何も考えずに始めから入れて使用しています。
使わない場合との差がわからないのでノーコメント。
XDebugを忘れずに
### 3.PHP IntelliSense
### 4.PHP Debug
## HTML
### 5.Auto Close Tag
自動的にタグを閉じてくれます。
地味に効率化に貢献。
### 6.Auto Rename Tag
開始タグを編集すると閉じタグも自動で変えてくれます。
「Auto Close Tag」との組み合わせは強力。
### 7.Highlight Matching Tag
開始タグと終了タグをハイライトします。

元記事を表示

「ググれ」って言われてググるな!【初学者べからず集 その1】

某 QA サイトで初学者の質問をかなりの数見ているのですが、初学者がやってはまずいことがなんとなく分かってきたのでまとめてみます。
**私の活動範囲が php に寄っているので他言語では若干の違いがある可能性があります。当てはまらん箇所はごめん^^;**

プログラミング初心者に見てもらいたいですが、コーチする方にも参考になると思いますので、サクッと読んでくださいw

# 1.「ググれ」って言われてググるな!

まずはタイトルのやつから。
「最近の若いモノ」なら一度は「ググってから質問しに来い!」って先輩に言われたことがあると思います。が、プログラミング初学者の場合ググった後に再度質問に行っても同じことを言われます。理不尽だわw

## ググっても正解は出てこない

本質的には「検索語句の選定」と「結果ページの評価」に問題があるので根深いですが、お手軽(?)な解決手段だけ提示します。

### プログラミングで困ったらまず公式サイトを探せ

言語学習において最も基本となるのは「用語の定義」の体系的な知識です。これがないと、有識者と会話できません。当然ですが、適切な用語で検索できなければ

元記事を表示

プログラミングをかじったからには何らかの制作物を作りたい#3 ~作り直し編、完成したもの~

#説明
このエントリーは初心者がとりあえず何かを作りたいと考え、それのみを理由にして記述しているものの3です。そのため、技術的な誤りや勘違いが多分に含まれている可能性があります。ご了承くださいませ。もしよろしければご指摘やご教示を頂けましたら幸いです。

#前回のあらすじ
プログラミングをかじったからには何らかの制作物を作りたい# 2
https://qiita.com/tatsuki1112/items/bf363ff7e0a1678eebd6
じゃんけん自体を書いたり、Bootstrapでページを一応レスポンシブ化した。

#作り直しとは
じつはこのじゃんけんサイトは最初PythonのFlaskで作成していた。しかしなんとなくやる気が起きずにだいぶ放置していた。その後、PHP、Laravelを使用している会社でインターンを行うこととなったので、勉強をかねてLaravelで作成しようと思い立ち作り直して再開した。

#できたもの
このエントリーを行ったときにはこのじゃんけんサイトもうすでに完成していて、やったことの整理という意味で記述しています。

元記事を表示

風水プログラミング

今日は趣向を変えて風水のプログラミングをしてみます。

風水?オカルト?
「そんなの風水師が適当なこと言ってるんじゃないの?」
と思う人もいるかもしれません。

いいえ、そんなことはありません。
風水、九星気学、四柱推命は計算のアルゴリズムがしっかりと確立していて、入力が同じならば出力は同じになるという特徴を持っています。

成立した経緯はわかりませんが、昔の中国の人がたくさんの運命を見てきて統計的な法則を見つけたけどわかりにくいから陰陽五行にあてはめてみたとかそういう類じゃないかと思います。

例えば、風水ならば、竣工年と建物の向きが決まれば、結果は一意に定まります。
四柱推命も誕生の年月日と時間で結果は一意に決まります。

**入力が決まれば出力も一意に決まる** っていいですね。

そのアルゴリズムはちゃんとした本を読めば書いてあります。陰陽五行の話とかいろいろ出てくるのですが、結局のところは、

– 足し算や引き算をする
– テーブルを引く
– 割り算して余りを求める
– if文で分類して、パターンを減らす

ということを繰り返しています。 

ロジカルで、まさにプログ

元記事を表示

PHP7.4をCentOS8にインストール

#はじめに
お正月を使って自宅色々兼用サーバを役割ごとに仮想化させました。
仮想化ベースはCentOS8/KVMで、本稼働VM部分とは別に検証し放題のテストVM環境も作ったので今後色々遊べそうです。
サーバ構築部分はいつか別途書こうと思います。
ちなみに現状VM4インスタンス同時起動でも、ほとんどの時間がアイドル状態なので35w程度の消費電力です。

んで、PHP7.4.1が安定版になってるのでインストール用メモ。
例のごとくRemi、epelリポジトリからダウンロードします。

#インストール
###リポジトリのインストール

“`bash
# epel
$ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# -略-
“`

“`bash
# remi
$ sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# -略-
“`

###PHP7.4

元記事を表示

Laravelでよく使うコマンド、記法

# 新規プロジェクト作成

“`
$ laravel new (アプリ名)
“`

または

“`
$ composer create-project laravel/laravel (アプリ名) –prefer-dist
“`

# artisanコマンド

### コントローラの作成
“`
$ php artisan make:controller (コントローラ名)
“`

### マイグレーションの作成
“`
$ php artisan make:migration create_(テーブル名)_table
“`

### モデルの作成
“`
$ php artisan make:model (モデル名)
“`

### シーダーの作成
“`
$ php artisan make:seeder (テーブル名)TableSeeder
“`

### マイグレーションとシーダーの反映
“`
$ php artisan migrate –seed
“`

### データベースのリフレッシュ
“`
$ php artisan migrate:reset

元記事を表示

Uncaught Error: Call to undefined function~が出た時は

#前回のあらすじ
アンケートシステム作ってるなう
・タグでいたずらされないようにしてた。
#今日やったこと(ハイライト)
・XAMPPでMySQLのDBを構築した
・DBにアンケートデータが自動で保存されるよう頑張った
(今回の教科書『いきなりはじめるPHP ワクワク・ドキドキの入門教室』)
#困ったこと
・Uncaught Error: Call to undefined function mb_internal_encording()~~って名前のエラーが出た
#原因
mb_internal_enco「 **r** 」ding スペルミスってた!!
mb_internal_encoding  直した!!やったね!!
#感想
自動保存の機能を追加するためのソースを書いてる上で、文字列の連結を理解するのが難しかった。てことで、明日以降の私に丸投げした。

#次回の目標
アンケートシステムをもっと便利にするよう学習していくぞい

元記事を表示

Atom の PHP 補完を vim-lsp で使う

Vim で PHP を書くときは [vim-lsp](https://github.com/prabirshrestha/vim-lsp) で Intelephense を使っているのですが、プロプライエタリなソフトウェアなのでサーバサイドのコードが公開されていません。[Intelephense のウェブサイト](https://intelephense.com/)はあまり親切ではなく、初めてインストールしたときは正しく動かせているのかよく分からなかった事を覚えています。
そのため OSS の PHP LSP を探していたところ [Serenata](https://serenata.gitlab.io/) というソフトウェアを見つけました。

Serenata は Atom エディタのプラグインとして公開されていたようです。サーバ型の Serenata 本体と、Atom プラグインの [php-ide-serenata](https://atom.io/packages/php-ide-serenata) の2つで構成されています。バージョン4までは Atom エディタ用ですがバージ

元記事を表示

Laravelで簡単なメモアプリを作る(3)~データの更新と削除~

# はじめに
[Laravel](http://laravel.jp/)とは、Webに特化したPHPフレームワーク。セキュリティ対策(CSRF対策など)もこれでできます。MVCアーキテクチャを採用しています。今回は、データの更新と削除をしていきたいと思います。

[Laravelで簡単なメモアプリを作る(1)~Viewの作成と表示~](https://qiita.com/Alesion30/items/95222f62904ef46f6f45)
[Laravelで簡単なメモアプリを作る(2)~データの取得と保存~](https://qiita.com/Alesion30/items/97c3bd16c4e20d4bdb72)

# 今回の目標物
スクリーンショット 2019-12-31 11.25.14.png

元記事を表示

OTHERカテゴリの最新記事