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

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

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

“`

元記事を表示

php公式dockerイメージで使えるphp拡張を調べる

## はじめに

https://hub.docker.com/_/php

– phpの公式dockerイメージでは`docker-php-ext-configure`, `docker-php-ext-enable`, `docker-php-ext-install`でphp拡張を管理できる
– dockerイメージの/usr/src/php.tar.xzにphp拡張のソースコードが予め含まれており、`docker-php-ext-*`でphp拡張を追加で有効にしたり、コンパイルオプションを調整して再ビルドしたりできる仕組みになっている
– 扱えるのは事前にソースコードが用意されている分のみ

## `docker-php-ext-*`で扱えるphp拡張を調べる

`docker-php-ext-install`のhelpを見ればわかる。

“`bash
$ docker run –rm -it php:7.3-cli-alpine docker-php-ext-install
usage: /usr/local/bin/docker-php-ext-install [-jN]

元記事を表示

【Laravel】Collectionのfilter後に、APIのJSONレスポンスでオブジェクトとしてレスポンスされてしまった

# はじめに
Laravelで、Collectionのfilter後に、Collection内の配列にkeyが付与されてしまい、
「APIのJSONレスポンスで配列ではなくオブジェクトとしてレスポンスされてしまう」
というケースが発生したので、メモとして残しておきます。

– PHP 7.4.14
– Laravel 7.27.0

