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

PHP関連のことを調べてみた2021年03月23日
目次

Route::postにするとなぜか「The GET method is not supported for this route. Supported methods: POST.」が出る。

#目次
[1.何がおきた?](#何がおきた?)
[2.解決策はこれ!](#解決策はこれ!)

#何が起きた?
Laravel8にて、アップロード画面のルート設定で以下の記述を書いたところ、タイトルのように「**The GET method is not supported for this route. Supported methods: POST.**」のエラーが。。。

“`web.php
Route::post(‘ctrl.upload’, [CtrlController::class, ‘uploaded’]);
“`

原因を探るが、どれを試してみても効果なし。

しかもLaravelのエラー画面が教えてくれる場所は「vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php:117」で、そこちゃうねん(多分)。

頭をひねること数時間、最後は
「うわ、こんなしょうもないことで。。。」
と原因に気づきました。

そうは思ってもプロ

元記事を表示

Laravel はじめました [4. 基礎]

※前回の記事は以下です

https://qiita.com/soso555/items/83de4dc95b49a42e85bd

# 概要
– 今回は [基礎](https://readouble.com/laravel/5.7/ja/routing.html) 編

# 基本的なルーティング

元記事を表示

【Laravel】ルーティングをグループ化する

# Laravelのルーティングをグループ化
“`web.php
group(function(){
Route::get(‘/’, ‘UserController@index’)->name(‘index’);
Route::get(‘/user/{id}’, ‘UserController@show’)->name(‘show’);
});
“`
LaravelにはRoute::nameというメソッド?が用意されているらしい。
Route::nameという記述をすることで、この中のルーティングはどこのコントローラーへのルーティングを定義しているのかをすぐに読み解くことができる。
要するに、可読性を高めることができる。

元記事を表示

【Laravel】Laravelで正しくルート定義ができているか確かめる

# Laravelで正しくルート定義ができているか確かめる
“`
$ docker-compose exec workspace php artisan route:list
“`
これで、ルート定義が正しくされているか確認することができる。

“`
+———+————-+——————+——————+————————————————————–+—————-+
| Domain | Method | URI | Name | Action | Middleware |
+———+————-+——————+—————-

元記事を表示

チェックデジットの計算方法(PHPプログラム)

###チェックデジットの計算方法

チェックデジットの計算方法(プログラム)です、入力の桁数のチェックは
割愛したロジックになります。コマンドラインから実行ください。

尚、参考にサイトより(1)JAN コードのチェックデジットの計算方法を参照して作りました。
http://www.jpo.or.jp/magcode/info/checkdigit.html

“`bash:実行
php CheckDigit.php 491009971074
“`

“`php:CheckDigit.php

元記事を表示

【Laravel】ゲートを使ってみたよ〜

##はじめに
今回は実務で実装していて
ゲートを使って特定のユーザーに対してアクセスを制限させることを
まとめていきます。
ゲートを使わずに実装しようとしたら
10箇所ほどに条件分岐を加えないといけなかったけど
それが一手間で済むのでぜひとも参考にしてみてください!

##認可とは?
そもそも認可ってなんでしょう?
>認可(英: authorization)とは、一般的には情報セキュリティおよびコンピュータセキュリティに関わるリソースへの、とりわけアクセス制御へのアクセス権限を特定する機能である。よりフォーマルにいえば、「認可する (to authorize)」とは、アクセスポリシーを定義することである。例えば、人事部門のスタッフは従業員の記録にアクセスする権限を与えられており、このポリシーはコンピュータシステム内のアクセス制御規則として定式化されているのが普通である。システムはそのアクセス制御規則を使って、(認証された)利用者のアクセス要求を受け入れるか拒否するかを決定する。リソースには、個々のファイルやアイテムのデータ、プログラム、コンピュータハードウェア、コンピュータアプリケーシ

元記事を表示

カスタムフィールドのインストールから出力方法のまとめ

#どうも7noteです。カスタムフィールドのよく使う項目の使い方をまとめました。

Advanced Custom Fields

プラグインの**「Advanced Custom Fields」のインストールから、phpでの出力方法まで**を私が分かりやすく私が使いやすい用に私が良く使うものだけをまとめた記事です。

※すべての機能や変数は紹介しておりません。すべての出力が知りたい方はこちらの記事がわかりやすかったのでこちらへどうぞ。
https://bazubu.com/advanced-custom-fields-36452.html

## ①「Advanced Custom Fields」のインストールから準備

1. WordPressの管理画面から**「プラグイン」→「新規追加」から、検索覧に「ACF」**と打ち**「Advanced Custom Fields」をインストールし有効化**。
2. 同じく管理画面、**サイドメニューの「カスタムフィールド」**をクリック。
3. **「新規追加」を押し、追

元記事を表示

coc.nvimでPHPStanやPHP_CodeSnifferを使う

coc.nvimはVimのLSPクライアント・プラグインの一つです。

https://github.com/neoclide/coc.nvim

cocは自分自身がVimプラグインでありながら、拡張機能(エクステンション)の機構を持っており、LSPサーバをエクステンションをとしてインストールすることで機能を追加することができます。

PHPのLSPサーバのcocエクステンションもいくつかあります。例えばPHPのLSPサーバであるIntelephenseのcocエクステンションとしてcoc-phplsがあります。

https://github.com/marlonfan/coc-phpls

https://github.com/bmewburn/vscode-intelephense

coc-phplsをインストールするとcoc経由でPHPの自動補完・定義ジャンプ・ホバー(ヒント)表示・バグ検出などの機能を使えるようになります。

coc-phplsだけでもある程度のバグ検知は可能ですが、Intelephenseが提供するバグ検出は現時点ではPHPStanに比べると弱く、またPH

元記事を表示

【PHP8.1】その配列、純粋配列?

PHPには配列と連想配列の区別がありません。
むしろPHPの配列は順序付きハッシュであり、その中でも数値のキーは特別に連番で扱える、みたいな扱いです。

“`php
$arr = [
‘hoge’ => ‘fuga’,
‘foo’ => ‘bar’,
‘x’, // キーは0になる
3=>’y’,
‘z’ // キーは4になる
];
“`

しかしまあ区別したいよねってことで、[Add array_is_list](https://wiki.php.net/rfc/is_list)というRFCが提出されました。
既に受理されており、PHP8.1にて実装されます。

# Add array_is_list(array $array): bool

## Introduction

PHPの配列は、整数キーと文字列キーの両方をサポートしており、さらに順序が保証されているという珍しい型です。

変数値が配列であるかのチェックは簡単ですが、その配列は連想配列だったり、オフセットの欠けた配列だったり、順序が異なっていたりする場合があります。
配列のキーが連続した整数であるか否か

元記事を表示

Apache2 の PHP で virtual を使う (ファイル書き込み)

こちらのファイルを改造して、ファイルの書き込みをするようにしました。
[Apache2 の PHP で virtual を使う](https://qiita.com/ekzemplaro/items/8e7fa417cc1e86a0ee38)

次のフォルダーに書き込みます。
>/var/log/apache2/php
>/var/log/apache2/perl

“`php:test_virtual.php

元記事を表示

安易にPHPのバージョンを上げたら色々ハマった(TwitterOAuth編)

#はじめに
自分の忘備録で記事を書いております。技術的に至らない点多々ありますがご容赦下さい。

#今回の記事
前回の記事
安易にPHPのバージョンを上げたら色々ハマった(imagick編)
https://qiita.com/cafe-capitola/items/4c9ba9faad997b299fd9 
の続き。

今回のテーマは「PHPのバージョン上げたら今まで動いてたTwitterOAuthが動かなくなっちゃった」です。

私はTwitterにて細々とbotを運営しています。
仮面ライダーBLACKクレジットbot( https://twitter.com/black_staffrole )

はい、オタクです。しかも色んな意味で炎上してる番組です。

仕様としては番組の1話から最終話、劇場版2作におけるオープニングとエンディングに表示されるキャスト・スタッフのデータをひたすらタイプしたCSV化したファイルを用意。たまに本家の写植が間違ってるとかありますけど、それを突き詰めるとキリがないのでそのままパンチ。
30分毎にファイル内のデータをランダムに1レコード出力するという非常

元記事を表示

配列内のオブジェクトの(プロパティの)取り出し

引用元

PHP オブジェクトやキーの値の取得

dd($attr)

..array:1 [
0 => {#2063
+”is_kawaii”: 1 ←●
}
]

アクセス方法
echo $attr[0]->is_kawaii; // 1

考え方
array直下のものはkey
{key: value}についてはプロパティでアクセスする

元記事を表示

php ログイン機能 セッション

index.php

“`


//action 空だと自分に返ってくる

ユーザーネーム


パスワード




元記事を表示

AzureBlobストレージのファイルをphpで削除する

本当はディレクトリ指定して下層にあるやつ丸ごと削除したかったが
仮想ディレクトリだから出来ないらしいので
対象のディレクトリ内のファイルリストを取得→1ファイルごとに削除処理するしかないらしい
とてもめんどくさい

“`php
public function deleteBlob(){
$listBlobsOptions = new ListBlobsOptions();
$listBlobsOptions->setPrefix(“対象のディレクトリ名”);
$fileList = $this->blobClient->listBlobs(“コンテナ名”, $listBlobsOptions);
foreach ($fileList->getBlobs() as $val){
$this->blobClient->deleteBlob(“コンテナ名”,$val->getName());
}
return ;
}
“`

## 解説
### ListBlobOptionsでプレフィックスを指定する
コンテナ以下の下層ディレクトリにあたる部分を指定

“`
conta

元記事を表示

アクセサが便利なのでまとめてみる件【Laravel 8系】

##とにかくforeachとif文でやれたけど…
今回は実務で初めて知ったLaravelの便利な使い方をまとめていきます。

どんなことを実務でやったのかというと例えば

“`PHP
class UserController extends Controller
{
public function index()
{
$users = User::all();
return view(‘users.index’, compact(‘users’));
}
}
“`
というコントローラがありviewでUserを一覧で表示するみたいなことは
割と良くやることかなと思います。

“`PHP
@foreach ($users as $user)
{{ $user->name }}さん
{{ $user->email }}
続く…
@endforeach
“`
そんなときに今回のUserのDB情報には権限(role)カラムがあって
管理者(1)と編集者(2)と言った1か2の値を持っていて
それに対して自分

元記事を表示

一つのユーザーテーブルを複数のモデルとガードに分ける

## 背景

ロールを元にユーザーテーブルのガードを分けたかった。

実践的には、ガードを分けるよりも、一つのガードでログインした後に権限でアクセス制御したほうがいいと思う。あくまでも実験的なものとして覚え書きを残す。

## 動作環境

– Mac OS X 10.15.7
– Laravel 8.33.1
– Laravel Permission 4.0.0

## プロジェクトの作成

https://qiita.com/uguisu_an/items/82db934bb588273b9d79

## Laravel-Permission の導入

“`sh
composer require spatie/laravel-permission
php artisan vendor:publish –provider=”Spatie\Permission\PermissionServiceProvider”
“`

## モデルの作成

“`sh
php artisan make:model Student -f
php artisan make:model T

元記事を表示

Laravel と MessagePack で遊ぶ

## 動作環境

– Mac OS X 10.15.7
– Laravel 7.x|8.x
– rybakit/msgpack 0.8
– msgpack-tools 0.6

## プロジェクトの作成

“`sh
composer require rybakit/msgpack
“`

## レスポンスの作成

`routes/web.php`

“`php
use MessagePack\Packer;

Route::get(‘/example.mp’, function () {
$value = (new Packer())->pack([
‘id’ => 1,
‘name’ => ‘John Doe’,
‘age’ => 18,
]);
return response($value)->header(‘Content-Type’, ‘application/x-msgpack’);
});
“`

## ターミナルで確認

“`sh
brew install msgpack-tools
php

元記事を表示

PHPアウトプット

エンジニアの卵です

昨年新卒で入社した会社を辞めてテックキャンプを卒業。(84期生)
今年からIT会社でエンジニアとして働きはじめましたが、まだまだわからないことだらけなので、
Qiitaを通して自分の理解度の定着と他の方の記事をみて学んで行きたいなと思います。

今はプロゲートレベルですが、これから胸を貼ってエンジニアですと言えるようにがんばっていきます。

オブジェクト思考

オブジェクト思考とはオブジェクト(もの)を中心とした考え方で
ECサイトでいうところの商品やユーザー、商品を入れるカートなどの1つ1つを指します。

コードを書く際に商品についてのコード、ユーザーについてのコード、カートについてのコードなど分けて記し、またそれらを組み立てながら作成していくため、この考え方が必要になります。

クラスとインスタンス

クラスとはオブジェクトを生成するための設計図のようなものです。
クラスの中に商品についてやメニューについてなど書いていきます。

インスタンスとはクラスを元に生成された実体を言います。
インスタンスとオブ

元記事を表示

Laravelで検索機能実装時に「リダイレクトが繰り返し行われました。」と表示された件

###検索機能作成時に「リダイレクトが繰り返し行われました。」とエラーが発生!
自分なりに調べてみましたが、核心を得た答えに辿り着くことができず、なかなかに苦労したので備忘録として残します。

###まずは検索フォームのコードです。
Formファサードを利用しているので以下のコードになります。

“`PHP:index.blade.php
{!! Form::open([‘route’ => ‘report.index’, ‘method’ => ‘GET’]) !!}
{!! Form::text(‘search’, ”, [‘class’ => ‘form-control’, ‘type’ => ‘search’, ‘placeholder’ => ‘—-年–月’]) !!}
{!! Form::button(‘‘, [‘class’ => ‘btn btn-icon’, ‘type’ => ‘submit’]) !!}
{!! Form::close() !!}
“`

検索フォームに入力された値をind

元記事を表示

駆け出しエンジニアがLaravelを理解するために意識したこと

## はじめに

実務で **PHP, Laravel** を使用することになり、**最低限の理解(土台つくる)をする**上でやったこと・意識したことをまとめました。実務未経験の方や転職して間もないという方向けの記事になっております。

もちろん実務に入ってまだ約1ヶ月半なのでまだまだわからないことばかりですが、今まで学習してきた Ruby, Rails と違うけど大丈夫かなという不安はなくなってきましたので記事にまとめさせていただきました。

これから転職を考えている人もいるかと思います。個人の見解ですが、そのときに言語を特定のものに絞らなくても良いんじゃないかなあと思いましたので、迷われている方や実務で別の言語を触れるのか不安と思っている方の参考になったら幸いです。

## 実務にはいって

最初は今まで学習してきたものとの違いがあり、自分にできるかなあと思うこともありました。ただそれは振り返ってみれば、**これからやっていけるかなあとか不安などから視野が狭くなっていた**のが原因なのかなと思います。細かく具体的に見ていくとどの言語も別のものになってしまうと思いますが、少し**抽象

元記事を表示

OTHERカテゴリの最新記事