PHP関連のことを調べてみた2021年02月13日

PHP関連のことを調べてみた2021年02月13日

LaravelでFullcalendarに登録した内容を更新する方法

#はじめに
前回に続き、今回はFullcalendarで登録した情報を更新する方法についてご説明します。
[LaravelでFullcalendarを実装する方法](https://qiita.com/yuzuyuzu0830/items/20627eb9dbac7c29dc50)

また、今回はカレンダー上の登録したイベントをクリックするとモーダルが出てきて、そのモーダル上で更新ができるようにします。モーダルでは更新前の情報も確認できるようにしたいと思います。

-各バージョン
-Laravel 6.x
-PHP 7.4.9
-MySQL 5.7.30
-Fullcalendar v5

Fullcalendarはバージョンによって記述方法が異なるので注意してください。
v4の記事を参考にしてもうまくいかないことが多かったです。

なお、フォルダ名とうは登録時に作成したものをそのまま使用しておりますのでご了承ください。

#更新用のモーダルを用意する
モーダルはJavaScriptのプアグインであるMicromodal.jsを使用しました。
モーダルに関しては自作のものではなく、プ

元記事を表示

DiscordPHP + 形態素解析

タグがPばかりで面白いですね
100年くらい前にやった人工無能作成の解説記事です

# 目次

1. 形態素解析ってなに?

2. DiscordPHPってなに?

3. 形態素解析をして出力を確認する

4. プラグインでbotを実装してみる

5. まとめ

6. 参考文献

# 1. 形態素解析ってなに?

**文章にはいろんな名詞や動詞といった品詞が隠れています
文章中を一つ一つの小さな意味として品詞に分解したものを形態素と呼びます**

形態素はそれ以上細分化すると意味を成しません
中学校で国語の勉強を怠けた人は何とか頑張りましょう

形態素解析は文章を形態素に分解する解析のことを指します
**今回やるのは解析した形態素を組み合わせて一つの文章にするってことです**

解析の方法として、ライブラリを使用して形態素解析をします
有名なもので Composerをダウングレードする手順メモ

## はじめに

Composer 2.0がリリースされており、更新した方も多いと思います。

v1系はいずれEOLになるでしょうし、今後、開発ではv2を採用するでしょう。

今回は調査の過程でやむを得ず、ローカルに Composer 1.xが必要になり作業したので、メモしておきます。

## アンインストール
多くの場合、以下のディレクトリにあると思いますので、削除します。

“`bash
$ cd /usr/local/bin
$ rm -r composer
“`

上記になければ、which で探して消しましょう。

“`bash
$ which composer
/path/to/dir/composer

$ cd /path/to/dir
$ rm -r composer
“`

## v1系のインストール

公式サイトを確認します(https://getcomposer.org/download/ )。
インストール用のスクリプトは既にv2系統になっていますが、ページ中程に **Manual Download** の案内があります。

今回は、 `Latest

元記事を表示

「php artisan serve」無しでLaravelを起動する※xampp

Laravelを起動する際、毎回コマンドで
`php artisan serve`
を実行していたのですが、O型の自分からすると「毎回めんどうくさいな~」
と思っていたので、少し調べてみました。

結論、httpd.confのドキュメントルート変更すればOK
`DocumentRoot “/xampp/htdocs”` ⇒ `DocumentRoot “/xampp/htdocs/プロジェクト名/public”`
`` ⇒ ``

apache再起動し[Admin]を押すと、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569318/1af083a8-c4c7-f64f-e757-f766149252d4.png)
正しく表示されました、挙動も問題なし。

元記事を表示

Trim関数の使い方

#挨拶
初めまして!初投稿です。
未経験からバックエンドエンジニアを目指して勉強中です。
アウトプット用して投稿していくので、お手柔らかにお願いします。
#ホワイトスペースを削除するTrim関数

Trim関数は、標準入力された値のホワイトスペース(半角スペース、タブ)を削除してくれます。※全角スペースは削除できません。

以下を実行し、値の前に空白を入力してみます。

“`php:car.php
echo ‘好きな車を入力してください’ . PHP_EOL;
$title = fgets(STDIN);
echo PHP_EOL;

echo ‘あなたは’ . $title . ‘が好きなんですね’ . PHP_EOL;
“`
すると以下のようになります。
![スクリーンショット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1082175/9a474834-d7a7-9990-54f8-a1bfa3bcb14e.png)
これだと「あなたは」と「BMW 5シリーズセダン」の間に空白が入っているの

元記事を表示

PHP Paiza 自動テストテンプレート

以前書いた [PHP Paiza 標準入力テンプレート](https://qiita.com/ucan-lab/items/6a3c1a2923ba30824f39) の記事が好評でPaizaの問題を解くときに参考にしてますというお声をよくいただいてます。とても嬉しいです☺️

## 環境

– PHP: 7.3以上

## お悩み相談

Paizaに問題を提出すると標準入力と標準出力の結果を確認されるのですが、毎回手でポチポチ入力例を入力していくのは手間ですよね…?
入力例が1行であれば、まぁいいかとなるんですが、複数行入力するのは割と時間かかっちゃいますし、誤入力やりがちです。

[phpunit](https://phpunit.readthedocs.io) というPHPの便利なテストフレームワークはありますが、Paizaの問題を解くためにフレームワークを入れるのは、まぁ大掛かりな気持ちがあります。

ということで今回は自前のテストコードを作っていきたいと思います。

## FizzBuzz問題

今回は[レベルアップ問題集 | Paiza](https://paiza.j

元記事を表示

【PHPUnit学習記録】PHPUnitを使用できる環境を整える(composer)

PHPUnitの学習を始めました。
 
今回は、composerを使用して環境構築をしていきたいと思います。(Mac)

下記を参考にさせて頂きました:relaxed::tulip:

PHPUnit導入手順について↓
https://qiita.com/niki-tstk/items/e215806023c6411bb7c1

PHPUnit公式ドキュメント↓
https://phpunit.readthedocs.io/ja/latest/organizing-tests.html

package.jsonについて↓
https://qiita.com/righteous/items/e5448cb2e7e11ab7d477
https://qiita.com/gght/items/f74788c728b33f071e50
http://liberty-technology.biz/PublicItems/npm/package.json.html

 __PHPUnitをインストールする__

 まずはプロジェクトのディレクトリに移動します。

“`
$ cd プロジェクトデ

元記事を表示

Laravel マイグレーションが実行されているのにDBに反映されない時の対処法

## 問題
既存テーブルにカラムを追加するため、カラム追加用のマイグレーションファイルを作成し、`php artisan migrate:fresh`を実行するが**カラムが追加されていません**でした。

`php artisan migrate:fresh`を実行時に、特にエラーも吐きません。

## 結論

カラム追加用の**「マイグレーションファイル名」と「マイグレーションファイルのクラス名」を一致**させたらDBに反映されました!

例)

“`2020_12_23_080359_alter_users_table.php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AlterUsersTable extends Migration
{
public function up()
{
Schema::create(‘use

元記事を表示

Laravelであらかじめ共通の値をViewインスタンスに渡しておきたい

# はじめに
こんにちは。先日、実家に眠ってた、`Windows 98`のノートパソコンと`Windows XP`のデスクトップPCを[浜屋](http://www.hamaya-corp.co.jp/)に持って行って、合計1,500円で買い取っていただいた筆者です :yen:

さて、Webサイトの構築をしているのですが、サイトの**ヘッダー**とか**フッター**に使う値をDBから取得するケースがあります。

その際に親のコントローラーであらかじめViewインスタンスに渡せるので共有します。
こうすることで、子コントローラーのactionまで値を引き回さないで済みます:+1:

# これでいけます:+1:
[share](https://laravel.com/api/8.x/Illuminate/View/Factory.html#method_share)メソッドがあるのでこれに渡せば大丈夫です。

“`php
$data = [];
// 1個だけ渡すとき
view()->share(‘data’, $data);

// 複数個渡すとき
$data2 = [];
vie

元記事を表示

Migrationでテーブルを作成する

メモです。参考にしないでくださいね。:point_up:

Migrationファイルのひな形を作る
(今回はnewsテーブルを作る)

“`
$ php artisan make:migration create_news_table
“`

データの保存
Modelのひな形を生成
(今回はnewsモデルを作る)
(Model名は単数系)

“`
$ php artisan make:model News
“`

##Validationを定義
(Model内に定義します)

“`php

namespace App;

use Illuminate\Database\Eloquent\Model;

class News extends Model
{
protected $guarded = array(‘id’);

// 以下を追記
public static $rules = array(
‘title’ => ‘required’,
‘body’ => ‘required’,
);
}
“`
##

元記事を表示

Docker+Laravel+PostgreSQL+pgAdmin4+Apacheの開発環境を構築する

#目的
これまで、Dockerで構築したLaravel+PostgreSQLの開発環境に、必要に応じて様々なパッケージなどを追加してきました。ここらでDockerfileなどの中身を整理して、備忘録として残したいと思います。

Gitからサンプルプロジェクトをクローンしていただければ、誰でも簡単にLaravel+PostgreSQLの環境を構築することができると思います。みなさんの好みに合わせて、カスタマイズしながら使っていただければ幸いです。

#環境
– Windows 10 Pro 64bit メモリ 32GB
– Docker for Windows v20.10.2
– Docker Compose v1.27.4
– Git

DockerやGitをこれからインストールする方は、下記の記事が参考になると思います。

– [[Docker] Windows 10 Pro 64bit に Docker と Docker Compose をインストールする](https://qiita.com/ksh-fthr/items/6b1242c010fac7395a45)
– [

元記事を表示

Laravel Tenancyでテナントに割り与えられたデータベースが表示されない

## 問題
Laravelのマルチテナント環境を構築するため[hyn/multi-tenant](https://tenancy.dev/)パッケージを使用しテナントを作成したのですが、**テナントに割り与えられたデータベースが表示されません**でした。

■実施した手順
1. Dockerで環境構築
2. [各種設定](https://reffect.co.jp/laravel/laravel-tenancy-multi-tenants#i-2)(パッケージのインストール、データベース等)
3. [テナントの作成](https://reffect.co.jp/laravel/laravel-tenancy-multi-tenants#i-7)
4. [TablePlus](https://tableplus.com/)でデータベースの確認

4.の部分でテナントに割り与えられたデータベースが表示されればOKです。ただし、tenancyデータベースの「websitesテーブル」「hostnamesテーブル」それぞれに新たにレコードが作られていますが、**割り与えられたデータベースが表示

元記事を表示

エラー Module not found: Error: Can’t resolve ‘axios’

エラー文

“`
ERROR in ./resources/js/bootstrap.js
Module not found: Error: Can’t resolve ‘axios’ in ‘/home/ec2-user/environment/mybbs/resources/js’
@ ./resources/js/bootstrap.js 21:15-31
@ ./resources/js/app.js
@ multi ./resources/js/app.js ./resources/sass/app.scss ./resources/sass/admin.scss
“`

解決策

“`
$ npm install axios –save-dev
$ npm run watch
“`

元記事を表示

非同期通信

非同期通信について説明されたURL
https://wa3.i-3-i.info/word1624.html
![スクリーンショット 2021-02-12 2.03.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050099/bd92b6b7-8ec5-0d12-30d8-695a78a83b5b.png)

元記事を表示

FuelPHPでSimpleauthを利用してアカウント登録機能を作る

# 新規登録機能の実装

FuelphpのAuthパッケージというものを利用して、新規登録の認証機能を作ってみました。
実装ではAuthパッケージにおける「Simpleauth」というものを使いました。
開発環境は以下の通りです。

– PHP 7.3
– FuelPHP 1.8.2
– MAMP

ここではざっくり以下を目標に機能の実装を行っていきます。
1. パスワード確認用フォームの作成
2. エラーメッセージの日本語設定
3. usernameの重複を許可する
4. emailの重複は許可しない

### ビューの作成
入力フォームを作成します。

“`

‘home/signup’, ‘method’ => ‘post’]); ?>


元記事を表示

実はCGIってCLIアプリなのでは?と思ったので試してみた

## ふとした気づき

今時 CGI なんて言わない?知らない?そんなこたぁいいんですよ。
ふと思ったんですよ、CGIとCLIアプリって本質的に同じものなんじゃないかなって。
だってPHPってこんなふうに書いてブラウザでアクセスしたら `いろはにほへと` って出るじゃないですか?
そしてこれを `php index.php` みたいにして叩いても `いろはにほへと` って出ますよね?

“`php:index.php

元記事を表示

phpの多次元配列の扱い

phpで多次元配列を作成した際に、欲しい情報を取得する方法の記録。

## オブジェクトの例

“`php5

$books = array(
array(‘title’=>’黒パン雨やどり’, ‘writer’=>”石森 伸一”, ‘price’=>1000),
array(‘title’=>’ベティさんの長恨歌’, ‘writer’=>”一ノ倉 敬太郎”,’price’=>500),
array(‘title’=>’パークきれぎれ’, ‘writer’=>”梶 芳美”, ‘price’=>800),
array(‘title’=>’月と満ち欠け’, ‘writer’=>”弓田 沙和”, ‘price’=>900),
);
“`

## 多次元配列から取得したい情報

1. 任意のkeyのみ取得
例)titleのみ取得

2. 任意のkeyに特定の値が存在するか
例)nameに山田太郎が存在するか

## 方法
### 1. 任意のkeyのみ取得

array_column使うと一発でできて感動

“`php5
array_column($b

元記事を表示

スマホでも見やすいDirectoryIndexを作る

nginxやapacheに標準でついているDirectoryIndex(いわゆる Index of)がスマホ画面ではとてもとても使いずらいので、簡易的なファイルブラウザを作ってみた。

要件

* スマホでも操作がしやすいこと
* 必要最低限の認証機能はつける
* ファイル名ソート・新しい順ソートの切り替えは欲しい
* ファイルサイズは表示させたい
* ファイル一覧画面のURIはDocumentRootからのパスに合わせる必要はないが、ファイル自体のURIはサーバのファイルに直リする
* 動画ファイルのランダムアクセスがしたいため
* HTTP HEADERに Range:を含めたいんだけどコードで自前対応するのは面倒なので、これはウェブサーバにおまかせしたいのです
* 実装に時間をかけない

最低限の見栄えと、とりあえず最低限の認証機能込みで、実装は2時間くらい。

## 出来上がったもの

こんな感じです。
DocumentRoot以下のディレクトリ、ファイルがウェブブラウザから参照できます。
スマホの画面から動画を選んで再生するような使い方が主目的のため、スマホでの操作

元記事を表示

laravelなどコマンド一覧【個人用メモ】

#【プロジェクトの作成】
“`php
laravel new プロジェクト名
“`

“`php
$ composer create-project –prefer-dist laravel/laravel プロジェクト名 “5.8.*”
“`
(最後はバージョン指定)

#【ローカルサーバー起動】
“`php
$ php artisan serve (–port=8080)
“`
#【MySQL】
ログインコマンド
“`$ mysql -u root“`

起動コマンド
“`$ sudo brew services start mysql“`

#【ルートの確認】
“`php
$ php artisan route:list
“`
#【モデルの作成】
“`php
$ php artisan make:model Admin
“`
“`php
$ php artisan make:model -m Admin
“`
※-mオプションを追加することでマイグレーションファイルも生成されます。
**モデル名は単数形**で命名するのが慣例。テーブル名は複数

元記事を表示

PHPも勉強したい

これまでRubyをメインでjavascriptなどの学習していたのですが、PHPを学習し資格を取ろうと考え、まずバージョンを最新にしようと考えました。

macにはPHPが搭載されているか調べるために、コマンドを入力

“`bash:ターミナル
% php -v
PHP 7.3
“`
ということでバージョン7.3が入っていました。

いろいろな記事を参考にさせていただき、バージョンの確認をしてみました。Homebrewのインストールはすでにしていました。
特に参考にさせていてだいた記事
[PHPのバージョンを7.4にアップデートする](https://qiita.com/kuroro_ru/items/046cba8e23d32599ee4a)

## PHPのバージョン検索

“`bash:ターミナル
brew search php@7
==> Formulae
php@7.2 php@7.3 php@7.4
“`

PHP7.4が一番新しかったのでこちらをHomebrew経由でインストールします

元記事を表示

OTHERカテゴリの最新記事