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

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

Laravel キャッシュクリア&最適化

本番環境にデプロイする際に必ずやっておきたいキャッシュクリア&最適化です。

## キャッシュクリア

“`shell-session
$ composer dump-autoload -o
$ php artisan optimize
“`

## 補足

### composer dump-autoload -o

本番環境では `-o` オプション付き、開発環境では `-o` オプションなしで運用します。
このコマンドは下記ファイルを生成します。

“`
vendor/composer/autoload_classmap.php
vendor/composer/autoload_files.php
vendor/composer/autoload_namespaces.php
vendor/composer/autoload_psr4.php
vendor/composer/autoload_real.php
“`

### optimize

`optimize` は下記のコマンドを実行します。

“`shell-session
$ php artisan confi

元記事を表示

$ git clone で取得したLaravelアプリのローカルサーバの起動に失敗する

# 目的

– 記事名のエラーを解決した話をまとめる

# 補足情報

– 本記事は一年以上前に記載した物が下書きボックスに眠っていた内容である。供養の意味も含めて一応記事にする。

# 問題発生までの経緯

1. GitHubのリモートリポジトリを`$ git clone`コマンドを用いて取得した。
1. .envファイルを作成、自分の環境にあった内容を記載した。
1. Laravelアプリ名ディレクトリで下記コマンドを実行してローカル開発環境用のサーバを起動した。

“`terminal
$ php artisan serve
“`

# 問題

– コマンド`$ php artisan serve`を実行後、下記のエラーが出力された。

“`terminal
php artisan serve
PHP Warning: require(/Users/ookawashun/workspace/work/laravel/calculation_drill_app/vendor/autoload.php): failed to o

元記事を表示

実務未経験者が顧客管理アプリを作ってみた 〜環境構築編その2〜

