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

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

Laravelでログ出力を行う

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

# Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpに下記を追記
`use Illuminate\Support\Facades\Log;`

(2) /sample/app/Http/Controllers/SampleController.phpにlogメソッドを追記

“`
public function log(Request $request)
{
Log::emergency(‘ログサンプル’, [‘memo’ => ‘sample1’]);
Log::a

元記事を表示

Laravel 既存テーブルにカラムを追加する時のマイグレーションファイルの作成方法

# 目的

– 実施方法を毎回検索しているので簡単にまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いて導入 |

# 実施例

– 下記に

元記事を表示

怠惰な大学生が楽単サイト作ったら2万アクセスきた

初投稿です。

#はじめに
大学生が求めがちな楽単。サークルや部活に所属しているとその情報は手に入れやすいですが、そういったところに所属していない人にはあまりその情報は回ってこないものです。さらに今年の新入生には例のあのウイルスの影響で授業の情報とか入ってきません。この状況では学生によって不利が生まれると思ったので授業のクチコミサイトを作りました。
実際はプログラミング初心者が最初に作りがちな典型的な掲示板です。しかし、思いの外需要があり、 ~~いや、本当は需要あるとわかってた。~~ 2万アクセスを得ました。
これを観ている方の中で大学生の方がおりましたらコピペして作ってみてはいかがでしょうか。

#リンク
https://ishiike.matrix.jp

#開発環境
macOS Catalina (10.15.4)
Visual Studio Code (1.35.1)
PHP (7.3.16)

#サイトの構成
![ishiike.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/415239/48

元記事を表示

MacでのLaravel6の環境構築でエラーが起こった件

# Laravelのインストールコマンドでエラーが起こった
Composerの準備を[こちらの記事](https://qiita.com/Kohei1996/items/c6f493315b09bb4621e5)の手順で完了した後、
下記のLaravelのインストールをコマンドを実行。

“`
$ composer global require laravel/installer
“`
すると、下記のエラーが発生しました。

“`
Your requirements could not be resolved to an installable set of packages.

Problem 1
– laravel/installer v3.0.0 requires ext-zip * -> it is missing from your system. Install or enable PHP’s zip extension.
– laravel/installer v3.0.1 requires ext-zip * -> it is missing

元記事を表示

MacでのLaravel6の環境構築の手順

# 目的
– 学習の記録のため。
– 環境構築で少し苦戦したため。

# 環境構築の手順
1. PHPのパッケージ管理プログラム「Composer」のインストール
2. Laravelをインストールする(ここで少し苦戦した)
3. プロジェクトを作成する

## PHPのパッケージ管理プログラム「Composer」のインストール
Laraveではプログラミングをダウンロードしてインストールするのではなく
PHPのパッケージ管理プログラム「Composer」というものを利用する。

