PHP関連のことを調べてみた2019年11月30日

PHP関連のことを調べてみた2019年11月30日
目次

Laravel ルーティング設定

Laravelのルーティング設定

##web.phpの設定
ディレクトリ内の routes → web.php

まず、useの処理を追記

“`php

元記事を表示

Raspberry PiのデータをGCPに送ってみた(無料)

# Raspberry PiのデータをGCPに送ってみた(無料)
Raspberry PiのデータをMySQLに格納し、Web上で確認できる仕組みを作りたかった。
VPSにサーバーを立てて、データのやり取りをしたい人向け。

※本記事は、Rasberry Pi上で気温データを取得し、送信することを目的としています。

### 開発環境
– Windows10 Pro
– Powershell
– Windows Subsystem for Linux(Ubuntu)

## GCPについて
Google Cloud Platformの略称で、Googleが提供しているクラウドコンピューティングサービスである。
>https://cloud.google.com/?hl=ja

GCPの始め方はこちらを参考に
>https://cloud.google.com/gcp/getting-started/?hl=ja

## Webサーバを立てる
– GCPプロジェクトの作成
– 好きなOSのVMを立てる(筆者は、Ubuntu 18.04 LTS)

※無償枠で作成する場合はこちらを参考に作

元記事を表示

cakephpのテンプレートにjavascript呼び出しのみのボタンを設置

“`php:test.ctp

Html->link(‘clickme’, ‘javascript:hoge();void(0)’, [‘class’ => ‘fuga’]); ?>

// class無しの場合
Html->link(‘clickme’, ‘javascript:hoge();void(0)’); ?>

“`

元記事を表示

Laravel-Excelで複数行のヘッダーを無視したい

# Laravel-Excelで複数行のヘッダーを無視したい時

[Laravel Excel](https://laravel-excel.com/)

ドキュメントをみたけれど、書いてなかったので、Issueに書いてあったことを記録しておきます。

例えば、ヘッダー行(1行目)を飛ばすのはオプションでありそうですが、複数行目(例:6行目からデータ行が始まっているので、)飛ばしたい場合、いかのように書いてやればいいです。

`WithStartRow`を使用します。

“`php
use Maatwebsite\Excel\Concerns\WithStartRow;

class UsersImport implements ToModel, WithStartRow
{
/**
* @return int
*/
public function startRow(): int
{
return 6;
}
}
“`

元記事を表示

VSCodeでPHP+Vagrantのデバッグ環境を構築する

# 背景・動機

– デバッグ作業をする際にvar_dumpなどを使って出力していた。
– 場合によっては20個くらいvar_dumpするので、かなり非効率。
– マスターのソースコードに消し忘れたvar_dumpが混入している。

XDebug使えば?と言われて使ってみたらかなり便利で世界が変わったので、共有したいと思い投稿しました。

# 前提

– Vagrantで起動されたPHP環境がある。
– XDebugはインストール済み。
– VSCodeにPHP Debugプラグインがインストール済み。

# 手順

1. Vagrantのphp.iniファイルでXDebugを有効化
2. VSCodeのlaunch.jsonにデバッガの設定を追加
3. Chrome拡張をインストール
4. ブレークポイントをはる
5. デバッグモードにする
6. アプリケーションを起動

## 1. Vagrantのphp.iniファイルでXDebugを有効化

php.iniファイルに以下の設定を追記します。
追記後は`service httpd restart`しましょう。

“`
xdebu

元記事を表示

【Symfony】フィクスチャロード(php app/console doctrine:fixture:load)でエラーが出た時の対処法

#はじめに
作業していて発生したエラーの対処法についてまとめた備忘録となります。

#開発環境
PHP:7.0
Symfony:2.8
CentOS6系(VirtualBoxで環境を構築)

#発生したエラー内容
“`terminal
$ php app/console doctrine:fixture:load
[Swift_TransportException]
Connection could not be established with host email-smtp.us-east-1.amazonaws.com [php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution #0]

元記事を表示

PHPで簡易的なフレームワークを作ってみた

#簡易的なPHPフレームワークを作ってみた

簡易的なフレームワークを実際手を動かして作ることで多少なりとも、
現在使っているフレームワーク(Laravel・自社フレームワーク)の理解の助けになればよいと思い作ってみました。

##リクエストの処理をindex.phpに集中させる
.htaccessですべてのリクエストに対してindex.phpが実行されるようにします。
https://sample.jp.localhost/blog/hogehoge
たとえば、上記のようなアクセスがあったら、以下のようなURLにリダイレクトされます。
https://sample.jp.localhost/index.php?url=blog/hogehoge

“`text:.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ind

元記事を表示

【PHP】PHPのデバッグで滅茶苦茶よく使う関数、”var_dump()”を紹介する記事

