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

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

tinkerを使ってみて勉強になった話

MySQLの接続がうまくいかなくて、「解決できたよ!」って記事ではないのですが
「こんな方法あるんだ!」と思ったことがあったので備忘録のため残します。

## tinker

`artisan migrate`コマンドがうまくいかず、エラーメッセージ的に接続が拒否されている内容かなと思ったのでその理由を調べたくてググっていたところ`tinker`でデバッグを調べられることが分かりました。

使い方は簡単でターミナルでコマンドを打つだけです。
Dockerの場合はコンテナに入った状態で行います。

“`
php artisan tinker
“`

そうするとそのまま対話シェルが起動してコマンドを打てるようになります。
以下が実際に入力してみた内容です。

`>>>`の後にそれぞれのコマンドを入力する事で設定内容が確認できます。

“`
>>> config(‘database.default’);
=> “mysql”
>>> config(‘database.connections.mysql.port’);
=> “3306”
>>> config(‘database.con

元記事を表示

SPAにおけるLaravelのCORS設定周辺でつまずいた

# 概要
筆者はエンジニア歴がまだ1年経っていないphpがメインのシステムエンジニアです。
普段の実務ではLaravelは使用しておりません。そのため、不備等がある場合は教えて頂けると幸いです。
今回は友人とSPA開発する際にCORSの設定周辺で苦労したので、今後の自分も含めて共有させていただきます。

# そもそもCORSとは
調べれば詳細が記載されている記事がたくさん見つかると思うので大枠で説明すると、
同一生成元ではないドメインへリクエストの安全性を保証する仕組みです。
CORSに基づいた方法で実装すれば、同一生成元ではないところでもJavaScriptでアクセスすることが可能になると言うことです。
認識違いがあれば指摘していただきたいです。

# 環境
PHP 7.4.16
Laravel Framework 6.18.40

# 発生したエラー
SPAで画像をアップロードする機能を実装したところ、下記のエラーが出力されました…。

““
Access to XMLHttpRequest at ‘http://localhost:8000/api/upload’ fro

元記事を表示

Atomで単語をダブルクリック時に$まで選択するようにする方法

## 概要
PHPなどを利用していると変数のプレフィックスが`$`なので、変数をダブルクリックした際には`$`を範囲に含みたいかと思います。
Atomを使っていたらいつの間にか選択範囲から`$`が除外されていたので変更方法をメモ。

![スクリーンショット 2021-03-21 5.33.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647095/e99f9c67-79b8-4689-162a-da1161f4ca1e.png)
? こうしたい
![スクリーンショット 2021-03-21 5.33.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647095/dac2b50a-e9d4-125f-0f73-60af831a65ae.png)

## 方法
[Atom] → [環境設定] もしくは `⌘+,` → [エディタ設定] を開く
「単語の一部として扱わない文字」を以下のように変更

“` 単語の

元記事を表示

【Laravel】Seedデータを作成する UserSeeder.php

## Seedデータを作成する
“`
$ dokcer-compose exec workspace php artisan make:seeder UserSeeder
“`
laradockを使用しているので、laradockディレクトリに移動してから上記のコマンドを実行する。
ここでは、“UserSeeder“というファイルを作成して、Userに関するデータを登録する。

“`database/seeds/UserSeeder.php

元記事を表示

【Laravel】php artisan make:model ***で作成したマイグレーションファイルの中身

## Laravelのmigrationファイルの中身
“`php
bigIncrements(‘id’);
$table->timestamps();
});

元記事を表示

microCMS 部分的なCMS 導入(無料) プレビュー機能付き

## 背景
以前、ホームページを制作させて頂いた依頼主様から
一部CMSを導入したいとの要望があったので、microCMSを導入してみました。
microCMSの管理ページでカスタム項目を作成し、内容を入力すれば、APIで取得するだけなのでお手軽です。
管理ページの作成や投稿関連の機能などを作る必要がなかったので、開発工数が大幅に削減できました。
WordPressまでは必要なく、部分的にのみCMSを導入したい場合は是非オススメです。
今回は、フリープランで十分でしたので無料で利用できました。

