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

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

【Laravel】Route.phpのwhereメソッド・メモ

##環境
Laravel Framework 7.9.2

#ドキュメント
https://readouble.com/laravel/7.x/ja/routing.htmlでcommand+Fしてwhereで検索。
「正規表現制約」ってとこ。

#使い方

>ルートインスタンスのwhereメソッドを使用し、ルートパラメータのフォーマットを制約できます。whereメソッドはパラメータ名と、そのパラメータがどのように制約を受けるのかを定義する正規表現を引数に取ります。

“`web.php
//ドキュメントのサンプルコード
Route::get(‘user/{name}’, function ($name) {
//
})->where(‘name’, ‘[A-Za-z]+’);
“`
パラメーターであるnameに対して正規表現をかけれる。
正規表現で弾かれた場合、他に当てはまるrouteがなければ当然404を返す。

また、whereメソッドの第一引数に配列として定義することもできる。以下は上と同義。

“`web.php
Route::get(‘user/{name}’

元記事を表示

PDOで取得したデータが、数値型データなのに文字列データに変わってしまう原因

最近Haskellの勉強をしていて、型って大事だな〜っていうのを改めて思っていたんですが型でふと思い出したことがありました。
長年、PHPを使用して仕事をしているのですが、PDOを使って数値のデータを取得するとなぜか文字列に変換されてしまうあれです。
あれのせいで型を意識せずになんとなくPHPを使っている方も多いのでは?なんて思いながらHaskellを勉強していたのですが、そもそもあの訳わからない変換はなぜ起きてしまうのか、今回きちんと向き合ってみようと思いました。

###まずPDOとは
PHP Data Objectsの略。
PHPからデータベースへアクセスするのを便利にしてくれるもの。
もっとちゃんと書くと、MySQLやPostgreSQLなどデータベースには様々な種類があって、
本来であればそのデータベースごとにそれぞれ合わせた書き方をしてデータ取得をしなくてはならないところ、
このPDOを使用するとどんなデータベース相手でも同じ書き方で操作出来るようになる便利な子。

###今回の謎
PDOを使ってデータベースから数値のデータを取ってくると、文字列で返ってくる
つまり「100

元記事を表示

Laravelでファイルアップロード機能を実装する

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

# Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpにuploadメソッドを追記

“`
public function upload(Request $request)
{
$file = $request->file(‘a’);

if (!is_null($file)) {

date_default_timezone_set(‘Asia/Tokyo’);

$originalName = $file->getCli

元記事を表示

Laravel 最終ログイン日時をDBに格納する

# 目的

– Authを用いたログイン機能で、最終ログイン時間をDBに保存する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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を用いて導

元記事を表示

Laravelでcssやjsが効かない時の解決方法

#はじめに
laravelで初めて開発していた時にcssとjsを使おうとしたが効かなかったので解決方法を載せておきます

#原因
publicフォルダにcssとjsフォルダがなかったため、blade.phpで使えなかった
resourcesフォルダーにcssとjsのフォルダはあるが移動させないと使えないので
Laravel初心者の方は注意が必要です!

#解決方法
resourcesフォルダからpublicにフォルダを移動させるかpublicフォルダで新しく作ってください
そして、以下のように[asset関数](https://laraweb.net/knowledge/835/)を使ってください
これを使うとpublic限定で使うことができるので
どこのフォルダでcssやjsを使っているかわかりやすくなります

““



既存のLaravelプロジェクトにLaradockを導入する

# 既存のLaravelプロジェクトにLaradockを導入する
既存のLaravelプロジェクトをLaradock化する案件に遭遇しました。

新規にLaradock環境とLaravelプロジェクトを構築する手順は多く見つかるのですが、既存のLaravelプロジェクトにLaradockを導入する記事は見当たらなかったので、忘れない内に手順を記事にします。

# フォルダー構成
こんな感じのフォルダー構成の `project-hoge` というLaravelプロジェクトがもともとあるとします。

“`
project-hoge/
├ .env : laravelプロジェクトの設定ファイル
├ composer.json
└ (中略)
“`

上記を最終的に以下のようにします。

“`
project-hoge/
├ .env : laravelプロジェクトの設定ファイル
├ composer.json
├ (中略)
└ laradock/
└ (中略)
“`

# laradockフォルダーを作成する

カレントディレクトリーが `project-h

【Node.js】Node.jsをインストールする方法

#Node.jsインストール

[Node.jsの公式サイト](https://nodejs.org/ja/)にアクセスする。

「推奨版」を押下する。

パッケージが開き、「続ける」を押下する。

「続ける」を押下する。

「同意する」を押下する。

「続ける」を押下する。

「インストール」を押下する。

パスワードを入力し、「ソフトウェアをインストール」を押下する。

「閉じる」を押下する。

#Node.jsインストール確認

ターミナルを開き、下記コマンドを入力し、バージョンが表示されれば確認OK。

“`
$ node -v
v12.16.3
$ npm -v
6.14.4
“`

得意なことに集中するために営業はフリーの営業さんに任せよう!と思った時のための簡易テレアポ管理システムを作った

自分で作ったサービスや受託開発案件のテレアポ営業をフリーランスの営業さんにお願いしたいのですが、
・実際にどんな感じで営業しているのか? 優秀そうか?
・後からトラブりそうなこといってないか?システムの仕様についてとか。
・ちゃんと申告どおり仕事をしてくれているのか?
・お客さんとのいった言わない問題を防ぎたい
などの理由で通話内容を管理したいなと思いました。
そこでtwilioを使って簡易的なコールセンターシステムを作りました。

### 主な機能
– 営業対象リストの表示
– リストから対象を選択して、ブラウザからお客様に電話
– 通話内容の録音
– 通話ステータス(未対応、保留、完了)の登録
– 通話メモの入力
* 足りてない機能いろいろあるので、提案やPRお待ちしてます。

![screenshot](https://raw.githubusercontent.com/shrft/sales-call-manager/master/doc/images/callcenter-m.gif)

### 使用している技術
– PHP7/Laravel
– twilio (w

【PHP】Composerコマンド

Composerコマンドがわからないので調べた
プロジェクト単位で PHPのライブラリ(パッケージ)を管理します。
ライブラリ間の依存関係も解決してくれます。
PHPのパッケージ管理ツールです。利用するパッケージ(ライブラリ)間の依存関係も解決してくれます。

【PHP】Composer の使い方

【Laravel】Laravel Modelからデータを取得し表示する方法

#①ControllerにてModelからデータを取得しViewに渡す

▪︎Controllerファイル開く
エディタでControllerファイルを開く

“`
(公式)
app/Http/Controllers/[コントローラ名].php
(例)
app/Http/Controllers/TestController.php
“`

▪︎ControllerにてModelからデータを取得しViewに渡す

“`php:app/Http/Controllers/TestController.php

【Laravel】Laravel routing設定&Controller・View作成

#①routing設定

エディタで下記のファイルを開く

“`
routes/web.php
“`

routing設定ファイルに下記のコードを追加

“`php:routes/web.php
// 公式
Route::get(‘ルート’, ‘コントローラ名@メソッド名’);
// 例
Route::get(‘tests/test’, ‘TestController@index’);
“`

#②Controller作成

▪︎ディレクトリ移動

“`
公式)
$ cd /Applications/MAMP/htdocs/プロジェクト名
例)
$ cd /Applications/MAMP/htdocs/laravel_test
“`

▪︎Controller作成

“`
(公式)
$ php artisan make:controller [コントローラ名]Controller
(例)
$ php artisan make:controller TestController
“`

▪︎Controllerファイル確認
エディタで下記のファイルがあることを確認

【Laravel】Laravel Controller作成

#Controller作成

▪︎ディレクトリ移動

“`
公式)
$ cd /Applications/MAMP/htdocs/プロジェクト名
例)
$ cd /Applications/MAMP/htdocs/laravel_test
“`

▪︎Controller作成

“`
(公式)
$ php artisan make:controller [コントローラ名]Controller
(例)
$ php artisan make:controller TestController
“`

▪︎Controllerファイル確認
エディタを開き、下記のディレクトリ配下を確認

“`
app/Http/Controllers
“`

[PHP]具象メソッドを持つインターフェースのようなものを実現する

## 概要
今日はめずらしく真面目なプログラミングの記事です。
interface についての説明はこちらをどうぞ。

[PHP: オブジェクト インターフェイス – Manual](https://www.php.net/manual/ja/language.oop5.interfaces.php)

interface とは本来抽象メソッドしか持つことができません。しかし、とある具象メソッド内で使用されるパラメータの実装を強制したい場合どうすればよいか、わたしなりに考えてみましたので今日はそんな話をしたいとおもいます。

## 状況
まずは下記のサンプルをご覧ください。

“`php:共通メソッドを持つクラス
class Common
{
public function hoge()
{
return ‘called common method’;
}
}
“`

“`php:共通メソッドを使うクラス(1)
use Common;
class A
{
public function foo()
{
$co

【PHP】ファイルをサーバーに編集保存・ローカルにダウンロードを行う

今回はPHPでファイルをサーバーに保存・編集 したり・ローカルにダウンロードを行う方法を紹介していきます。
仕事でも割と使用しなければいけない技術でして、ファイルをwebページで生成したうえで、それをpdfやcsvといった形式でダウンロードするサービスっていうのは結構ありますね。

例えば、wantedlyにある履歴書の作成サービスです

Screen_Shot_2019-01-16_at_22_44_37-1024x664.png

これは、履歴書の項目に必要事項を書いていって、できたものをpdfで落とすといったものです。
他にもGoogleのキーワードプランナーっていうツールでは(どんなキーワードがよく検索されているのか調べるサービスです。)

Screen_S</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>PHP</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/ynwa0826/items/d6deb6d576478a93485a'>元記事を表示</a></div>
<h3 id=【Laravel】Laravel tinker

#①tinker

ディレクトリ移動

“`
公文)
$ cd /Applications/MAMP/htdocs/プロジェクト名
例)
$ cd /Applications/MAMP/htdocs/laravel_test
“`

tinkerでテーブルにレコード追加

“`
$ php artisan tinker

>>> $test = new App\Models\Test;
>>> $test->text = “aaa”;
=> “aaa”
>>> $test->save();
=> true
>>> App\Models\Test::all();
=> Illuminate\Database\Eloquent\Collection {#3054
all: [
App\Models\Test {#3055
id: 1,
text: “aaa”,
created_at: “2020-05-05 17:27:03”,
updated_at: “2020-05-05 17:27:

【Laravel】Laravel Model作成

#①Modelのみ作成する場合

ディレクトリ移動

“`
公文)
$ cd /Applications/MAMP/htdocs/プロジェクト名
例)
$ cd /Applications/MAMP/htdocs/laravel_test
“`

Model作成

“`
公文)
$ php artisan make:model Models/ファイル名
*Modelのファイル名は単数系
例)
$ php artisan make:model Models/Test
“`

#①’Model・Controllerまとめて作成する場合

ディレクトリ移動

“`
公文)
$ cd /Applications/MAMP/htdocs/プロジェクト名
例)
$ cd /Applications/MAMP/htdocs/laravel_test
“`

Model・Controller作成のartisanコマンド実行

“`
公文)
$ php artisan make:model Models/ファイル名 -mc
例)
$ php artisan make:model Model

Vagrant上のAmazon Linux 2に開発用LAMPを整える(Apache2.4/PHP7.3/MySQL5.7)

あくまで自分の仕事用メモです。いい方法などあればアドバイスください。
前はCentOS6で構築していたのですが、AmazonLinux2がダウンロード提供されるようになったので乗り換えました。

# Vagrantの設定

`~/my-git-folder`とかソースファイルを置くためのフォルダを作っておきます。
もう一つ、`~/vagrant/hoge`とかvagrant用のフォルダを作り、そこに`Vagrantfile`という名前で以下のファイルを置きます。

“`:Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(“2”) do |config|
config.vm.box = “bento/amazonlinux-2”
config.vm.network “private_network”, ip: “192.168.33.11”
config.ssh.insert_key = false
config.vm.synced_folder “~/my-git-folde

お問い合わせフォームからのメール送信が実装できたので書きます。

スクリーンショット 2020-05-05 15.58.11.png
ダンサーの傍、webデザインや制作、プログラミングをやってます。
4月〜はダンサー自粛中ですので自分の大道芸の方のLPをリニューアルしようと思いデザインとフォームの修正をはじめました。
デザインの方は、まだ途中ですが、とりあえず機能を実装を終わらせようと、せっかくなのでメールフォームから送信!ってできるようにするか〜と思い実装始めたらまんまとはまりまくりました。
##mb_send_mail関数ではgmailが届かない??!
いろんな記事を読んで、「このままコピペして、変数さえ変更すれば簡単じゃ〜ん」と甘くみていたらもうエラーエラーの連続でした。
で、色々読んでいくとmail関数というものがあったり、その中でもSTMP送信?なにそれ?レベルだったの

【WordPress】環境構築から各機能の実装

# まずはここから wordpressのインストール
エックスサーバーでWordPressを始める8ステップ

エックスサーバーでWordPressを始める8ステップ(初心者向け)

1時間で出来る最強のWordPress環境構築
https://qiita.com/ryuta69/items/dbb0db5cf7099b7a7cc4

# メールの設定
指定したSMTPサーバーを使ってメールを送信できるようにするWP Mail SMTPプラグイン

指定したSMTPサーバーを使ってメールを送信できるようにするWP Mail SMTPプラグイン

# 問合せ機能 Contact Form 7
【簡単】Contact Form 7(WordPressお問い合わせフォーム設置)の使い方徹底解説

【簡単】Contact Form 7(WordPressお問い合わせフォーム設置)の使い方徹底解説

【公式ドキュメント】Contact Form 7
https://contactform7.com/ja/

Contact Form 7で確認

Paiza 標準入力 俺用 php

“`

“`

これ知るのに時間かかった、、、