皆さんは、PHP開発をするうえで「あの関数、中身どうなってるんだ?」と疑問を呈した事は無いでしょうか?
いちいち中身を確認する為に、実行して結果が思ったものと違って、かといって原因はわからない…
そんな経験もあるものかと思います。

そんな状態を解決してくれるのが、この[var_dump]です。これは、いわゆるデバッグに使う関数で、使うとその便利さに驚くはずです。
ここでは便利な**var_dump関数について、使い方&仕様を解説します!**

#var_dump()の動きを解説

まず下記のテストコードを打ち込みます。

“`php:var_dump_testCord.php
3,”banana” => “sweet”,”orange” => 7];

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);

“`

すると出力は以下の通りになります。

元記事を表示

Amazon Linux 2 + nginx + php-fpm + PostgreSQL10

# nginx

### インストール
`# sudo amazon-linux-extras install nginx1.12 -y`
`# nginx -v`

### 起動と自動起動
`# sudo systemctl start nginx.service`
`# sudo systemctl enable nginx.service`

# PostgreSQL10
### インストール
`# amazon-linux-extras install postgresql10`
`# sudo yum install postgresql-server postgresql-libs postgresql-contrib -y`
この順でインストールするとpostgresql-serverもバージョン10が入る

### 初期化
`initdb -U postgres –local=ja_JP.UTF-8 -E UTF-8 -D /var/lib/pgsql/data`

# php-fpm
### インストール
`# sudo amazon-linux-extras i

元記事を表示

Laravel Mixでwebpackを簡単に利用する」ってどういうこと?

#はじめに

業務上活用しているLaravel Mixにてコンパイル関連で色々と模索していおり、
今更ですがLaravel Mixについて整理したことを備忘録としてまとめました。

まず、Laravel Mix公式を見てみると

以下公式サイトhttps://readouble.com/laravel/5.5/ja/mix.html より引用

>
Laravel Mixは多くの一般的なCSSとJavaScriptのプリプロセッサを使用し、Laravelアプリケーションために、構築過程をWebpackでスラスラと定義できるAPIを提供しています。シンプルなメソッドチェーンを使用しているため、アセットパイプラインを流暢に定義できます。例を見てください。
>
“`js
mix.js(‘resources/assets/js/app.js’, ‘public/js’)
.sass(‘resources/assets/sass/app.scss’, ‘public/css’);
“`
>
Webpackやアセットのコンパイルを始めようとして、混乱と圧倒を感じているならLaravel

元記事を表示

Laravel の Guard(認証) って実際何をやっているのじゃ?

認証周りが絡む特殊な実装をしようとしたときに、色々と調べてみたのでせっかくだしまとめます☺️

Guard の使い方等は 「認証」ドキュメントをご参考ください。
[Laravel 5.8 認証]
(https://readouble.com/laravel/5.8/ja/authentication.html)

# Guardってどうやって使うんだったっけ?(おさらい)

“`config/auth.php
‘guards’ => [
‘guard-name’ => [
‘driver’ => ‘session’,
‘provider’ => ‘users’,
],
],
“`

こんな風に `guards` 設定しておいて、

“`route/web.php
Route::get(‘profile’, function() {
})->middleware(‘auth:guard-name’);
“`

ルートで middleware を呼ぶと、指定した Guard で **認証

元記事を表示

Laravel モデルファイル作成

[マイグレーションファイルの作成](https://qiita.com/ken85shin/items/2ea4ba8536669b7820c5)後に、モデルファイルを作成する手順。

##Modelとは
Laravelにおいて、データベースを操作する為の実行ファイル。データベースに関連づけて作成する。

###artisanコマンドでモデルを作成

“`terminal
$ php artisan make:model モデル名
“`
Laravelには命名規則があり、テーブル名(複数系)とモデル名(単数系)とする必要がある。

| 項目 | 名前 |
|:—————–|——————:|
| テーブル名 | users |
| モデル名 | User |

このルールを守る事で、自動的にデータベースとモデル(実行ファイル)が紐づいてくれる。

###実行結果

“`php

元記事を表示

ComposerでLaravelの開発環境を構築しよう