– データ転送料: 100GB
– API数: 10個
– READリクエスト数: 無制限

詳しい料金体系は[こちら](https://microcms.io/pricing)

## [microCMS](https://microcms.io/)でできること
管理ページでカスタム登録した項目(ここでは、商品名・商品画像・商品説明)に内容を追加して公開ボタンを押せば、公開したWEBサイトに即時反映されます。
画面プレビューボタンを押せば、公開前にプレビューも確認することができます。(

元記事を表示

【初心者向け】ServiceProviderを理解するためだけに作ったプロジェクト

## ServiceProviderを理解するためだけに作ったプロジェクト
https://github.com/morry48/PracticeServiceProvider

サービスプロバイダの解説を読んでもなかなか仕組みや使うことのメリットが分からなかったので、
理解するためだけのプロジェクトを作ってみた。

画面に環境構築すると初期画面にクラス名とcry()の実行結果を表示している。

この実装を追うことでサービスプロバイダの使い方と仕組みを理解する。

![スクリーンショット 2021-03-20 17.11.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378609/fe8ff383-82e0-c5c0-b253-8403764a6a11.png)

Animalのインターフェイスとその中にcry()を定義

“`app/Animal/AnimalInterface.php

元記事を表示

変数について(PHP)

# 変数とは
変数とは、例えるなら、**「箱」**のようなものです。
変数(箱)があることによって文字や数値などのデータを入れることができます。
変数にデータを入れることを**「代入」**と言います。
変数からデータを取り出すことを**「参照」**と言います。
変数には名前をつけることができます。それを変数名と言います。
変数を作ることを**「変数を宣言する」**と言います。

# コードの書き方

実際にコードを書いてみます。

“`php

元記事を表示

LaravelのPHPUnitのテストでなぜか500エラーが返る時。

viewがしっかり200レスポンスを返しているかどうかのテストコード。
テスト関係なく、ブラウザの表示を目で見る限り、問題なく表示され、500レスポンスは返って来ていないのになぜか以下の通りに500レスポンスだと指摘される。

“`
$ ./vendor/bin/phpunit ./tests/Feature/ExampleTest.php
PHPUnit 9.5.3 by Sebastian Bergmann and contributors.

Warning: Your XML configuration validates against a deprecated schema.
Suggestion: Migrate your XML configuration using “–migrate-configuration”!

F 1 / 1 (100%)

Time: 00:00.573, Memory: 20.00 M

元記事を表示

PHPの基本

# PHPの出力の仕方

ソースコードの基本の書き方
****は省力可能
これがPHPの記述をする際のルールになる
**””**の中に出力したい文字列等を記述する
そして、処理の終わりには**;**を記述することが決まり

“`php

“`
この状態で出力すると**「初めまして」**と出力されます。

元記事を表示

コードを見ていてもやっとしたこと

#レビュー中にもやっとしたことをまとめる
コードレビューってする側からすると
とてもハードルが高い?と思われ勝ちなイメージなのですが
僕が入っているプロサー内ではある一定ラインまではレビューが活発に行われていて
そのおかげで会社のチーム内でのレビューも率先して出来ている。

そもそもレビューとは
>~Weblio辞書から~
一度決められた物事を、改めて調査したり検討したりすること。現在は、批評や評論という意味合いで使用されることが多い。また、商品や作品などについて、評価を付けたり感想を述べたりすることを「レビューする」と表現する。

と辞書では書かれていましたが僕自身は
>評価を付けたり

よりも
>感想を述べたりすること

これがかなり大事だなと痛感しております。
何が言いたいかって
みんなレビューをすることに対して相手そのものを否定していると勘違いしてるし
レビュー受ける人も自分の技術を否定されていると
勘違いしている人は割と多いのかなと思います。
レビューはあくまでもその人の感想だってことぐらいに留めておけば
お互いに気が楽だろうなぁと感じてます。
実務に入っているとその時の案件

元記事を表示

Ubuntu(WSL2)にComposerをインストールする

# はじめに
こんにちは。移動手段として自転車が欲しくて最近メルカリ、ジモティーをパトロールしてます、筆者です:smile:

# 手順
## 1. インストーラーをダウンロードして実行

“`sh
$ curl -sS https://getcomposer.org/installer | php
“`

## 2. Composerの名前変更とパスが通っているディレクトリに移動

“`sh
$ sudo mv composer.phar /usr/local/bin/composer
“`

## 3. 権限を付加
全ユーザで実行できるようにしてます。

“`sh
$ sudo chmod +x /usr/local/bin/composer
“`

## 4. インストールできたか確認
“`sh
$ composer –version
“`

# おわりに
Composerってインストール方法地味いろいろある気がしてます(公式ページに記載されているやつとか)。
個人的にこれが一番楽だと思ってます:smile:
それでは!

元記事を表示

【php】yahooショッピング API(v3) の使い方

#概要
yahooショッピングAPIの使い方を調べていたところ過去のバージョンであるV1(XML)を使ったものしかなかったためV3(JSON)での使い方を載せる

#とりあえず結果
こちらの値を取得できました。
![api.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543413/25d00987-faaa-dd94-b836-f9aa535ac832.png)
※まさとん3~5は気にしないでください。今回のコードからは削除してます。

#環境
xampp
php5.4
windows10

##とりあえずコード

“`api.php

元記事を表示

Laravel8.xでBreezeを利用したメール認証の実装で見落としていたこと

#目的
– Laravel8.xにおいて,認証のスターターキットとしてBreezeを導入した。
– メール認証機能を追加しようと思ったが,うまくいかなかった。
– 試行錯誤してうまくいった方法と,その理由をこの記事に供養します。

#前提
– 以下のコードでBreezeをLaravelプロジェクトに導入していること.
– 以下の環境です。MAMPでサーバーを立ち上げています。

| ハードウェア | OS |
|:-:|:-:|
| macbookAir2020(Intel) | BigSur 11.3 Beta |

|項目|バージョン|
|:-:|:-:|
|PHP|7.4.2|
|Laravel|8.29.0|
|MySQL|5.7.26|
|MAMP|-|

“`console:console
$ curl -s https://laravel.build/example-app | bash
$ cd example-app
$ php artisan migrate
$ composer require laravel/breeze –dev
$ php arti

元記事を表示

Fatal error: Allowed memory size of 1610612736 bytes exhausted…の一時的な対処法

#概要

Composerでインストールを試みた際にタイトルのエラーが出たので、その一時的な対処法をメモします。

#対処法
このエラーはメモリ不足でインストールできないよと言われているので、メモリの制限を取らなければいけません。

Composerの前に`COMPOSER_MEMORY_LIMIT=-1`をつけます。

“`
COMPOSER_MEMORY_LIMIT=-1 composer require xxxx/xxxx
“`

COMPOSER_MEMORY_LIMIT=-1 とつけることで一時的にphp.iniで設定したメモリを無制限にすることができます。

元記事を表示

PHP5上級試験/準上級試験の上級合格に挑戦(12) 上級落ちました

# 結果は

今日が試験。
結果はタイトルの通り。

前が800点ちょうど、で、今回が825点。まあ準上級だけど。
正直前よりかなり自信があっただけ結構ショックだった。
もちろん受かるまでチャレンジし続けるので、続ける。
ここまできたらもう受からないとお金がもったいない。(落ちるのももったいないんだけど)

ひとまず、結果を見比べてみようと思う。

# 結果内訳

3章から13章までは全部100%を目指してやってきたが、
それでもそのままのところもあったり、逆に前回よりも悪かったところもあった。
↑が6個、→が9個、↓が4個と、以前と比べると上がってるところが多くなってきている。
感想としては、なかなか劇的に点数アップが図れておらず、現状維持なところが多い。
特にフィルターはかなり勉強しただけあってちょっと0点なのはびっくりした。
どんな問題だったかは忘れたのだが。。。

| 目次| 出題割合 |前回|今回|判定|
|:—-|:————|:–|:–|:–|
| 1章 PHPについて |0 |-|-|-|
| 2章 PHP言語の基本 |0 |-|-|-

元記事を表示

【ペチオブ】仮想環境ハンズオン 第3回 Vagrant編

## シリーズ記事

1. [Linux基礎編](https://qiita.com/ucan-lab/items/683658dbeb6f81c4c73f)
2. [VirtualBoxハンズオン](https://qiita.com/ucan-lab/items/d06f9ab9946598b53421)
3. **Vagrantハンズオン**
4. Dockerハンズオン(近日公開予定)
5. Docker Composeハンズオン(近日公開予定)

## 今回の目的

今回の目的は、VirtualBox上にVagrantを使ってUbuntu OSのインストール、PHPの実行環境の構築を行います。

## YouTube版 【ペチオブ】仮想環境ハンズオン 第2回 VirtualBox編

[![【ペチオブ】仮想環境ハンズオン 第3回 Vagrant編](http://img.youtube.com/vi/4n1Jd3WTt0U/0.jpg)](https://www.youtube.com/watch?v=4n1Jd3WTt0U)

動画を高評価、チャンネル登録いただけるとより多

元記事を表示

Laravel ウェブサイト サイバーセキュリティ#3 -セッション乗っ取り-

#概要
Laravelを用いたウェブサイトのサイバーセキュリティについて考察。
サイバーセキュリティに関して全く考えずにコーディングした後、「あれ、セキュリティのこと全く考えてないな」と気づいて調べてみたところ、結果的にlaravelフレームワークでほとんど対策できていた。

第三回は、**セッション乗っ取り**に関して。
参考: https://www.ipa.go.jp/security/vuln/websecurity.html

#環境
* Windows 10
* PHP 8.0.0
* laravel 8.16.1

# セッションハイジャック
## 概要
複数サイトにまたがって(cross site)、悪意のあるスクリプトを実行させる(scripting)攻撃。
【流れ】
1. 攻撃者が、脆弱性のあるサイトに不正なスクリプトを埋め込んだURLを仕込む。
2. ユーザがURLにアクセスし、不正なスクリプトを含んだwebページが表示される。
3. ユーザのウェブブラウザで不正なスクリプトが実行される。

## 脅威
– 正規のウェブページと異なる情報が表示されてしまう。フィッ

元記事を表示

WordPressで固定ページにカテゴリーを付与する方法

WordPressで固定ページにカテゴリーを付与する方法を探していたら参考サイトを見つけたのでメモ。

WordPress管理画面から「外観」→「テーマエディター」→「function.php」に以下のコードを記述

“`php
add_action(‘init’,’add_categories_for_pages’);
function add_categories_for_pages(){
register_taxonomy_for_object_type(‘category’, ‘page’);
}
add_action( ‘pre_get_posts’, ‘nobita_merge_page_categories_at_category_archive’ );
function nobita_merge_page_categories_at_category_archive( $query ) {
if ( $query->is_category== true && $query->is_main_query() ) {
$query->

元記事を表示

特定の領域だけBasic認証を掛けない

特定の領域だけBasic認証を掛ける記事は山ほど出てくるのだが…

開発中のページは非公開にしておきたいけどapiだけはrestfulなので叩けるようにしておきたい
ディレクトリであればapi置いてるところにもう1個.htaccess置けばいいのだが
URLがエイリアスである場合は特定の文字列を許可領域として設定する必要がある

“`apache
AuthType Basic
AuthName “Please enter your ID and password”
AuthUserFile /var/www/.htpasswd

SetEnvIf Request_URI “/*api*” auth_dir
SetEnvIf Request_URI “^/index.php$” auth_dir
# assets類は必要に応じて追加
SetEnvIf Request_URI “.(svg|js|ico)$” auth_dir


Require valid-user
Require env auth_dir

“`

元記事を表示

OTHERカテゴリの最新記事