以下のリンクからcomposerのファイルを直接ダウンロードして配置する。
[https://getcomposer.org/download/](https://getcomposer.org/download/)

Latest Snapshot をクリックすると
「ダウンロード」フォルダに「composer.phar」というファイルがダウンロードされる。

スクリーンショット 2020-05-15 16.07.25.jpgコードから読み解くautoloadの仕組み ~第一層 大雑把にautoloaderの仕組みを理解しよう~

#初めに
 皆さんcomposerから利用できる“autoload“はご存じでしょうか?PHPのFWであるLaravelなどを使用される方の多くは使用されたことがあるかと思います。自分が“autoload“と出会ったのはLaravelを触れたあたりで、初めて見たときは、
「いちいち“require“しなくてもほかのファイルの機能が使えるのは便利だな~。」
と思っていました。そして使っていくうちに、
「自分が勝手に追加したファイルもちゃんと読み込んでくれている!怖っ!!(謎の恐怖)」
と思うようになり、だんだんその恐怖心が強まってきたのである日気が済むまで“autoload“の仕組みを調べました。そして調べた内容を自分のうちにとどめておいても仕方ないし、共有することで自分の考えがよりまとまったり、指摘による考えの修正が起こるかもしれないと思ったのでここへ書いてみました。
 もし“autoload“の仕組みに興味があったり、自分と同じような恐怖感に覚えがあれば見てみてください。

#この記事の流れ
“autoload“の仕組みはこの記事を含めて3回に分けて紹介して

元記事を表示

[PHP] Composer のユーザーコマンドを対話式で実行したい(Scripts, TTY and Interactive Shell)

> `composer` の `scripts` 設定で、`composer dev` と打ったら PHP の Docker コンテナを起動して触りたい。
> しかし、`Interactive shell` と表示され終了してしまう。Docker に限らず、他の対話式のシェル・スクリプトでも同じ。

[「composer ユーザーコマンド 対話式 実行 tty interactive shell」でググって](https://www.google.com/search?q=site:qiita.com+composer+%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89+%E5%AF%BE%E8%A9%B1%E5%BC%8F+%E5%AE%9F%E8%A1%8C+tty+interactive+shell&tbs=qdr:y)もドンピシャの Qiita 記事が出てこなかったので、自分のググラビリティとして。

## TL; DR

> `[コマンド] < /dev/tty` で `tty` を

元記事を表示

Laravel tinker で Faker を試す方法

# tinkerとは

Laravel では `php artisan tinker` というコマンドを実行すると、
Laravel の機能を試せる REPL が起動します。
REPL (Read-Eval-Print Loop) は、入力・評価・出力のループのことです。
PHP や Laravelの機能を対話的に実行できる便利機能です。

# Fakerとは

Laravelに標準搭載されているダミーデータ生成ライブラリです。
メールアドレスや日付、電話番号などのダミーデータをお手軽に作れます。

# tinker で Faker を使用する

“`shell-session
$ php artisan tinker
>>> use Faker\Factory as Faker
>>> $faker = Faker::create(‘ja_JP’)

>>> $faker->email
=> “itakahashi@yahoo.co.jp”

>>> $faker->emoji
=> “?”

>>> $faker->imageUrl
=> “https://lorempixel.

元記事を表示

Laravelで多言語処理を行う

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

# メッセージファイル作成
(1) /sample/resources/lang/en/messages.phpを作成

“`en/messages.php
‘sample message’
];
“`

(2) /sample/resources/lang/jaフォルダを作成
(3) /sample/resources/lang/ja/messages.phpを作成

“`ja/messages.php
‘サンプルメッセージ’
];
“`

# Controllerにメソ

元記事を表示

【Laravel】artisanコマンドで作成するファイルと手動で作成していいファイルのまとめ

# はじめに
初Qiitaです。皆さん、Laravel使ってますか?

Webアプリを開発する時に、不慣れだとどのファイルがコマンドで作成すべきで、
どのファイルが手動で作っても大丈夫というのを確認しつつ進めたりして、
手間取ってしまいませんか?

Laravel初心者の私がちょうどそんな状態で、
こういう切り口で説明してくれるページがあるといいなぁ、と思い。
探したんですが見つからなかったので、今回は自分でまとめてみたいと思います。

# artisanコマンドで作るファイル
* マイグレーションファイル (2020_05_XX_XXXXXX_create_hoge_table.php)
* コントローラーファイル (HogeController.php)

## マイグレーションファイル

DBにテーブルを追加(モデルを追加)する時に作成します。

hogeがモデル名です。

“`
php artisan make:model hoge –migration
“`

/database/migrations/内にマイグレーションファイルができるので編集します。
終わったらマイ

元記事を表示

『HTTP ERROR 500』が出た時の対処法(さくらインターネット)

**WordPressをインストール**しようとした時に・・・
![このページは動作していません.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593665/826d6a49-c51e-9537-a071-d8b0f65a7562.jpeg)
こいつで時間を浪費したので僕が試した解決策をご紹介します。

###やること
さくらのサーバーにアクセスして、PHP設定の編集→php.ini設定ファイルの編集に「**error_reporting 8191**」と入力だけ。
![c9087e46604c619a0013ad4b8fba8d9a-550×489.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593665/7c935b6b-eab1-392f-453d-f5d4fab1359b.png)
(めんどくさいと思ってもやらないとかいけつできない)

そして再度アクセスすると・・・
**エラー文が表示されている**のでそ

元記事を表示

Laravelでプロジェクトの作成フロー

# 新規プロジェクト

“`:ターミナル
# バージョン指定なし (最新版をインストール, 初期値でmysqlを利用する)
$ composer create-project –prefer-dist laravel/laravel プロジェクト名