# Laravelとは
Laravelは、MVCのWebアプリケーション開発用の無料・オープンソースのPHPで書かれたWebアプリケーションフレームワークです。webフレームワークを使うことでwebサービスの開発スピードが上がったり、セキュリティの安全性を担保できます。日本では、様々な企業で使われています。
引用: [ウィキペディア](https://ja.wikipedia.org/wiki/Laravel)
公式ページ: http://laravel.jp/

スクリーンショット 2019-11-29 0.13.57.png

# Composerとは
composerはPHPのパッケージ管理システムです。
https://getcomposer.org/
ス</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>PHP</div>
<div class='tag-cloud-link'>Composer</div>
<div class='tag-cloud-link'>Laravel</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/seiyatakahashi/items/593c475d2e8198ba27b8'>元記事を表示</a></div>
<h3 id=[Laravel]シーディングができなかった原因

UserTableSeederとFoldersTableSeederの二つをシーディングしたかったのだがうまくいかない

“`php:UserTableSeeder

class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table(“users”)->insert([
“name” => “test”,
‘email’ => ‘dummy@email.com’,
‘password’ => bcrypt(‘test1234’),
‘created_at’ => Carbon::now(),
‘updated_at’ => Carbon::now(),
]);
}
}
“`

“`php:Folder

元記事を表示

CentOS 8にPHP 7.4, PHP-FPM 7.4をインストール(Remi’s RPM repository)

# はじめに

Remi’s RPM repositoryを利用してCentOS8にPHP7.4をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Remi’s RPM repository](https://rpms.remirepo.net/wizard/)

## サポート

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

## note

– 他のPHPモジュールを入れていた場合、下記コマンドでモジュールのリセットが必要

“`shell-session
# dnf m

元記事を表示

CentOS 7にPHP-FPM 7.4をインストール(Remi’s RPM repository)

# はじめに

Remi’s RPM repositoryを利用してCentOS7にPHP-FPM7.4をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Remi’s RPM repository](https://rpms.remirepo.net/wizard/)

## サポート

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

## note

– インストール後の更新は`yum –enablerepo=remi-php74 update`

## LOG

###

元記事を表示

CentOS 7にPHP 7.4をインストール(Remi’s RPM repository)

# はじめに

Remi’s RPM repositoryを利用してCentOS7にPHP7.4をインストール
親記事:[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考:[Remi’s RPM repository](https://rpms.remirepo.net/wizard/)

## サポート

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

## note

– インストール後の更新は `yum –enablerepo=remi-php74 update`

## LOG

### インス

元記事を表示

LaravelのHerokuへのデプロイ、DBはMySQL。

##データベースにMYSQLを使う
HerokuではデータベースとしてPostgreSQLになっているため、アプリごとにClearDBを入れなければならない。利用にはクレジットカードが必要。(ClearDBの利用自体は無料)

“`
$ heroku addons:add cleardb
“`
上記にコマンドの入力またはHerokuのサイトのsettingタブから導入できる。

##Procfile を作成する
ProcfileというHerokuの設定ファイルを作成。サーバーにApacheを使うこと、public/をドキュメントルートとすることを宣言するために使います。アプリフォルダの直下に作成する。

“`:Procfile
web: vendor/bin/heroku-php-apache2 public/
“`
中身は上記のように。

##環境変数の設定
どの項目を登録すべきかよくわからなかったためいろいろやってみたが注意すべきはDBに関する項目。

DB_DATABASE=[データベース名]
DB_HOST=[ホスト名]
DB_USERNAME=[ユーザー名]
DB_

元記事を表示

【Laravel5.8】PHP7.4でTrying to access array offset on valueが山盛り出るようになった

Laravel5.8で試したからLaravel5.8としているだけで、他のバージョンや、あるいは他のフレームワークでも発生すると思います。

[PHP7.4.0がリリースされました](https://www.php.net/)。

で、PHP7.4からスカラー型変数に[配列アクセスするとE_NOTICEが出る](https://qiita.com/rana_kualu/items/2d71a88aab59b35cdcb8#trying-to-access-array-offset-on-value-of-type-s)ようになりました。

“`php
$a = null;
echo $a[1];
“`

これはPHP7.3までは何も言いませんでしたが、7.4では[E_NOTICE](https://3v4l.org/cO0n3)が発生します。
さらにPHP8ではE_WARNINGになる予定です。

これの何が問題って、値が入ってるかどうかわからないテーブルにリレーション張ってる場合ですよ。

“`php:テーブルAのモデル
class TableA extends Model{

元記事を表示

PHP関連パッケージのアップデート後にセッション処理でエラーになったときの回避策

はじめに

PHP関連のパッケージアップデートしたら、セッション処理エラーを吐かれた。
そんなときの回避策。

エラー出力の内容

Apacheのエラーログに以下メッセージが出力されている。

“`
Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session)
“`

回避策

とりあえず、なんでもいいから復旧させたい!という場合は、/var/lib/php/session の権限を777にする。

“`
$ chmod 777 /usr/lib/php/session
“`

PHP関連パッケージがバージョンアップされたときに、
“/var/lib/php/session” の権限が変わってしまったことが原因なので、
権限を777にすることで回避します。

元記事を表示

OTHERカテゴリの最新記事