developer's diary

最近はc#のエントリが多いです

gitに記録しながらlaravel8.xプロジェクト作成の記録 (4)

mitsugeek.net

の続きです。

github で issue作成

(1) 「Issue」をクリック

f:id:mitsugi-bb:20210321222240p:plain

(2) 「New Issue」を押下

f:id:mitsugi-bb:20210321222414p:plain

(3) タイトルと本文を入力して、「Submit new issue」を押下

f:id:mitsugi-bb:20210321222443p:plain

(4) 作成したissueには、#から始まる番号が付与される。

f:id:mitsugi-bb:20210321222707p:plain

githubでブランチの作成

(1) ブランチをクリックする

f:id:mitsugi-bb:20210321223214p:plain

(2) ブランチ名を入力して、「Create branch:ブランチ名」をクリック

f:id:mitsugi-bb:20210321223348p:plain

Visual Studio Codeでブランチを変更

(1) フェッチを実行

フェッチを実行することで、githubで作成したブランチが読み込まれる

f:id:mitsugi-bb:20210321223714p:plain

(2) ブランチを変更

check out ...を押下

f:id:mitsugi-bb:20210321224132p:plain

作成したブランチを選択

f:id:mitsugi-bb:20210321224328p:plain

ソース管理のメッセージの表示が新しいブランチ名になっていたら、ローカルブランチが変更されている

f:id:mitsugi-bb:20210321224650p:plain

続きはこちら。

mitsugeek.net

gitに記録しながらlaravel8.xプロジェクト作成の記録 (3)

mitsugeek.net

の続き

SQLiteのデータベースファイルを作成

カレントディレクトリをlaravelフォルダに移動

cd /Applications/MAMP/MyApp/laravel

sqliteファイルを作成

touch database/database.sqlite

envファイル修正

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

を以下のように修正

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
DB_DATABASE=/Applications/MAMP/MyApp/laravel/database/database.sqlite
#DB_USERNAME=root
#DB_PASSWORD=

#はコメント行を表します。

ドキュメント

https://laravel.com/docs/8.x/database#sqlite-configuration

https://readouble.com/laravel/8.x/ja/database.html#sqlite-configuration

migrateを実行

migrateを実行すると、

php artisan migrate