# バージョン指定あり (初期値でmysqlを利用する)
$ composer create-project –prefer-dist “laravel/laravel=5.5.*” sampleproject

#書き方はいろいろ
$ composer create-project laravel/laravel sampleproject –prefer-dist “6.0.*”
“`
#初期設定
## タイムゾーンを日本に変更

タイムゾーンの変更

“`php:config/app.php

‘timezone’ => ‘UTC’,
#UTCをAsia/Tokyoに変更
‘timezone’ => ‘Asia/Tokyo’,
“`

## 言語を日本に変更

“`php:config/app.php

‘loca

元記事を表示

LaravelでDatabaseTransactionsを利用してDBにアクセスするテストを高速に実行する。

# 概要

タイトルでほぼ終わってる感がありますが、`DatabaseTransactions`トレイトを利用すると、DBへの書き込みテストを高速に行うことができます。

# 説明
DBに対するテストをする場合に`RefreshDatabase`を利用する例をよく見ますが、
RefreshDatabaseは内部的に`php artisan migrate:fresh`が行われており、データベースの作り直しから始まるので、Migrationが増えてくるとかなり時間が掛かるようになってきます。

`DatabaseTransactions`を利用するとテストのsetup時点でbeginTransactionして、tearDown時にrollbackしてくれるので、データベースを作り直すことが無く、高速に実行できます。

# デメリットは?
データベースを作り直すわけではないので、完全に実行前に戻るわけではありません。
例えばautoIncrementなidを持つtableなどに対してテストを行った場合は、たとえrollbackしても自動採番の数字は戻りません。そこら辺を理解した上で利用でき

元記事を表示

PHP – array_pushで躓いたこと

#環境
ARM(といってもIntel SoC)
Linux(intel SoC向けディストリビューションPoky)
サーバはlighttpd
PHPバージョンは5.6.38
#何が問題だったか
@rana_kualu 様からスッキリ回答いただきました!
私は一体何をみて、勘違いをしていたのでしょう。。。
PHP 4.x以降から可能だと思っていました。

**末尾コードのカンマは、PHP7.3以降です。**

ローカルでApacheとか最新のサーバを立てて、うまく動いて、
いざ組み込みとなった時に、PHPのバージョン全然古いじゃない、パターンでした。

##早速本題
ajaxからPHPをPOSTしてデータをやり取りしていました。
以下のコードではエラーが出てしまい、POSTデータが取れませんでした。

“`php:NG_code
$arr = array();
:
:
array_push($arr, $_POST[‘data1’], $_POST[‘data2’], $_POST[‘data3’], );
“`

エラー内容は、鍵括弧の終わり「 )」がダメだよのエラー

##PH

元記事を表示

PHP – Lighttpdでのファイルのアップロードサイズ変更

# はじめに
PHPはPHPでもphp-cgiを使用した時のメモ

Apache向けが多いので**Lighttpd**向けに
組み込みLinuxで軽量・簡単にWEBアプリケーションを作る人の選択肢が多いと思われます。
スタンドアロンな製品に簡易操作メニューを作りたい場合とか

## 調べた時の一生忘れていけない覚書
※ 次の製品を作るころには忘れてる、ので書いておく

`・lighttpdでは.htaccessは使えない`
`・lighttpd.confではphp.iniで設定する内容を記述できない`

# 環境・条件
事前にLighttpdでPHP(php-cgi)が動いていること
(phpコマンドが入っていなくてもよい)

WEBサーバー
lighttpdを使用