# 結論
Collectionクラスの `values()` メソッドでキーをリセットする
[Laravel 7.x コレクション : values()](https://readouble.com/laravel/7.x/ja/collections.html#method-values)

# 問題になったケースのサンプル
商品テーブルから取ってきた内容に対して、filterした結果をmapでidだけにする。

“`php
Product::query()
->get()
->filter(function (Product $product) {
return $product->amount >= 100; /

元記事を表示

Laravel8 + Vue.js を利用したSanctum認証

# 概要
筆者はエンジニア歴がまだ1年も経っていませんが、主にphpをメインとしたシステムエンジニアをしております。
普段の実務ではLaravelは使用しておらず、個人的に勉強するべくLaravelを用いたSPA開発において、認証サービスにSanctumを使用するため自分向けにまとめておきます。
Laravelには他の認証サービスも備わっているため、その辺の違いや実装方法もいずれまとめていきたいと考えています。
基本的にはドキュメント通りに進めているだけなので、下記のドキュメントを参考にしていただければと思います。
それに付随して、自分に起きたエラーの解決方法等も共有していきたいと思います。

https://laravel.com/docs/8.x/sanctum

# 環境
PHP 7.3.11
Laravel Framework 8.33.1
## Sanctumインストール
メモリ確保エラーを回避も含めて、以下のコマンドを実行します。

““
$ COMPOSER_MEMORY_LIMIT=-1 composer require laravel/sanctum
$ php

元記事を表示

PHPのORM idiorm 自分的メモ

PHPのオブジェクト関係マッピング(Object-relational mapping、O/RM、ORM)について自分でよく使うものをまとめました。

# select
### 基本select
“`php
// find_many
$people = ORM::for_table(‘person’)->find_many();

// select_many
$people = ORM::for_table(‘person’)->select_many(‘name’, ‘age’)->find_many();
“`

### selectその他いろいろ
“`php
// カラムのalias
$people = ORM::for_table(‘person’)->select_many(array(‘first_name’ => ‘name’), ‘age’, ‘height’)->find_many();

// limit
$people = ORM::for_table(‘person’)->where(‘gender’, ‘female’)->limit(5)->of

元記事を表示

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

# はじめに
こんにちは。GutHubで管理している職務経歴書が定期的にcloneされている筆者です:thinking:

新しいPCのセットアップをしてまして、PHPをインストールしたいのですが、せっかくなので最新のPHP8をインストールしていこうと思います :muscle:

# 手順
## 1. software-properties-commonをインストール
外部リポジトリを使用するため、リポジトリ管理に必要な**software-properties-common**をインストールします。

“`sh
$ sudo apt install software-properties-common
“`

## 2. リポジトリ追加
**ppa:ondrej/php**リポジトリをaptに登録します。

“`sh
$ sudo apt-add-repository ppa:ondrej/php
“`

↓ こんなの出てきますが、**続けるならEnter押して**と言われているので**Enter**押してください。

“`
Co-installable PHP vers

元記事を表示

PHPで開発する方法。LAMP,MAMP,XAMPPについて

phpで開発してみたいけど、どうしたらいいかわからない人向けです。

まずパソコンでphpの実行環境をつくるには
phpをダウンロードし,サーバーを立てることが必要です。
さらに、
データを保存したい場合はMySQLが必要です。
![ev024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/002d2925-cb90-96ef-44f9-9e606a6e3820.jpeg)
この実行環境作りって結構めんどくさく、初心者にはハードルが高いです。

それを解決してくれるのが
**LAMP,MAMP,XAMPP**です。
![ev025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/0bdbe74b-25ca-b846-ac3d-1e87d4dff8a9.jpeg)
仮想化・・・コンピュータの中に別のコンピュータを再現すること。

それでは説明していきたいと思います。

#仮想化

||LAM

元記事を表示

dockerでcomposer require が killed になる場合の対応

# はじめに
dockerで構築したLaravel環境にて[nunomaduro/larastan](https://github.com/nunomaduro/larastan)をinstallしようとしたところKilledとなり失敗。

“`shell-session
$ composer require –dev nunomaduro/larastan
(中略)
Killed
“`

# 環境
– docker for mac

# 解決策
調べてみるとどうやらPHPのメモリ不足が原因のようで一旦メモリ使用量を無制限に。

“`php:php.ini
memory_limit = -1
“`

コンテナ内にて反映確認。

“`shell-session
$ php -i | grep memory_limit

memory_limit => -1 => -1
“`

再度実行してみるも解決せず。。

“`shell-session
$ composer require –dev nunomaduro/larastan
(中略)
Killed
“`

Dock

元記事を表示

[PHP] json_encode の第2引数を整数で指定する

値をJSON形式にして返す関数が json_encode です。
第2引数にエンコードのオプションを指定できます。

# 結論

定数と整数,どちらで指定しても同じです。
以下が対応表になります。[参考](https://www.php.net/manual/ja/json.constants.php#115783)

“`php
JSON_HEX_TAG => 1
JSON_HEX_AMP => 2
JSON_HEX_APOS => 4
JSON_HEX_QUOT => 8
JSON_FORCE_OBJECT => 16
JSON_NUMERIC_CHECK => 32
JSON_UNESCAPED_SLASHES => 64
JSON_PRETTY_PRINT => 128
JSON_UNESCAPED_UNICODE => 256

JSON_ERROR_DEPTH => 1
JSON_ERROR_STATE_MISMATCH => 2
JSON_ERROR_CTRL_CHAR => 3

JSON_ERROR_SYNTAX => 4

JSON_ERROR_UTF8 => 5

元記事を表示

git push heroku main時のエラー

laravelで制作したものをherokuでデプロイしようと思い、git push heroku mainコマンドを実行した時のエラーを記載します。

““
remote: In order to use the Auth::routes() method, please install the laravel/ui pa
remote: ckage.
remote:
remote:
remote: Script @php artisan package:discover –ansi handling the post-autoload-dump event returned with error c

元記事を表示

Laravel + XAMPP + macで環境構築

## 今回やること
以下の環境でHelloWorldを出力するところまでやります。

OS macOS BigSur 11.2.2
Laravel 6.20.18
XAMPP 7.3.27

## composerのインストール
Composerとは、PHPのパッケージ管理システムです。
Laravelのインストールで後々使うことになるので、まずはComposerをインストールする必要があります。
以下のページのManual Downloadから最新版をダウンロードしてください。(この記事執筆時点では2.0.11)
https://getcomposer.org/download/ 

これでcomposer.pharがダウンロードフォルダにダウンロードされたと思うので、/usr/local/bin/composer に配置します。

“`
mv ~/Downloads/composer.phar /usr/local/bin/composer
“`
composerのパーミッションを設定し、実行権限を付けます。

“`
chmod a+x /usr/local/bin/comp

元記事を表示

Laravel はじめました [3. 構成の概念]

※前回の記事は以下です

https://qiita.com/soso555/items/94a1d97545599dd18035

# 概要
– 今回は [構成の概念](https://readouble.com/laravel/5.7/ja/lifecycle.html) 編

# リクエストのライフサイクル
## 概論
– リクエストの受け口は “`public/index.php“` のみ
– Composerが生成したオートローダーの定義をロードする
– “`bootstrap/app.php“` からアプリケーション/サービスコンテナのインスタンスを取得する

## HTTP/Consoleカーネル
– “`app/Http/Kernel.php“`
– 送信されたリクエストを渡され、処理する。全リクエストフローの中心に位置し動作する
– “`Illuminate\Foundation\Http\Kernel“` クラスを継承し拡張している
– エラー処理、ログ設定、アプリケーション動作環境の決定、そのほか実際にリクエ

元記事を表示

【Laravel】LaravelでMVCの「M」にあたるモデルを作成する

“`
$ docker-compose exec workspace php artisan make:model Product –migration
“`

“docker-compose exec workspace“これでworkspaceコンテナへ向けてということ。

“`
php artisan make:model
“`
これで、モデルをつくってくださいね!ということ。
その後ろに、作りたいモデル名を記述する。
ここではProductテーブルを作成したいため、頭文字は大文字で“php artisan make:model Product“とする。

“`
–migration
“`
最後に上の“–migration“オプション、これを記述することでマイグレーションファイルも一緒に作成してくれる。

元記事を表示

OTHERカテゴリの最新記事