[実務未経験者が顧客管理アプリを作ってみた 〜環境構築編その1〜]
(https://qiita.com/sakashin10291029/items/c6be42c5b133cd38d81f)

前回は仮想マシンにDockerをインストールするところまで進めた。(一ヶ月前)
今回はDockerComposeをインストールして実際にコンテナを立ち上げていく。
ちなみにDockerComposeとはymlファイルへの記述を基に、複数のコンテナの定義、実行ができる非常に便利なツールである。
#手順
1.DockerComposeをインストールする
2.docker-compose.ymlを作成する
3.Dockerfileを作成する
4.コンテナを起動する

#1.DockerComposeをインストールする
仮想マシン内で以下コマンドを実行する。
DockerCompose公式を参考にする。
https://docs.docker.jp/compose/install.html#linux

“`
#インストール
$sudo curl -L https://github.com/doc

元記事を表示

Laravel初心者に知って欲しいルーティングの見やすい書き方とあれこれ

# ルーティング綺麗に書いた方が見やすくない?

Laravelでいう`routes/web.php`のこと
初学者のコード見てるともう少しすっきり書けるのになー
そもそも使い方があんまり分からないのかな?と思い記事にする事にしました

## そもそもどういう仕組み

![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_293438_2c0af10e-1ee8-79e3-1b8c-53069c92e6ae.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293438/20a668eb-2566-9a74-3385-55a692919df3.png)

`HTTP動詞`

postだったりgetだったりresourceとかその時のHTTP動詞を指定

`URLのパス`

定義した文字にアクセスした時に適用されるルート

`コントローラー名`

app/Http/Controllers/の中で定義したいコントローラーを指定

`メソッド名

元記事を表示

Laravelワカンネ(゚⊿゚)から「完全に理解した()」までステップアップ

# ~~タイトルで釣る~~

![images (1).jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293438/7b87798b-2efa-a907-192b-209806fa1df1.jpeg)

## はじめに

この記事は [Laravel Advent Calendar 2019](https://qiita.com/advent-calendar/2019/laravel) の**24日目の記事**です

## この記事を書こうと思った理由

~~ネタが思いつかなかった~~
Laravelを業務で触れて1年が経とうかというのに未だLaravelの基本的な機能を理解しているか
と言われたら首が引きちぎれる勢いで首を横に振ってしまいます。

始めた当初は、実行の流れ(ライフサイクル)も含めてふぁさーど??さーびすこんてな??だったので、
きっと同じように理解しないまま使ってる(~~または葬られた~~)人もいるだろうと思い書きました。

## そもそもLaravel使うメリットは

シン

元記事を表示

Laravel6でマルチ認証を実装する(UserとAdminの階層を分ける)

# 6.x系の記事があんまり無いのとUserとAdminを階層で分けるやり方も無いので備忘録として書く

> コードだけ見たいんや!!!というせっかちさんはGitHubのリポジトリを用意しているのでどうぞ
[Laravel6-Multi-Login](https://github.com/namizatork/Laravel6-Multi-Login)

## なぜ書いたか

– ~~自分の備忘録のため~~
– マルチ認証の記事は沢山あるけどどれもバージョンが古い(5.1 ~ 5.5とか)
– Userを階層分けしてる記事があんまりない(どれも似てる)
– 6x系の英語記事はあるけど、どれもflg管理だったりいまいち実務よりじゃなかった
– 6.8から$redirectToがRouteServiceProviderの定数になったので、対応した実装をしたかった

## やりたい事

こんな感じでControllerの中で`User`と`Admin`を分けたい(個人的にUserだけむき出しのAuthが好きじゃない)

“`
controllers
   ├── Admin
   │

元記事を表示

PHPでSQSのメッセージの取得と削除をする

SQSのメッセージを取得する部分と、メッセージを削除する部分をAWSのSDK経由で行います。

PHPでLaravelを使っている場合、一般的なJobをQueueする処理などは、LaravelのQueueの機能を使えば実装出来ますが、
メールのBounceなど、Laravelの機能とは別のサービス経由で発生したメッセージを処理する場合は、Laravelの機能を使わずにSQSからのメッセージ取得、削除を書くこともあると思います。

以下にSQSからのメッセージ一覧の取得とメッセージの削除を載せます。

“`php:SqsClient.php

元記事を表示

PHPでarray関数の覚える順を格付けしてみた

PHPを実装する上でarray系の標準関数ってものすごく多いですよね。
自分も何を覚えるべきかわからなかったです。

そこでWEBページやAPI、バッチを作成してきたPHP歴6年のエンジニアが、
PHP公式サイトに書いてある配列関連の関数で、
個人的ここを覚えておけばOKのリストを作ってみました。
あくまで自分の経験測なのでご参考程度に。
https://www.php.net/manual/ja/ref.array.php

以下のような区分けをしています。

– [(★★★★★)いろんなところで使う!覚えておくべき関数](https://qiita.com/ono-soic/items/fa3c49dbc5647b95efda#%E3%81%84%E3%82%8D%E3%82%93%E3%81%AA%E3%81%A8%E3%81%93%E3%82%8D%E3%81%A7%E4%BD%BF%E3%81%86%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%B9%E3%81%8D%E9%96%A2%E6%95%B0)
– [(★★★

元記事を表示

PHP ページにアクセスした時間の秒数で判定

ページにアクセスした時間の秒が

00だった場合は「ジャストタイム!!」
00を除くゾロ目だった場合は「ゾロ目!」
上記以外の場合は「外れ」
という文字と秒を表示するプログラムを作成

“`php





訪問時刻でif

ジャストタイム!!

アクセスした瞬間の秒は00秒でした!!

元記事を表示

複数行ある標準入力の取得方法

オンラインでのプログラミングの問題やスキルチェックに挑戦していたら、標準入力というのに出会い、与えられる値が複数行に跨っている場合、取り出すことが出来なかったので、初心者感丸出しで対策方法をまとめてみます。(理解違いなどありましたら、ご指摘いただけますと幸いです。)

さて、例えば、下記のようなテキストファイルを読み込むプログラムを作るとします。
![スクリーンショット 2020-08-16 17.14.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/75889792-ea31-f2d0-4deb-2e6da7220495.png)

このように複数行に配置された値を取得するには、**while();**(処理を繰り返す)と**fgets();**(ファイルから1行取得する)の組み合わせが有効のようです。

“`php:index.php

元記事を表示

社内 SE のワイと一緒に作る! Laravel & jQuery で目指す,枯れたモダンな RESTful CRUD アプリ(1)ガイダンス編

# 第1回目:ガイダンス編

こんにちは,おじさんです。

変化の速い IT の世界に身を置くと,誰しもが,三年くらいのスパンで,標準的(?)な開発スキルセットが,ガラリと塗り替えられることを痛感していると思います。

PHP 開発におけるデファクトスタンダードとしての地位を確立した Laravel ですが,そこは,諸行無常&盛者必衰な IT 技術の世界。

Laravel が洗練されたフレームワークであることは,論を俟たないとしても,エンジニアとして生きてゆく上での「銀の弾丸」であるかと言えば,そうではありません。

今から三年後の世界では,’Laravel’ という単語の響きに,「懐かしさ」を覚えるエンジニアがたくさんいるかも知れません。

**しなやかに,そして,したたかに,技術と付き合うこころを持ち続けながら,開発者ライフを楽しみたい**ものですね。

## おじさんのこと

おじさんは,今どきのイケてる技術で,ゴリゴリ開発しているエンジニアかと言えば,そうではありません。

イケてる技術への興味は旺盛ですが,社内 SE という職業柄,システムとのお付き合いは,開発業務よりも

元記事を表示

波ダッシュと全角チルダの闇

#正規表現で思うように処理してくれない事件勃発
私が業務で保守運用しているサービスにて特定のデータ反映がうまく行かないとの問い合わせが発生。
該当箇所のソースは以下。

“`
if(preg_match(‘/^[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2} [0-9]{1,2}:[0-9]{2}/’, $d[$val])) :
// 2020/12/24 17:00:00

elseif(preg_match(‘/^[0-9]{2}\-[0-9]{2}\-[0-9]{2}$/’, $d[$val])) :
// 20-24-16

elseif(preg_match(‘/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/’, $d[$val])) :
// 2020-12-24

elseif(preg_match(‘/^[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}$/’, $d[$val])) :
// 2020/12/24

elseif(preg_match(‘/^[0-9]{2}\/

元記事を表示

ららべる勉強

ザンプのインストール
https://reffect.co.jp/laravel/windows-xampp-laravel-install

コンポーザのインストール ララベルをンストールするもの
コンポーザがインストールされたらphp artisan -Vで確認、ララベルがインストールされたフォルダに
あるのでCDするのを忘れずに。

コンポーザでフォームフレームワークも入れておくと便利
composer require “laravelcollective/html”

参考ページ

Mysql

今からでも遅くない! phpMyAdminインストールから使い方まで徹底解説

Apache
https://www.adminweb.jp/apa

元記事を表示

連想配列には.lengthが使えない話

#lengthはオブジェクトには使用できない!!
先日社内での新規プロダクト開発案件にて起きた出来事。

“`

Laravel migrationまわり

migrationファイルを使ってテーブルやカラムを操作したり、seederやfactoryやfakerを使ってレコードを挿入したり、modelをリレーションさせたりします。

## 前提
– composerインストール済み
– Laravelインストール済み
– データベース、ユーザー作成済み
– ユーザーのDB接続情報を.envファイルに記述済み

Laravelのインストールについては、下記の記事を参照してください。
[Laravelのインストール、初期設定、GitHubの使用](https://qiita.com/takeshisakuma/items/44055d362e2f3e8da3d9)

## テーブルの作成
3つのテーブルを作成していきます。

### 作成するテーブルのカラム
学校(schools)テーブル

|id|name|email|created_at|updated_at|
|—|—|—|—|—|
|ID|学校名|メールアドレス|作成日時|更新日時|

クラス(classnames)テーブル

|id|name|created

元記事を表示

「usort」自分のルールでソートする

# usort
[PHP公式サイト](https://www.php.net/manual/ja/function.usort.php)
>usort — ユーザー定義の比較関数を使用して、配列を値でソートする
>usort ( array &$array , callable $value_compare_func ) : bool

# 使い方の例

“`php:rsort.php
$data = [‘Thomas Jefferson’,’Andrew Jackson’,’John Adams’,’George Washington’,’James Monroe’];

usort($data,’usortPre’);

print_r($data); //Array ( [0] => George Washington [1] => John Adams [2] => Thomas Jefferson [3] => James Monroe [4] => Andrew Jackson )

function usortPre($a,$b){
$presidents =

元記事を表示

【PHP+Docker】対話シェルで echo したら Parse error: syntax error, unexpected token “echo”, expecting “;” or “,” in php shell code on Line 2

## Docker の PHP で Parse syntax error `expecting “;” or “,” in php shell`

> Docker で公式の PHP コンテナを対話モードで **`echo ‘hoge’;` ですら “`Parse error`” の構文エラーで正常に動かない**。
>
> “`shell-session:対話モードで正常に動かない
> $ docker run –rm -it php:php7-alpine
> Interactive shell
>
> php > echo ‘hoge’; // ← Parse エラーが出る ↓
>
> Parse error: syntax error, unexpected token “echo”, expecting “;” or “,” in php shell code on line 1
> php >
> php > exit
> $
> “`

[docker PHP Parse error: syntax error, unexpected token

phpで適当にホームページを作ってみる。

# 心温まるイントロダクション

母さん!

「世界中のコンピューターの情報を画面に呼び出せるんだ」「それはすごいわね」
http://www.heartiness.co.jp/colum/c19960307.html

てな感じで1995年からWEBに参加していた私ですがなぜかある時期まで、phpを毛嫌いしていたんですよ。まあ若かったんでしょうね。htmlとプログラムが、ぐちゃぐちゃやないけ!許せる!(東映スパイダーマン)みたいな。みたいな。

んでいい加減いい歳になってきてからようやく抵抗がなくなってきて、なんだー、毛嫌いしてたけどphp便利じゃん、もうちょっと勉強するか。ってなってきたんですね。
そんなときに、急にちょっと、phpちょっとは齧ってますよ、みたいなアピールをしなきゃいけない感じになってですね。ちょっと、制作物をWEBに上げようかな、となったわけです。

# 期間限定無料レンサバを借りるべし。

あくまでも期間限定の制作物掲示が目的ですので、期間限定無料レンタルサーバー「エックスフリー」を利用します。
[無料レンタルサーバー【XFREE(エックスフリー)】](http

PHP printfの使い方や小数点切り上げなど

printfで5桁の数字として表示する

```php


```

小数点を切り上げたり切り捨てたりする

```php





課題

元の値:

Laravel6で開発する際に勉強しておくべきこと②(ルーティングとコントローラー)

#ルーティングとコントローラー
前回、Laravelのページが表示できるまでは行ったので、実際に開発に入っていきたいと思います。
まず、最初のページを設定しているところを見ていきます。

#ルーティング
画面のルーティングは.routes/web.phpで設定しています。

```