PHP version
ver 5.6

# php.iniを修正
php.iniは5.6デフォルトから必要なパラメータだけを修正しました。

デフォルトのphp.ini(5.4~5.6、7.0~7.3ま

元記事を表示

【Laravel】Composer requireでエラー(Installation failed, reverting ./composer.json to its original content.)が出るけどrequireしたい!

#composer requireしてみる

今回私はlarevel uiをインストールしたかった。

“`bash
composer require laravel/ui
“`

スクリーンショット 2020-05-14 14.45.55.png

エラーで乙。

#原因
今入れようとしたパッケージとすでに入っているパッケージがそれぞれ同じパッケージの違うバージョンに依存してしまっているよう?

#解決法
このようにバージョン指定にアスタリスクをつけて、依存関係が解決されるバージョンが存在するのを祈る。

“`bash
composer require laravel/ui:0.*
“`

0から試していく。

スクリーンショット 2020-05-14 1</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>PHP</div>
<div class='tag-cloud-link'>error</div>
<div class='tag-cloud-link'>Laravel</div>
<div class='tag-cloud-link'>PHP7</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/H__Goro_/items/5fab1e6682861a406570'>元記事を表示</a></div>
<h3 id=【PHP】POSTとGETのデータ送受信方法

#【PHP】POSTとGETのデータ送受信方法

それぞれの違いを明確に理解するためのメモです。

##postメソッド
– name属性でデータ受け渡し用の名称を設定することで、データの送受信を行う。
– 送られてきたデータの中身は$_POSTで取得&出力しないと見れない。

###必要な要素(inputタグの場合)
**■送信元**

– formタグ
– action属性:送り先のファイルパス
– method属性:post
– inputタグ(type=”text”)
– データ入力用
– name属性:受け渡し用の名称
– inputタグ(type=”submit”)
– 入力データ送信用

**■受信先**
$_POST[受け渡し用の名称]

“`php:送信元


CentOSにNginx、PHPを入れてバーチャルホスト(マルチドメイン)で動かす+FTP

## 前提、環境
– CentOS7
– ssh接続済み
– `su -`でrootユーザーに切り替えている
– ドメインとIPの紐付けができている(お名前.com、VPSのコンパネから設定)

## PHPをインストール
`yum -y install php`だと、古いバージョンのPHPしかインストールできません。
リポジトリを追加して、yumでインストールできる対象を増やしてからインストールします。

“`zsh
$ yum install epel-release
$ yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum update
# php7.4をインストール 74の部分でバージョンを指定している
$ yum -y install –enablerepo=epel,remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
$ php -v
“`
参考サイト
[Cen

laravelのルートモデルバインディング

#役割
ルートとモデルの結びつけを自動的に行ってくれる。

#参考例
“`php:web.php
Route::get(‘/user/{user}/show’, ‘UserController@show’);
“`

“`php:UserController.php
public function show(User $user)
{
return $user->name;
}
“`

このようにweb.phpで定めたURL/user/{user}/showの{user}と
コントローラーの引数に定めた$userが一致している場合、
URLの{}の中身をIDと見なしそれに一致するモデルクラスのインスタンスを自動的に作成してくれる。

元記事を表示

【PHP】送信先のフォーム情報をブラウザにキャッシュさせない方法

#【PHP】送信先のフォーム情報をブラウザにキャッシュさせない方法

送信後のフォーム(テストページ)のレイアウト調整で、CSSが反映されず、いちいちブラウザの設定からキャッシュを消すという作業が煩わしいのでその対処法メモ。

#対処法
送信先ページのヘッダーに3行追加するだけ。

“`



“`

実に簡単。これだけでページがキャッシュされなくなる。

#対処法②
formタグのaction属性で送信先ページのURLをパラメータにすればキャッシュされなくなる。

“`

“`

こちらの方法も簡単。

パラメータ付きページはページの内容が変わるため、ブラウザがキャッシュしなくなるらしい

元記事を表示

OTHERカテゴリの最新記事