結果

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (4.96ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (4.79ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (2.81ms)

ドキュメント

https://laravel.com/docs/8.x/migrations#running-migrations

https://readouble.com/laravel/8.x/ja/migrations.html#running-migrations

続きはこちら。

mitsugeek.net

gitに記録しながらlaravel8.xプロジェクト作成の記録 (2)

本エントリは、以下リンクの続きです。

mitsugeek.net

今回はlaravelアプリに対してトップページにアクセスした際に表示されるページを作成

f:id:mitsugi-bb:20210319012343p:plain

このページには、トップページへのリンクが表示されますが、特に意味はありません。 あくまでNamed Routesを利用したリンクの書き方を説明するためだけに記述してます。

1. routes/web.php を修正

<?php
//~~省略~~
Route::get('/', function () {
    return view('top');
})->name('top');

Routeファザードと呼ばれるもので、実態は、Routerクラスです。

Routerクラスの、getメソッドを呼び出すことで、ルーティング(どのURLにアクセスした時に、何をするのか)を登録しています。

この場合、ルート(/) のURL http://localhost:8888/MyApp/ にアクセスした場合に、第2引数の関数が実行されます。

ポイントは、nameメソッドを実行しているところです。

これは、「Named Routes(公式ドキュメント:英語)」と呼ばれるもので、リンク作成の際に少し便利になるため、私はよく利用します。

view('top')は、ヘルパー関数で、 「resources/views/top.blade.php」のbladeファイルを表しています。

ヘルパー関数とは?

ヘルパー関数は、laravelを利用する上で、よく使うものをグローバルな(どこからでもアクセスできる)関数としてまとめたものです。

ドキュメント、APIドキュメント

メモ

  • Route::get()の戻り値は、Routeクラス(Illuminate/Routing/Route.php)
  • Routeクラスには、nameメソッドが存在
  • nameメソッドはメソッドチェーンという技術が利用されている
  • laravelにはヘルパー関数と呼ばれるよく使う機能はヘルパが存在する

2.「welcome.blade.php 」を「top.blade.php」に変更

「welcome.blade.php」 のファイル名を、「top.blade.php」に変更します。

今回、view('top')という指定を行ったので、laravelはviewファイルを探しに行く時に「resources/views/」にある「top.blade.php」を探しに行きます。

変更しない場合のエラー内容

ファイル名を存在しない場合は、以下のようなエラーになります。

f:id:mitsugi-bb:20210319023612p:plain

英語 日本語
View [top] not found. ビュー[トップ]が見つかりません。

3. resources/views/top.blade.php を修正

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>トップページ</title>
</head>
<body>

    <h1>トップページ</h1>

    <ul>
        <li><a href="{{route("top")}}">トップページ</a></li>
    </ul>
</body>
</html>

routeというヘルパー関数を利用して、Named Routesで登録したルート名を利用してリンクを構築しています。

ドキュメント、APIドキュメント

今回修正したソース

github.com

続きはこちら

mitsugeek.net

gitに記録しながらlaravel8.xプロジェクト作成の記録 (1)

Mac Bookで構築

ミドルウェアはMAMPで構成

1. githubのプロジェクト作成

f:id:mitsugi-bb:20210318190412p:plain

作成すると次の画面に遷移します。

f:id:mitsugi-bb:20210318190521p:plain

2. githubにファイル追加

2. - (1)「/Applications/MAMP」に、「MyApp」というディレクトリを作成

mkdir /Applications/MAMP/MyApp

2. - (2) カレントディレクトリを「/Applications/MAMP/MyApp」に移動

cd /Applications/MAMP/MyApp 

2. - (3) README.mdファイルを作成、内容は「# MyApp」

echo "# MyApp" >> README.md

2. - (4) カレントディレクトリをgit の管理対象にする

git init

結果

Initialized empty Git repository in /Applications/MAMP/MyApp/.git/

2. - (5) README.mdをステージング

git add README.md

2. - (6) commit実行、コミットコメントは「first commit」

git commit -m "first commit"

結果

[master (root-commit) 2363764] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

2. - (7) ブランチ名を「main」に変更

git branch -M main

2. - (8) リモートリポジトリを追加

git remote add origin https://github.com/mitsugeek/MyApp.git

2. - (9) push実行と同時に、push先をリモートリポジトリとして認識させる

git push -u origin main

結果

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/mitsugeek/MyApp.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

2. - (10) git にpushされた。

f:id:mitsugi-bb:20210318235646p:plain

github.com

3. laravelプロジェクト作成

composer create-project laravel/laravel laravel 

4. gitにコミット

4. - (1) 全てのフィアルをステージング

git add .

4. - (2) コミット(コミットコメントは、「laravel install」

git commit -m "laravel install"

4. - (3) push実行

git push

結果

f:id:mitsugi-bb:20210319001351p:plain

github.com

5. ブラウザから表示できるようにする

5. - (1) シンボリックリンクを追加

http://localhost:8888/MyApp/にアクセスがあった場合に、/Applications/MAMP/MyApp/laravel/publicを表示するようにシンボリックリンクを貼る。

ln -s /Applications/MAMP/MyApp/laravel/public /Applications/MAMP/htdocs/MyApp 

5. - (2) ブラウザから表示してみる

http://localhost:8888/MyApp/にアクセスする。

f:id:mitsugi-bb:20210319001844p:plain

続きはこちら。

mitsugeek.net

laravelのドキュメント読むところMUST

以下エントリを書いたけども、もう少し細かく、MUSTな箇所を抜き出しておいた方がよさそう。

mitsugeek.net

ということで、もう少し細かくリンクをまとめました。

ここは抑えといた方が良い内容です。

ルーティングについて読んでおくべき事柄

Basic Routing(基本的なルーティング)

ルーティングはどのURLにアクセスしたら何をするか。を司るところです。

言語 URL
英語 https://laravel.com/docs/8.x/routing#basic-routing
日本語 https://readouble.com/laravel/8.x/ja/routing.html#basic-routing

Route Parameters(ルートパラメータ)

ルーティングのURLには「/blog/entry/139」のように、

言語 URL
英語 https://laravel.com/docs/8.x/routing#route-parameters
日本語 https://readouble.com/laravel/8.x/ja/routing.html#route-parameters

Named Routes (名前付きルート)

言語 URL
英語 https://laravel.com/docs/8.x/routing#named-routes
日本語 https://readouble.com/laravel/8.x/ja/routing.html#named-routes

コントローラについて読んでおくべき事柄

Basic Controllers (基本のコントローラ)

言語 URL
英語 https://laravel.com/docs/8.x/controllers#basic-controllers
日本語 https://readouble.com/laravel/8.x/ja/controllers.html#basic-controllers

リクエストについて読んでおくべき事柄

Accessing The Request(リクエストへのアクセス)

言語 URL
英語 https://laravel.com/docs/8.x/requests#accessing-the-request
日本語 https://readouble.com/laravel/8.x/ja/requests.html#accessing-the-request

Retrieving Input (入力の取得)

言語 URL
英語 https://laravel.com/docs/8.x/requests#retrieving-input
日本語 https://readouble.com/laravel/8.x/ja/requests.html#retrieving-input

Retrieving Uploaded Files (アップロード済みファイルの取得)

言語 URL
英語 https://laravel.com/docs/8.x/requests#retrieving-uploaded-files
日本語 https://readouble.com/laravel/8.x/ja/requests.html#retrieving-uploaded-files

レスポンスについて読んでおくべき事柄

Redirecting To Named Routes (名前付きルートへのリダイレクト)

言語 URL
英語 https://laravel.com/docs/8.x/responses#redirecting-named-routes
日本語 https://readouble.com/laravel/8.x/ja/responses.html#redirecting-named-routes

File Downloads (Fileダウンロード)

言語 URL
英語 https://laravel.com/docs/8.x/responses#file-downloads
日本語 https://readouble.com/laravel/8.x/ja/responses.html#file-downloads

ビューについて読んでおくべき事柄

Introduction(イントロダクション)

言語 URL
英語 https://laravel.com/docs/8.x/views#introduction
日本語 https://readouble.com/laravel/8.x/ja/views.html#introduction

Nested View Directories(ネストしたビューディレクトリ)

言語 URL
英語 https://laravel.com/docs/8.x/views#nested-view-directories
日本語 https://readouble.com/laravel/8.x/ja/views.html#nested-view-directories

URL生成について読んでおくべき事柄

URLs For Named Routes (名前付きルートのURL)

言語 URL
英語 https://laravel.com/docs/8.x/urls#urls-for-named-routes
日本語 https://readouble.com/laravel/8.x/ja/urls.html#urls-for-named-routes

Bladeテンプレートについて読んでおくべき事柄

Displaying Data (データの表示)

言語 URL
英語 https://laravel.com/docs/8.x/blade#displaying-data
日本語 https://readouble.com/laravel/8.x/ja/blade.html#displaying-data

HTML Entity Encoding (HTMLエンティティエンコーディング)

言語 URL
英語 https://laravel.com/docs/8.x/blade#html-entity-encoding
日本語 https://readouble.com/laravel/8.x/ja/blade.html#html-entity-encoding

laravel8 のドキュメントの読んでく順 付録:日英対応表

Laravelのドキュメントを読むときは、本家、日本語訳を参考にして調べるほうが得策。

Laravelの情報はネット上にたくさんあるけども、バージョンによって、記述方法が変わってくるので、 公式なドキュメントを読むほうが得策。

ただ、英語が苦手な場合は、日本語ドキュメントから読むことでもよいと思うが、 英語のドキュメントが一番新しく公式のものなので、日本語ドキュメントを読むときは、英語の公式ドキュメントも読んでおいたほうが良い。

最初に読むところ

最初に読むべきドキュメントは、The Basics(基礎)のところ。

自分は、ルーティング→コントローラー→ビューの流れでソースを追いかけるので、 その流れでドキュメントを読むとよいかもしれない。

Laravelはバックエンドでビューはいらないよ。という人は、 ルーティング→コントローラ→リクエスト→レスポンスの順で読むべきか。

The Basics(基礎)を順番に読んでいってもいいんだけど、個人的にはこの読み方でしっくりこなかった。 本当はもっと分解して小さなサイクル回しながら読むほうが良さそう。

  • シンプルなリクエスト・レスポンス
  • 入力を受け取るリクエスト・レスポンス
  • バリデーションを入れた場合のリクエスト・レスポンス

のように用途に合わせて、どこを読めばよいかがまとまっているととっつきやすいかもしれない。

The Basics

ルーティング

言語 URL
英語 https://laravel.com/docs/8.x/routing
日本語 https://readouble.com/laravel/8.x/ja/routing.html

コントローラ

言語 URL
英語 https://laravel.com/docs/8.x/controllers
日本語 https://readouble.com/laravel/8.x/ja/controllers.html

ビュー

言語 URL
英語 https://laravel.com/docs/8.x/views
日本語 https://readouble.com/laravel/8.x/ja/views.html

Bladeテンプレート

言語 URL
英語 https://laravel.com/docs/8.x/blade
日本語 https://readouble.com/laravel/8.x/ja/blade.html

リクエスト

言語 URL
英語 https://laravel.com/docs/8.x/requests
日本語 https://readouble.com/laravel/8.x/ja/requests.html

レスポンス

言語 URL
英語 https://laravel.com/docs/8.x/responses
日本語 https://readouble.com/laravel/8.x/ja/responses.html

バリデーション

言語 URL
英語 https://laravel.com/docs/8.x/validation
日本語 https://readouble.com/laravel/8.x/ja/validation.html

ログ

言語 URL
英語 https://laravel.com/docs/8.x/logging
日本語 https://readouble.com/laravel/8.x/ja/logging.html

セッション

言語 URL
英語 https://laravel.com/docs/8.x/session
日本語 https://readouble.com/laravel/8.x/ja/session.html

URL生成

言語 URL
英語 https://laravel.com/docs/8.x/urls
日本語 https://readouble.com/laravel/8.x/ja/urls.html

ミドルウェア

言語 URL
英語 https://laravel.com/docs/8.x/middleware
日本語 https://readouble.com/laravel/8.x/ja/middleware.html

CSRF(cross-site request forgeries) 攻撃に対応する

言語 URL
英語 https://laravel.com/docs/8.x/csrf
日本語 https://readouble.com/laravel/8.x/ja/csrf.html

エラーのハンドルを握る

言語 URL
英語 https://laravel.com/docs/8.x/errors
日本語 https://readouble.com/laravel/8.x/ja/errors.html

PHPで文字列から数字が見つかった時点で2つに分ける。住所を分割したい。

ヤマトビジネスメンバーズのB2クラウドの仕様上16文字以内という仕様があるため、以下のような文字数だと分割する必要がある。

大阪府大阪市此花区伝法4-3-1大和ハウス1099号室

なので、正規表現でやってみる。

<?php

$a = "大阪府大阪市此花区伝法4-3-1大和ハウス1099号室";
preg_match('/^[^0-9]*/', $a, $matches, PREG_OFFSET_CAPTURE);
$address1 = $matches[0][0];
$address2 = str_replace($address1, "", $a);
var_dump($address1);
var_dump($address2);
var_dump($a);

結果

string(33) "大阪府大阪市此花区伝法"
string(30) "4-3-1大和ハウス1099号室"
string(63) "大阪府大阪市此花区伝法4-3-1大和ハウス1099号室"

感想

一番良いのは、住所のデータベース作って分割することなんだろうけど。工数かかりすぎるのでやめ。

佐川急便、郵便局、クロネコヤマトで各社微妙に住所のレイアウトが違う。

こういうところを調整する為のワーキンググループってあるのかな。

文字数にはいろんな意味があるので、一概には決めれないだろうけど。

laravelをインストールしてからやること(メモ)

前提

項目 内容
OS wsl上のubuntu ※windows
ubuntuのユーザ username
apache2のグループ www-data
ドキュメントルート /var/www/html
laravelのインストール先 /var/www/laravelproject
laravelのアクセスURL http://localhost/laravelproject/

シンボリックリンクを作成

ln -s /var/www/laravelproject/public /var/www/html/laravelproject

権限変更

sudo chown -R username:www-data /var/www/laravelproject/storage/logs
sudo chmod -R 775 /var/www/laravelproject/storage/logs

sudo chown -R username:www-data /var/www/laravelproject/storage/framework/sessions
sudo chmod -R 775 /var/www/JOOY/storage/framework/sessions

sudo chown -R username:www-data /var/www/laravelproject/storage/framework/views
sudo chmod -R 775 /var/www/JOOY/storage/framework/views

sudo chown -R mitsugi:www-data  /var/www/laravelproject/storage/framework/cache
sudo chmod -R 775  /var/www/laravelproject/storage/framework/cache

sudo chown -R mitsugi:www-data /var/www/laravelproject/bootstrap/cache
sudo chmod -R 775 /var/www/laravelproject/bootstrap/cache

sudo chown -R username:www-data /var/www/laravelproject/database/
sudo chmod -R 775 /var/www/laravelproject/database/

.envファイル作成

cp /var/www/laravelproject/.env.example  /var/www/laravelproject/.env

key:generate

php artisan key:generate

.envファイル修正

APP_URL項目を修正(※最後に/をつけないのはミソ)

APP_URL=http://localhost/laravelproject

結果

f:id:mitsugi-bb:20210215141125p:plain

pdf-lib.jsというライブラリを利用すると、日本語フォントを埋め込んだPDFをブラウザ上で生成できる

2014年にjsPDFとかFileSaver.jsとか使って、ブラウザでPDF出力みたいなことしてたんですが、 その時は、日本語フォントの埋め込みができなかったので、canvasに日本語の文字書いて無理くりimageをPDFに出力するということをやってました。

で、6年たった今どれくらい技術は発達してるのか?と思い。 調べてみました。

あるじゃないですか。フォント埋め込みできるjsのpdf生成ライブラリ

pdf-lib.js

pdf-lib.js.org

サンプルソース

    const { PDFDocument, rgb } = PDFLib

    // ボタン押下時の処理
    async function createPdf() {
      // PDFドキュメント生成
      const pdfDoc = await PDFDocument.create();
      // フォント埋込のおまじない
      pdfDoc.registerFontkit(fontkit);
      //読み込みフォントのURL
      const url = './font/DotGothic16-Regular.ttf';
      //フォントを読み込んでバイト配列で保持
      const fontBytes = await fetch(url).then((res) => res.arrayBuffer());
      //フォント埋め込み
      const font = await pdfDoc.embedFont(fontBytes);
      //PDFに1ページ追加
      const page = pdfDoc.addPage();
      //印字
      page.drawText('勇者は頑張ってjavascriptでpdfを印刷し...',{x: 0,y: 800, size: 30,font: font,color: rgb(0,0,0)});
      page.drawText('勇者は頑張ってjavascriptでpdfを印刷し...',{x: 0,y: 770, size: 20,font: font,color: rgb(0,0,0)});
      page.drawText('勇者は頑張ってjavascriptでpdfを印刷し...',{x: 0,y: 750, size: 10,font: font,color: rgb(0,0,0)});
      page.drawText('勇者は頑張ってjavascriptでpdfを印刷し...',{x: 0,y: 740, size: 8,font: font,color: rgb(0,0,0)});
      //PDFのバイト配列取得
      const pdfBytes = await pdfDoc.save();
      //バイト配列をダウンロードさせる
      download(pdfBytes, "勇者は.pdf", "application/pdf");
    }

サンプル

mitsugeek.github.io

PDFのサイズは?

フォント自体のサイズは、4.12 MBなんですが、生成されたPDF自体は、1.75 MBでした。

ちなみに、ipag.ttfでやってみると、フォントのサイズが5.94 MBで、生成された4.13 MBとなりました。

感想

ファイルサイズが大きい印象です。

Laravel-dompdfだと、画像含んでも1MByteいかないので、埋め込みフォントのところがボトルネックになるのかな。

ただ、サーバレスでPDFが生成できるのは、メリットが大きいですね。

laravel version 8.5.9 installしたときにインストールされるライブラリを調査

インストールコマンド

composer create-project laravel/laravel --prefer-dist ProjectName

インストール時のログ

ログを見る

username@servername:/var/www$ composer create-project laravel/laravel --prefer-dist ProjectName
Creating a "laravel/laravel" project at "./ProjectName"
Installing laravel/laravel (v8.5.9)
  - Installing laravel/laravel (v8.5.9): Extracting archive
Created project in /var/www/ProjectName
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 105 installs, 0 updates, 0 removals
  - Locking asm89/stack-cors (v2.0.2)
  - Locking brick/math (0.9.2)
  - Locking dnoegel/php-xdg-base-dir (v0.1.1)
  - Locking doctrine/inflector (2.0.3)
  - Locking doctrine/instantiator (1.4.0)
  - Locking doctrine/lexer (1.2.1)
  - Locking dragonmantank/cron-expression (v3.1.0)
  - Locking egulias/email-validator (2.1.25)
  - Locking facade/flare-client-php (1.3.7)
  - Locking facade/ignition (2.5.11)
  - Locking facade/ignition-contracts (1.0.2)
  - Locking fakerphp/faker (v1.13.0)
  - Locking fideloper/proxy (4.4.1)
  - Locking filp/whoops (2.9.2)
  - Locking fruitcake/laravel-cors (v2.0.3)
  - Locking graham-campbell/result-type (v1.0.1)
  - Locking guzzlehttp/guzzle (7.2.0)
  - Locking guzzlehttp/promises (1.4.0)
  - Locking guzzlehttp/psr7 (1.7.0)
  - Locking hamcrest/hamcrest-php (v2.0.1)
  - Locking laravel/framework (v8.27.0)
  - Locking laravel/sail (v1.3.1)
  - Locking laravel/tinker (v2.6.0)
  - Locking league/commonmark (1.5.7)
  - Locking league/flysystem (1.1.3)
  - Locking league/mime-type-detection (1.7.0)
  - Locking mockery/mockery (1.4.2)
  - Locking monolog/monolog (2.2.0)
  - Locking myclabs/deep-copy (1.10.2)
  - Locking nesbot/carbon (2.45.1)
  - Locking nikic/php-parser (v4.10.4)
  - Locking nunomaduro/collision (v5.3.0)
  - Locking opis/closure (3.6.1)
  - Locking phar-io/manifest (2.0.1)
  - Locking phar-io/version (3.0.4)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.2.2)
  - Locking phpdocumentor/type-resolver (1.4.0)
  - Locking phpoption/phpoption (1.7.5)
  - Locking phpspec/prophecy (1.12.2)
  - Locking phpunit/php-code-coverage (9.2.5)
  - Locking phpunit/php-file-iterator (3.0.5)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking phpunit/phpunit (9.5.2)
  - Locking psr/container (1.0.0)
  - Locking psr/event-dispatcher (1.0.0)
  - Locking psr/http-client (1.0.1)
  - Locking psr/http-message (1.0.1)
  - Locking psr/log (1.1.3)
  - Locking psr/simple-cache (1.0.1)
  - Locking psy/psysh (v0.10.6)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking ramsey/collection (1.1.3)
  - Locking ramsey/uuid (4.1.1)
  - Locking sebastian/cli-parser (1.0.1)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.6)
  - Locking sebastian/complexity (2.0.2)
  - Locking sebastian/diff (4.0.4)
  - Locking sebastian/environment (5.1.3)
  - Locking sebastian/exporter (4.0.3)
  - Locking sebastian/global-state (5.0.2)
  - Locking sebastian/lines-of-code (1.0.3)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.4)
  - Locking sebastian/resource-operations (3.0.3)
  - Locking sebastian/type (2.3.1)
  - Locking sebastian/version (3.0.2)
  - Locking swiftmailer/swiftmailer (v6.2.5)
  - Locking symfony/console (v5.2.3)
  - Locking symfony/css-selector (v5.2.3)
  - Locking symfony/deprecation-contracts (v2.2.0)
  - Locking symfony/error-handler (v5.2.3)
  - Locking symfony/event-dispatcher (v5.2.3)
  - Locking symfony/event-dispatcher-contracts (v2.2.0)
  - Locking symfony/finder (v5.2.3)
  - Locking symfony/http-client-contracts (v2.3.1)
  - Locking symfony/http-foundation (v5.2.3)
  - Locking symfony/http-kernel (v5.2.3)
  - Locking symfony/mime (v5.2.3)
  - Locking symfony/polyfill-ctype (v1.22.0)
  - Locking symfony/polyfill-iconv (v1.22.0)
  - Locking symfony/polyfill-intl-grapheme (v1.22.0)
  - Locking symfony/polyfill-intl-idn (v1.22.0)
  - Locking symfony/polyfill-intl-normalizer (v1.22.0)
  - Locking symfony/polyfill-mbstring (v1.22.0)
  - Locking symfony/polyfill-php72 (v1.22.0)
  - Locking symfony/polyfill-php73 (v1.22.0)
  - Locking symfony/polyfill-php80 (v1.22.0)
  - Locking symfony/process (v5.2.3)
  - Locking symfony/routing (v5.2.3)
  - Locking symfony/service-contracts (v2.2.0)
  - Locking symfony/string (v5.2.3)
  - Locking symfony/translation (v5.2.3)
  - Locking symfony/translation-contracts (v2.3.0)
  - Locking symfony/var-dumper (v5.2.3)
  - Locking theseer/tokenizer (1.2.0)
  - Locking tijsverkoyen/css-to-inline-styles (2.2.3)
  - Locking vlucas/phpdotenv (v5.3.0)
  - Locking voku/portable-ascii (1.5.6)
  - Locking webmozart/assert (1.9.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 105 installs, 0 updates, 0 removals
  - Downloading nesbot/carbon (2.45.1)
  - Downloading laravel/framework (v8.27.0)
  - Downloading facade/ignition (2.5.11)
  - Downloading laravel/sail (v1.3.1)
  - Installing doctrine/inflector (2.0.3): Extracting archive
  - Installing doctrine/lexer (1.2.1): Extracting archive
  - Installing symfony/polyfill-ctype (v1.22.0): Extracting archive
  - Installing webmozart/assert (1.9.1): Extracting archive
  - Installing dragonmantank/cron-expression (v3.1.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.22.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.22.0): Extracting archive
  - Installing symfony/var-dumper (v5.2.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.22.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.22.0): Extracting archive
  - Installing symfony/string (v5.2.3): Extracting archive
  - Installing psr/container (1.0.0): Extracting archive
  - Installing symfony/service-contracts (v2.2.0): Extracting archive
  - Installing symfony/polyfill-php73 (v1.22.0): Extracting archive
  - Installing symfony/console (v5.2.3): Extracting archive
  - Installing psr/log (1.1.3): Extracting archive
  - Installing monolog/monolog (2.2.0): Extracting archive
  - Installing voku/portable-ascii (1.5.6): Extracting archive
  - Installing phpoption/phpoption (1.7.5): Extracting archive
  - Installing graham-campbell/result-type (v1.0.1): Extracting archive
  - Installing vlucas/phpdotenv (v5.3.0): Extracting archive
  - Installing symfony/css-selector (v5.2.3): Extracting archive
  - Installing tijsverkoyen/css-to-inline-styles (2.2.3): Extracting archive
  - Installing symfony/deprecation-contracts (v2.2.0): Extracting archive
  - Installing symfony/routing (v5.2.3): Extracting archive
  - Installing symfony/process (v5.2.3): Extracting archive
  - Installing symfony/polyfill-php72 (v1.22.0): Extracting archive
  - Installing symfony/polyfill-intl-idn (v1.22.0): Extracting archive
  - Installing symfony/mime (v5.2.3): Extracting archive
  - Installing symfony/http-foundation (v5.2.3): Extracting archive
  - Installing symfony/http-client-contracts (v2.3.1): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v2.2.0): Extracting archive
  - Installing symfony/event-dispatcher (v5.2.3): Extracting archive
  - Installing symfony/error-handler (v5.2.3): Extracting archive
  - Installing symfony/http-kernel (v5.2.3): Extracting archive
  - Installing symfony/finder (v5.2.3): Extracting archive
  - Installing symfony/polyfill-iconv (v1.22.0): Extracting archive
  - Installing egulias/email-validator (2.1.25): Extracting archive
  - Installing swiftmailer/swiftmailer (v6.2.5): Extracting archive
  - Installing ramsey/collection (1.1.3): Extracting archive
  - Installing brick/math (0.9.2): Extracting archive
  - Installing ramsey/uuid (4.1.1): Extracting archive
  - Installing psr/simple-cache (1.0.1): Extracting archive
  - Installing opis/closure (3.6.1): Extracting archive
  - Installing symfony/translation-contracts (v2.3.0): Extracting archive
  - Installing symfony/translation (v5.2.3): Extracting archive
  - Installing nesbot/carbon (2.45.1): Extracting archive
  - Installing league/mime-type-detection (1.7.0): Extracting archive
  - Installing league/flysystem (1.1.3): Extracting archive
  - Installing league/commonmark (1.5.7): Extracting archive
  - Installing laravel/framework (v8.27.0): Extracting archive
  - Installing filp/whoops (2.9.2): Extracting archive
  - Installing facade/ignition-contracts (1.0.2): Extracting archive
  - Installing facade/flare-client-php (1.3.7): Extracting archive
  - Installing facade/ignition (2.5.11): Extracting archive
  - Installing fakerphp/faker (v1.13.0): Extracting archive
  - Installing fideloper/proxy (4.4.1): Extracting archive
  - Installing asm89/stack-cors (v2.0.2): Extracting archive
  - Installing fruitcake/laravel-cors (v2.0.3): Extracting archive
  - Installing psr/http-message (1.0.1): Extracting archive
  - Installing psr/http-client (1.0.1): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing guzzlehttp/psr7 (1.7.0): Extracting archive
  - Installing guzzlehttp/promises (1.4.0): Extracting archive
  - Installing guzzlehttp/guzzle (7.2.0): Extracting archive
  - Installing laravel/sail (v1.3.1): Extracting archive
  - Installing nikic/php-parser (v4.10.4): Extracting archive
  - Installing dnoegel/php-xdg-base-dir (v0.1.1): Extracting archive
  - Installing psy/psysh (v0.10.6): Extracting archive
  - Installing laravel/tinker (v2.6.0): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
  - Installing mockery/mockery (1.4.2): Extracting archive
  - Installing nunomaduro/collision (v5.3.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.4.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.2.2): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/type (2.3.1): Extracting archive
  - Installing sebastian/resource-operations (3.0.3): Extracting archive
  - Installing sebastian/recursion-context (4.0.4): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.2): Extracting archive
  - Installing sebastian/exporter (4.0.3): Extracting archive
  - Installing sebastian/environment (5.1.3): Extracting archive
  - Installing sebastian/diff (4.0.4): Extracting archive
  - Installing sebastian/comparator (4.0.6): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/cli-parser (1.0.1): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.5): Extracting archive
  - Installing theseer/tokenizer (1.2.0): Extracting archive
  - Installing sebastian/lines-of-code (1.0.3): Extracting archive
  - Installing sebastian/complexity (2.0.2): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.5): Extracting archive
  - Installing doctrine/instantiator (1.4.0): Extracting archive
  - Installing phpspec/prophecy (1.12.2): Extracting archive
  - Installing phar-io/version (3.0.4): Extracting archive
  - Installing phar-io/manifest (2.0.1): Extracting archive
  - Installing myclabs/deep-copy (1.10.2): Extracting archive
  - Installing phpunit/phpunit (9.5.2): Extracting archive

