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

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

【PHP】Facebook広告APIをcurlで操作したい!

#はじめに

今まで広告関係では、

・Google広告のAPI
・Yahoo検索広告
・Yahooディスプレイ広告

について、
**ライブラリを使わず直で叩く!**をモットーに
あれこれ調べ試行錯誤して導入してきました。
YahooはAPIを統一してくれ。。。

APIで使ってきた機能は
広告費やクリック数、インプレッション数などの
レポート情報を取得することと、
入札単価を更新すること。

さて、そんな中、
今回新たにFacebook広告もAPI化したいということで、
運用の方から調査依頼がきましたよ!わくわく!!

調べてみたところ、FacebookのAPIは通称**グラフAPI**というらしい。
2021/12現在の最新バージョンはv12.0。
ドキュメントは[こちら](https://developers.facebook.com/docs/graph-api?locale=ja_JP)

一方、Facebook広告で使いたい機能を検索して
出てくるのは**マーケティングAPI**。
ドキュメントは[こちら](https://developers.facebook.com/

元記事を表示

LarastanでLaravelプロジェクトを静的解析しよう!

# はじめに
[Laravel Advent Calendar 2021](https://qiita.com/advent-calendar/2021/laravel) 2日目の投稿です。
PHPのソースコードの品質管理はどのように実施していますでしょうか。

チームで開発している場合はコーディング規約に従ってコードレビューを実施している場合もあるかと思います。
しかし、コードレビューを人の手で実施している場合は以下のような問題があるかと思います。

# 人力によるコードレビューのつらみ

* レビューに時間がかかる
* 修正コード量が多いと修正差分を見ただけで「うっ・・・」っとなります

* ルール違反していても見逃してしまう場合がある
* ルールが増えれば増えるほどチェック漏れのリスクが増加します

* コードレビューしてくれる人を探さなければならない
* コードレビューできる人が限られている場合、修正したコードがマージされるまでにかなり時間差が生まれることも

* コードレビューできない人をできるように育てないといけない
* 特定のスーパープログ

元記事を表示

Laravel de Lambda

PHP Laravelをサーバーレス化する方法として、[AWS SAM](https://aws.amazon.com/jp/serverless/sam/)を使用した手順は[Amazon Web Services ブログ](https://aws.amazon.com/jp/blogs/news/the-serverless-lamp-stack-part-4-building-a-serverless-laravel-application/)で公開されています。
今回は[コンテナイメージ](https://aws.amazon.com/jp/blogs/news/new-for-aws-lambda-container-image-support/)化することで、より簡単に`AWS Lambda`上で動かす手順を記載します。

# 前提
## PHPをサーバーレス化するための必須ライブラリ
– [bref](https://bref.sh/)
– 拡張機能
– [brefphp/extra-php-extensions](https://github.com/

元記事を表示

Laravelについて

#Laravelとは
PHPのフレームワークで、webアプリケーションを制作に用いられる。
## 1 MVCモデルを活用している。
MVCとはビジネスロジックをModelが担当し、表示などをViewが処理に、全体の制御を Controllerで行う形態いなる。
## 2パッケージ管理はComposerを行なってくれている。
依存関係などもまとめてインストールしてくれる。
## 3 Eloquent(エロクアント) ORM
 データベスの操作を行なってくれている。
Eloquent Object Relational Mappingの略で、データベースとモデルにリレーションを持たせて、データを柔軟に扱えるようにしたもの。

#Laravelのディレクトリ構成
““`
─── Laravel
├── app
├── bootstrap
├── config
├── database
├── public
├── resources
├── routes
├── stor

元記事を表示

laravel8 Storageファサードのドライバの振る舞い

# 目的

– `Storage::get()`の振る舞いについて若干詰まったので簡単にまとめておく

# Storageファサードの振る舞い

– そもそもStorageファサードは`disc()`メソッドや.envで指定しない限り`config/filesystems.php`の`’default’`で指定されたドライバを参照しにいく。
– ここで言うドライバとはローカルとかS3とかの記憶する「場所」の話である。
– 完全にデフォルトの場合下記のように記載されてlaravelプロダクトのローカルを参照するようになっている。

“`config/filesystems.php
/*
|————————————————————————–
| Default Filesystem Disk
|—————————————————-

元記事を表示

プログラミング初学者が「変数って何なの???」を乗り越えた話

この記事は、2021年4月にプログラミングを始めたわたしが
最初にぶつかった壁である「変数って何なの???」をなんとか乗り越えたよ〜という内容です。
初学者の方で、当時のわたしと同じように悩んでおられる方のお役に立てましたら嬉しいです。



## ■ 最初の壁
プログラミングって何か楽しそう〜と思い、
「プログラミング言語ってこんなにいっぱいあるんだー」とか「フレームワークって何w」とか、
基礎知識ゼロの状態だったわたしが、アハハウフフな気持ちで最初にさわり始めたのはPHP(Laravel)でした。

おそらく初学者の登竜門(?)であるToDoアプリを作り始めるやいなや
ぶつかった最初の壁は、そう、タイトルにも冒頭にも書いたとおり、「変数って何なの???」というやつです。
それはそれはもうめちゃくちゃ検索しました。
`変数とは` `変数って何` `変数とはつまり` `変数 わからない` `変数 意味` etc…

**あああああああ〜調べても調べても書いてあることが理解できない〜〜**

“`php:user.php
‘user_id’ => $user_id;

元記事を表示

Laravel 7.* にbootstrapを導入する方法

Laravelにbootstapを導入する方法

まずは、自分の環境を確認する。

“`php:qiita.rb
$ composer -v
Composer version 2.1.11 2021-11-02 12:10:25

$ php artisan –v
Laravel Framework 7.30.5
“`

環境を確認できたら、実際にLaravelを組み込みましょう。
Laravel6~からbootstrapが使えなくなったので、自身で使えるようにしないといけません。

まずは以下のコードをターミナル上でコマンドしてみましょう。

“`php:qiita.rb
$ composer require laravel/ui
“`

おそらくエラーが起きるのではないかと思います。

バージョンを指定して、インストールする必要があります。
私はLaravel7.30.5ですので、2系にあたります。

“`php:qiita.rb
///1系
$ composer require laravel/ui:1.*

///2系
$ composer require la

元記事を表示

PHPの正規表現を具体例を見ながら紐解いてみる

業務で正規表現に触れる機会があったのですが全くと言っていいほど理解していなかったため、備忘も兼ねて改めて整理してみました。

本記事では正規表現の記法を詳述するものではなく、実際に使用される機会の多いパターンを紐解いていくことで、概要を把握することを目的とします。

より詳しい内容は各種リファレンス等をご参照ください。また今回はPHPでの記法になります。

# そもそも正規表現って何?

ネット上のいくつかの記事を参考にしたところ、共通して抽出できる言葉は以下のようなものでした。

__『正規表現とは、いくつかの文字列を一つの形式で表現するための表現方法』__

文面上では分かりづらいので具体例で考えてみようと思います。

例えば、果物を表すこれらの文字列を一つの形式で表現してみるとどのようなものになるでしょうか?

“`
apple
pineapple
melon
Strawberry
Orange
“`

上記5つの文字列を正規表現で表記すると以下になります。

“`
//果物を示す文字列を正規表現で表記
[a-z]+
“`

以下で説明していきます。

まず[a-z]は

元記事を表示

techpitのlaravel講座の手順通りにやっていたらTarget class [UserController] does not exist.が出た件

techpitのlaravel講座をやっていたら

![スクリーンショット (1622).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2281946/1f81358b-12dd-7807-d556-b1b546718995.png)

とあった。
しかし、ユーザーコントローラーファイルはちゃんとあるし、クラスもある
講座通り進めていたが、誤字などがあると思ったので、今度は講座のコードを完全コピペで試してみた
![スクリーンショット (1622).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2281946/1f81358b-12dd-7807-d556-b1b546718995.png)

はい、ダメでした

原因

私のlaravelのバージョンが8で、講座で使用しているlaravelのバージョンが6だった

laravel8とlaravel6では、ルーティングの仕様が変わって違うことが判明(正確には

元記事を表示

まだレビューでそんなやりとりしてるの?PHPStanとPHP-CS-Fixerを導入して楽しよう(Github Actionsを添えて)

# はじめに

`弁護士ドットコム Advent Calendar 2021` 記念すべき1日目?(2年連続)

> 本記事はあくまでも、Laravel MeetUp Okinawa でお話しした内容を記事にしたものになります。

# 本題

突然ですが、レビューでこんな事を言われた/言った経験はないだろうか。

**「インデント!!これもう指摘するの3回目!!」**

**「ここの変数未定義だし、ここも型合ってないよ!!」**

……………
…………………………
………………………………………

`指摘された側` はその場では反省して、気をつける事だろう。
しかし、所詮は人間。同じミスはしてしまう。

`指摘する側` も同じことを注意するのは面白いものではないし、
何よりロジックや設計のレビューに集中してレビューしたい。

# 静的解析と自動整形を導入してみない?

そんな時に `静的解析` と `自動整形` の導入を検討してみよう。

# 静的解析(PHPStan)

プログラムコードを実行せずにドキュメントやソースコードなどのチェックによって誤りや脆弱性を検出するテスト手法。

元記事を表示

1年半振りのメジャーバージョンアップ(予定)!Laravel9の新機能ピックアップ!

[Laravel Advent Calendar 2021](https://qiita.com/advent-calendar/2021/laravel) 1日目の投稿です。
来月(2022年1月)、1年半ぶりのLaravelのメジャーバージョンアップするのでLaravel9の主要な変更点をまとめてみました。

## リリース日

– Laravel 8: 2020年9月
– Laravel 9: 2022年1月(予定)
– Laravel 10: 2023年1月(予定)
– Laravel 11: 2024年1月(予定)

[Symfony6.0](https://github.com/symfony/symfony/releases/tag/v6.0.0)が2021年11月30日にリリースされました。それに伴ってLaravel 9のリリースが2022年1月に延期されています。
また、Laravel 9以降は半年周期のメジャーリリースが1年周期になっています。

|Version|PHP (*)|Release|Bug Fixes Until|Security Fixes Unti

元記事を表示

Laravelでポケモン図鑑をつくってAWSでデプロイまでしてみた

[株式会社やどかり](http://www.yadokari.tv/)のカイノと申します。
アドベントカレンダーを作ってみんなに書いてください〜って言ってやってもらってる張本人です。

今年もう少しで終わりだー今年もクソお世話になりましたー!

[やどかり&ネッコス Advent Calendar 2021](https://qiita.com/advent-calendar/2021/yadokari_qiita)の1日目を担当させていただきます。
明日は圭ちゃんです

# はじめに
2020年8月に入社して2021年6月までWeb開発をやってました。
2021年の7月からAndroid開発とWeb開発の2足のワラジでやってます。
今年はエンジニアとしてだけでなくマネジメント系の仕事もかなり増えててそっちもめちゃくちゃ面白いのですがやっぱりコード書いている時間は楽しいなとこの開発をしている時に改めて思いました。

去年も[似たような記事](https://qiita.com/kaino5454/items/e12a0214c76aea6cdc2b)を書いたのですが以前よりはレベルア

元記事を表示

BitbucketからGithub、そして伝説へ…

# はじめに

今年もアドベントカレンダーはじまりました!
この記事はHamee Advent Calendar 2021の1日目の記事です。
Hameeのエンジニアが自分の興味あるテーマについて自由に書いていきます。
毎年一緒に参加して盛り上げてくれる皆さんに感謝です :clap:
今年で7年目の参加となりました!

Hamee開発部は長年Bitbucketを使ってきましたが、つい最近Githubへ切り替えを行いました。

* BitbucketからGithubへの移行の仕方の説明
* Bitbucket PipelinesからGitHub Actionsへの移行の仕方の説明

これらについてまとめていきたいと思います。

# BitbucketからGithubへの移行

こちらの記事が大変参考になりました。
[2段階認証有効のBitbucketからGitHubにリポジトリをインポートする](https://ryuta46.com/1249)
Githubの[インポート用ページ](https://github.com/new/import)にBitbucketのリンクを指定してインポ

元記事を表示

【PHP8.1】PHP8.1がリリースされたので新機能全部やる

[PHP8.1](https://qiita.com/rana_kualu/items/e350b8ff80f929626eb9) / [PHP8.0](https://qiita.com/rana_kualu/items/c110cb244c3ee38c6859) / [PHP7.4](https://qiita.com/rana_kualu/items/50f9f5735321fe995ff5)

2021/11/26にPHP8.1.0が[リリースされました](https://www.php.net/)。
大きな新機能については、PHP8.0以降公開されるようになった[ランディングページ](https://www.php.net/releases/8.1/en.php)で見ることができます。

ここでは、概要ではなく[UPGRADING](https://github.com/php/php-src/blob/php-8.1.0/UPGRADING)に載っている変更点を全部見て回ることにします。

# Backward Incompatible Changes

下位互換性のな

元記事を表示

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = hogehoge and table_name = migrations and table_type = ‘BASE TABLE’)

# 前提
・Mac m1チップ
・Laravel8系
・MySQL8系
・PHP7系
・envファイルに正しくDB情報を書いた。 ← ここまでちゃんと切り分けしましたか?

#補足:.envに正しく書いたらしいことを確認する方法
・ターミナルで下記を打って、パスワードをちゃんと入力して入れますか?

“`php
mysql -u 書いたユーザー名 -p
show databases;
“`

・下記コマンドを打って、対象DBをちゃんと用意したことを確認しましたか?

“`php
show databases;
“`
 → 結果に対象のDB名が出て来れば良い。

・接続先がDockerのMySQLコンテナである場合、別途調べてください。

#注意
・タイトルのhogehogeを接続先となるDB名に置き換えて、もし手元のエラーと等しくないならやらない方が良いかもしれません。DBなので。(とは言っても、やってしまっても大丈夫なよう新規ユーザーを作成するような形にしてます。)

# 解決方法
・利用しているユーザーのパスワードを「mysql_native_password」で変更

元記事を表示

laravel8 超絶簡単なCRUD処理を作る

# 目的

– laravel8にて超絶簡単なCRUD処理を含んだWebアプリを作る方法をまとめる

# 環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Big Sur(11.6) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.11 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Laravel バージョ

元記事を表示

property_exists()でstatic|selfを使う

##はじめに
静的クラス(関数)で自身のクラスのプロパティが存在するか調べたい、という願いを叶える記事です。

##解決
普通に書くとこうなります。

“`php:ダメな例
public static function existsFoo() {
return property_exists(static, ‘foo’);
}
“`

しかし、この状態だとこんなエラーが出ます。

>syntax error, unexpected token “,”, expecting “:”

もう答えは書いてありますが、さっぱりわからない、という方もいると思います。

まずは、正解をご覧ください。

“`php:正解例
public static function existsFoo() {
return property_exists(static::class, ‘foo’);
}
“`

`static`に`::class`を付け加えました。

>::classとは
> class キーワードでもクラス名の解決を行うことが出来ます。 クラスの名前が ClassNam

元記事を表示

Nikita Popov、PHP開発から離れる & PHP財団設立のお知らせ

# Nikita、会社辞めるってよ

https://externals.io/message/116475

“`text
The first is that I’m changing jobs at the end of the month, and won’t be working on PHP in a professional capacity anymore.
I’ll still be around, but will have much less time to invest in PHP development.

今月末で転職するため、今後仕事としてPHPに関わることはなくなります。
今後も活動は続けますが、PHPに関わる時間はずっと少なるでしょう。
“`

Nikita Popovは、ここ数年のPHPエコシステムを主導してきた人物です。

それまでもボランティアで[年間1000以上のContribute](https://github.com/nikic?tab=overview&from=2018-12-01&to=2018-12-31)をしていたのですが

元記事を表示

PHP sort array by key

“`php
$name = array_column($projects, ‘name’);
array_multisort($name, SORT_ASC, $projects);
“`

元記事を表示

MAMPでローカルDB開発環境(確認編)

このページでは、下記の内容を解説していきます。

  • Laravelで作成したページを確認する
  • ターミナルでMAMPのMySQLにログインする方法

MAMP環境にLaravelを制作された方は、このページを参考に、それぞれブラウザで開いて確認してみましょう。

Laravelで作成したページを確認する

Laravelでは、artisanコマンドでビルトインWEBサーバーを起動することができます。
まず、Laravelの中にcdコマンドで移動します。

ターミナルで以下のコマンドを入力して下さい。

cd /Applications/MAMP/htdocs/Laravel

続けて、サーバーを起動します。

元記事を表示

OTHERカテゴリの最新記事