75 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files

> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
74 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan key:generate --ansi
Application key set successfully.

インストールされたライブラリを調査

package 内容 host
asm89/stack-cors (v2.0.2) アプリケーションを使用してhttp- {foundation、kernel}のクロスオリジンリソース共有を可能にするライブラリとミドルウェア。オリジン間リソース共有のためのW3C勧告の実装を試み ます。 github
brick/math (0.9.2) 任意精度の数値を処理するPHPライブラリ。 github
dnoegel/php-xdg-base-dir (v0.1.1) PHP用のXDGベースディレクトリ仕様の実装 github
doctrine/inflector (2.0.3) Doctrine Inflectorは、大文字/小文字および単数形/複数形の単語に関して文字列操作を実行できる小さなライブラリです。 github
doctrine/instantiator (1.4.0) このライブラリは、PHPクラスをインスタンス化するときにコンストラクターの使用を回避する方法を提供します。 github
doctrine/lexer (1.2.1) トップダウンの再帰下降パーサーで使用できるレクサーのベースライブラリ。 github
dragonmantank/cron-expression (v3.1.0) PHP cron式パーサーは、CRON式を解析し、実行が予定されているかどうかを判断し、式の次の実行日を計算し、式の前の実行日を計算できます。n個の一致する日付をスキップすることにより、はるか未来または過去の日付を計算できます。 github
egulias/email-validator (2.1.25) 複数のRFCに対して電子メールを検証するためのライブラリ。 github
facade/flare-client-php (1.3.7) PHPエラーをFlareに送信する github
facade/ignition (2.5.11) Ignitionは、Laravel5.5以降で実行されているLaravelアプリケーション用の美しくカスタマイズ可能なエラーページです。 github
facade/ignition-contracts (1.0.2) IgnitionとFlareでソリューションを表示するために使用されるインターフェイス github
fakerphp/faker (v1.13.0) Fakerは、偽のデータを生成するPHPライブラリ github
fideloper/proxy (4.4.1) 信頼できるプロキシを設定すると、リバースプロキシの背後にある場合に、正しいURL生成、リダイレクト、セッション処理、およびLaravelへのログインが可能になります。 github
filp/whoops (2.9.2) whoopsは、PHPのエラーハンドラフレームワークです。 github
fruitcake/laravel-cors (v2.0.3) Laravelにhttps://github.com/asm89/stack-corsを実装します github
graham-campbell/result-type (v1.0.1) 結果タイプの実装 github
guzzlehttp/guzzle (7.2.0) GuzzleはPHPHTTPクライアントであり、HTTPリクエストの送信を簡単にし、Webサービスとの統合を簡単にします。 github
guzzlehttp/promises (1.4.0) スタックサイズを一定に保ちながら、「無限の」Promiseチェーンを可能にする、Promiseチェーンと解決を繰り返し処理するPromises / A +実装。 github
guzzlehttp/psr7 (1.7.0) 完全なPSR-7 メッセージの実装、いくつかのストリームデコレータ、およびクエリ文字列の解析などの便利な機能が含まれています。 github
hamcrest/hamcrest-php (v2.0.1) Hamcrestは、もともとJava用に作成されたマッチングライブラリですが、その後、他の多くの言語に移植されました。hamcrest-phpはHamcrestの公式PHPポートであり、基本的にHamcrest用の元のJava APIの直訳に従いますが、いくつかの例外がありますが、ほとんどがPHP言語の壁にまで及びます。 github
laravel/framework (v8.27.0) Laravelは、表現力豊かでエレガントな構文を備えたWebアプリケーションフレームワークです。 github
laravel/sail (v1.3.1) Sailは、macOS、Windows(WSL2)、およびLinuxと互換性のあるLaravelのDockerを利用したローカル開発エクスペリエンスを提供します。Dockerを除いて、Sailを使用する前にローカルコンピューターにソフトウェアやライブラリをインストールする必要はありません。SailのシンプルなCLIは、Dockerの経験がなくてもLaravelアプリケーションの構築を開始できることを意味します。 github
laravel/tinker (v2.6.0) Laravel Tinkerは、Laravelフレームワークの強力なREPLです。 github
league/commonmark (1.5.7) 高度に拡張可能なPHP Markdownのパーサ github
league/flysystem (1.1.3) PHP用のファイルストレージライブラリです。これは、多くのタイプのファイルシステムと対話するための1つのインターフェースを提供します。Flysystemを使用すると、ベンダーロックインから保護されるだけでなく、どのストレージが適切であるかについて一貫したエクスペリエンスを得ることができます。 github
league/mime-type-detection (1.7.0) このパッケージは、finfoベースの実装を備えた汎用のmimeタイプの検出インターフェイスを提供します 。 github
mockery/mockery (1.4.2) Mockeryは、PHPUnit、PHPSpec、またはその他のテストフレームワークを使用した単体テストで使用するためのシンプルでありながら柔軟なPHPモックオブジェクトフレームワークです。 github
monolog/monolog (2.2.0) Monologは、ログをファイル、ソケット、受信ボックス、データベース、およびさまざまなWebサービスに送信します。以下のハンドラーの完全なリストを参照してください。特別なハンドラーを使用すると、高度なロギング戦略を構築できます。 github
myclabs/deep-copy (1.10.2) DeepCopyは、オブジェクトのディープコピー(クローン)を作成するのに役立ちます。これは、関連グラフのサイクルを処理するように設計されています。 github
nesbot/carbon (2.45.1) DateTimeの国際的なPHP拡張。 github
nikic/php-parser (v4.10.4) これは、PHPで記述されたPHP5.2からPHP8.0のパーサーです。その目的は、静的コードの分析と操作を簡素化することです。 github
nunomaduro/collision (v5.3.0) コマンドラインからアプリを操作するときに美しいエラーレポートを提供するように設計されたパッケージです。 github
opis/closure (3.6.1) すべてのクロージャーをシリアル化できるラッパーを提供することにより、クロージャーのシリアル化に関するPHPの制限を克服することを目的としたライブラリです。 github
phar-io/manifest (2.0.1) PHPアーカイブ(PHAR)からphar.ioマニフェスト情報を読み取るためのコンポーネント。 github
phar-io/version (3.0.4) バージョン情報と制約を処理するためのライブラリ github
phpdocumentor/reflection-common (2.2.0) 一般的なリフレクションクラス github
phpdocumentor/reflection-docblock (5.2.2) PHPDoc標準と100%互換性のあるDocBlockパーサーを提供します。このコンポーネントを使用すると、ライブラリはDocBlockを介して注釈のサポートを提供したり、DocBlockに埋め込まれている情報を取得したりできます。 github
phpdocumentor/type-resolver (1.4.0) 部分的なクラス名を解決しながら、指定された式の一連の値オブジェクトを返し、部分的な構造要素名を完全修飾構造要素名に解決した後、FQSENオブジェクトを返します。 github
phpoption/phpoption (1.7.5) PHPのオプションタイプを実装しています。 github
phpspec/prophecy (1.12.2) PHPオブジェクトモックフレームワーク github
phpunit/php-code-coverage (9.2.5) PHPコードカバレッジ情報の収集、処理、およびレンダリング機能を提供します。 github
phpunit/php-file-iterator (3.0.5) サフィックスのリストに基づいてファイルをフィルタリングするFilterIteratorの実装。 github
phpunit/php-invoker (3.1.1) タイムアウトで呼び出し可能オブジェクトを呼び出す github
phpunit/php-text-template (2.0.4) シンプルなテンプレートエンジン。 github
phpunit/php-timer (5.0.3) タイミングのユーティリティクラス github
phpunit/phpunit (9.5.2) PHPユニットテストフレームワーク。 github
psr/container (1.0.0) 共通コンテナインターフェース(PHP FIG PSR-11) github
psr/event-dispatcher (1.0.0) イベント処理用の標準インターフェース。 github
psr/http-client (1.0.1) HTTPクライアントの共通インターフェース github
psr/http-message (1.0.1) HTTPメッセージの共通インターフェース github
psr/log (1.1.3) ライブラリをログに記録するための共通インターフェイス github
psr/simple-cache (1.0.1) 単純なキャッシュのための共通インターフェース github
psy/psysh (v0.10.6) 最新のPHP用のインタラクティブシェル。 github
ralouphie/getallheaders (3.0.3) これはの単純なポリフィルです github
ramsey/collection (1.1.3) コレクションを表現および操作するためのPHP7.2以降のライブラリ。 github
ramsey/uuid (4.1.1) ユニバーサル一意識別子(UUID)を生成および操作するためのPHPライブラリ。 github
sebastian/cli-parser (1.0.1) CLIオプションを解析するためのライブラリ github
sebastian/code-unit (1.0.8) PHPコードユニットを表す値オブジェクトのコレクション github
sebastian/code-unit-reverse-lookup (2.0.3) コード行が属する関数またはメソッドを検索します github
sebastian/comparator (4.0.6) PHP値が等しいかどうかを比較する機能を提供します github
sebastian/complexity (2.0.2) PHPコードユニットの複雑さを計算するためのライブラリ github
sebastian/diff (4.0.4) 差分の実装 github
sebastian/environment (5.1.3) HHVM / PHP環境を処理する機能を提供します github
sebastian/exporter (4.0.3) 視覚化のためにPHP変数をエクスポートする機能を提供します github
sebastian/global-state (5.0.2) グローバル状態のスナップショット github
sebastian/lines-of-code (1.0.3) PHPソースコードのコード行をカウントするためのライブラリ github
sebastian/object-enumerator (4.0.4) 配列構造とオブジェクトグラフをトラバースして、参照されているすべてのオブジェクトを列挙します github
sebastian/object-reflector (2.0.4) 継承された属性と非公開の属性を含むオブジェクト属性の反映を許可します github
sebastian/recursion-context (4.0.4) PHP変数を再帰的に処理する機能を提供します github
sebastian/resource-operations (3.0.3) リソースを操作するPHP組み込み関数のリストを提供します github
sebastian/type (2.3.1) PHP型システムの型を表す値オブジェクトのコレクション github
sebastian/version (3.0.2) GitがホストするPHPプロジェクトのバージョン番号の管理に役立つライブラリ github
swiftmailer/swiftmailer (v6.2.5) PHP用のコンポーネントベースのメーリングソリューション github
symfony/console (v5.2.3) コンソールコンポーネントを使用すると、美しくテスト可能なコマンドラインインターフェイスを簡単に作成できます。 github
symfony/css-selector (v5.2.3) CSSセレクターをXPath式に変換します github
symfony/deprecation-contracts (v2.2.0) 非推奨通知をトリガーするための一般的な関数と規則 github
symfony/error-handler (v5.2.3) エラーを管理し、PHPコードのデバッグを容易にするツールを提供します github
symfony/event-dispatcher (v5.2.3) イベントをディスパッチしてリッスンすることにより、アプリケーションコンポーネントが相互に通信できるようにするツールを提供します github
symfony/event-dispatcher-contracts (v2.2.0) イベントのディスパッチに関連する一般的な抽象化 github
symfony/finder (v5.2.3) 直感的な流暢なインターフェースを介してファイルとディレクトリを検索します github
symfony/http-client-contracts (v2.3.1) HTTPクライアントに関連する一般的な抽象化 github
symfony/http-foundation (v5.2.3) HTTP仕様のオブジェクト指向レイヤーを定義します github
symfony/http-kernel (v5.2.3) リクエストをレスポンスに変換するための構造化されたプロセスを提供します github
symfony/polyfill-ctype (v1.22.0) ctype_*、ctype拡張子なしでphpバージョンを実行するユーザーに関数を提供します。 github
symfony/polyfill-iconv (v1.22.0) php.net / iconv関数のネイティブPHP実装を提供し ます github
symfony/polyfill-intl-grapheme (v1.22.0) Intl拡張機能からの Grapheme関数の部分的なネイティブPHP実装を提供します 。 github
symfony/polyfill-intl-idn (v1.22.0) Intl拡張子なしでphpバージョンを実行するユーザーに提供idn_to_asciiおよびidn_to_utf8機能します。 github
symfony/polyfill-intl-normalizer (v1.22.0) Normalizer、Intl拡張機能によって提供されるクラスのフォールバック実装を 提供 github
symfony/polyfill-mbstring (v1.22.0) Mbstring拡張機能の部分的なネイティブPHP実装を提供 github
symfony/polyfill-php72 (v1.22.0) PHP7.2コアに追加された関数を提供します。 github
symfony/polyfill-php73 (v1.22.0) PHP7.3コアに追加された関数を提供します。 github
symfony/polyfill-php80 (v1.22.0) PHP8.0コアに追加された機能を提供します。 github
symfony/process (v5.2.3) プロセスコンポーネントは、サブプロセスでコマンドを実行します。 github
symfony/routing (v5.2.3) ルーティングコンポーネントは、HTTP要求を一連の構成変数にマップします。 github
symfony/service-contracts (v2.2.0) ライティングサービスに関連する一般的な抽象化 github
symfony/string (v5.2.3) 文字列にオブジェクト指向APIを提供し、バイト、UTF-8コードポイント、および書記素クラスターを統一された方法で処理します。 github
symfony/translation (v5.2.3) 翻訳コンポーネントは、アプリケーションを国際化するためのツールを提供します。 github
symfony/translation-contracts (v2.3.0) Symfonyコンポーネントから抽出された抽象化のセット。 github
symfony/var-dumper (v5.2.3) 任意のPHP変数をウォークスルーするためのメカニズムを提供します。のdump()代わりに使用できるより優れた関数を提供します github
theseer/tokenizer (1.2.0) トークン化されたPHPソースコードをXMLに変換するための小さなライブラリ。 github
tijsverkoyen/css-to-inline-styles (2.2.3) PHP CssToInlineStylesは、HTMLをインラインスタイルのHTMLに変換するクラスです。 github
vlucas/phpdotenv (v5.3.0) 環境変数をから.envにgetenv()、$ENVそして$SERVER自動的にロードします。 github
voku/portable-ascii (1.5.6) これはPHP(PHP 7+)で記述されており、サーバー上で「mbstring」、「iconv」、またはその他の追加のエンコーディングphp-extensionなしで機能します。 github
webmozart/assert (1.9.1) この拡張機能の主な範囲は、Webmozart\Assert検証後にphpstanがオブジェクトのタイプを検出できるようにすることです。 github

気になったキーワード

Tidelift

オープンソースソフトウェアを継続的に保守してもらうためのマネタイズの仕組み

顧客→Tidelift→オープンソースソフトウェアのメンテナーの流れで報酬が支払われる

REPL

REPL (Read-Eval-Print Loop) とは、入力・評価・出力のループのこと。 インタプリタにおいて、ユーザーとインタプリタが対話的にコード片を実行できるもの。

FQSEN

完全修飾要素名 Fully Qualified Structural Element Name (FQSEN)

Optionタイプ

Optionタイプを使用すると、API開発者はより簡潔なAPIメソッドを提供でき、APIユーザーがこれらのメソッドをどのように使用するかを決定できます。

PSR-11

PSR-11では、依存性注入コンテナの共通インタフェースについて定義しています。

PSR

PSR(PHP Standards Recommendations = PHP標準勧告)とは、PHP-FIG(PHP Framework Interop Group = PHPフレームワーク相互運用性グループ)が策定しているPHPコーディング規約

ポリフィル

ポリフィルとは、最近の機能をサポートしていない古いブラウザーで、その機能を使えるようにするためのコード

UUID

UUID(Universally Unique Identifier)とは、ソフトウェア上でオブジェクトを一意に識別するための識別子