- 1. Push Notification Using OneSignal Rest API with PHP
- 2. 時代はPHP8だしFizzBuzz書いた
- 3. phpフレームワークLaravelって何?環境構築の前にちょっと待った!使用用途を徹底解説!!
- 4. 【電話番号抽出】英数全角記号特殊文字が入り混じった文字列から数字だけを抽出する。ついでに全角数字は半角数字に変換する。
- 5. phpでWordpressの動画をランダム再生する方法
- 6. WSL2のUbuntuでPHPStanを使う(VSCode)
- 7. PHPでnull判定関数(isset, empty, is_null)の違い
- 8. word pressにてgoogle vision apiを使い画像の検索機能を作成する
- 9. wpにてdebugする
- 10. 【Laravel】バージョンを確認するときのコマンド
- 11. オブジェクト指向プログラミング入門 for PHP programmers (3)〜継承編
- 12. DeepL API の使用方法
- 13. 【初心者向け】LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第4回: ログイン&動画登録】
- 14. 【第九回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー
- 15. php-webdriver(selenium webdriver)でWeb-DevToolsのBlockedURLsを設定する方法
- 16. 【Laravel】楽天レシピAPIからレシピを取得する方法
- 17. Laravel8 マイページを見られるユーザーを限定する(アクセス制限)
- 18. 【PHP】配列ポインタ操作関数はIteratorを無視する
- 19. laravel5.5 会員の退会機能 論理削除(ソフトデリート)の実装
- 20. laravel facebookログインをローカル環境でテストしてみる。
Push Notification Using OneSignal Rest API with PHP
in this article, we’ll create Push Notification functionality for our app using oneSignal Rest API and Laravel. We’ll add a device and create a push notification using Rest API.
時代はPHP8だしFizzBuzz書いた
眠れない夜ってFizzBuzzを書きたくなりますよね。いままでさんざんFizzBuzzを書いてきましたが僕はまだ書き足りないです。
今回はきしださんが今年の1月に書いたらしいFizzBuzzをさっき知って「うむ、これこそ2021年のFizzBuzzだ」と思ったので、臆面もなくぱくることにいたししました。
https://nowokay.hatenablog.com/entry/2021/01/26/190658
今回のFizzBuzzのコンセプトは以下の通りです。
* 元コードの魂を受け継ぎ、オブジェクト指向は時代に合ってないので`new`を使わない
* 元コードの魂は受け継がず、シンプルではなく凝ったことをしており、エレガントではない
* 元コードの魂は受け継がず、動くまた、判定方法は概ねきしださんのコードから拝借していますがループ方法は異っています。
## PHPコード
:::note alert
このコードに実用的な要素はありません
:::“`php
phpフレームワークLaravelって何?環境構築の前にちょっと待った!使用用途を徹底解説!!
#絶対に読んで欲しい導入
HTML,PHPを学び、これからLaravelを使おうと思ったそこのエンジニアの皆さん、とりあえず環境構築してコードをググったらある程度使えるようになるだろうと思ってますよね。
確かにその通りです。しかし実際に使用する前に便利な機能を把握し、Laravelではこんなことができるのかと知っておくことで格段に開発効率が上がります。
座学はエンジニアの皆さんにとってはそんなに面白いものではないかもしれませんが、こんな機能があるならこういうアプリが作れそうだ!などと言った想像を膨らませながら、楽しみながら読んでみてください!!
#そもそもLaravelって何?
![column_main13814.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1525561/03a7d479-db73-7e62-9e10-32f1cca8a72d.png)Laravelとは、**PHPのフレームワークの1つ**です。
>※ **PHP**とは、Webページを動的に生成できるサーバーサイド
【電話番号抽出】英数全角記号特殊文字が入り混じった文字列から数字だけを抽出する。ついでに全角数字は半角数字に変換する。
## あらすじ
先日、とある機能実装のため、Amazonから出品者情報を取得する必要があった。
しかし、実際に取得した電話番号のデータを見てみたところ・・・“`
※個人情報保護の為電話番号は0でマスキングしてあります。000−0000−000
+8190-0000-z0000
03 0000 0000 です。
0000−00−0000
電話番号はこちら → 000 0000 0000
00−0000−0000
〇〇宛 000−0000−000
“`
きっっっっっっっったな!
こんなんじゃ使い物にならん・・・・どうやらAmazonでは出品者の情報(本人によるCSV入力だと思われる)はちゃんとしたバリデートが行われていないっぽい。
それで良くシステム側に不具合無いな・・・## 要件
・とりあえず数字だけを取得する。
・全角数字は半角数字に変換して、電話番号の一部と数える。## 実際のコード
Paizaに実際に動かしたコードがあるので、コード見るのだるい人は確認してみてください。
https://paiza.io/projects/TwekAfnexAUCixpt
phpでWordpressの動画をランダム再生する方法
[基本環境](#基本環境)
[wordpressでカスタムページを作成](#wordpressでカスタムページを作成)
[ランダム表示php](#ランダム表示php)
[動画再生htmlタグ](#動画再生htmlタグ)
[ランダム表示と動画再生組み合わせ](#ランダム表示と動画再生組み合わせ)
[動画アップロード](#動画アップロード)
[カスタムページをカスタマイズ](#カスタムページをカスタマイズ)
[表示確認](#表示確認)
[参考記事](#参考記事)#基本環境
WordPressで子テーマ設定済み#wordpressでカスタムページを作成
親テーマのpage.phpをコピペしてカスタムページvideo-random.phpを作成
“`
# cp -p /var/www/html/example.com/wp-content/themes/親テーマ/page.php /var/www/html/example.com/wp-content/themes/子テーマ/video-random.php
“`video-random.php最上部に以下を追記
“`
WSL2のUbuntuでPHPStanを使う(VSCode)
# はじめに
– 自分だけの環境に PHPStan を入れて、他の開発メンバーと差をつけたい時、あると思います
– ということで、WSL2 で利用する Ubuntu ディストリビューションに PHPStan を設定し、そちらを VSCode で読み込むようにします# バージョン
– Windows11 Pro
– 21H2
– VSCode
– 1.61.0
– Ubuntu
– 20.04.2 LTS
– Composer
– 2.1.3# 前提
– こちらの記事の続きです
# 拡張機能インストール手順
## 1.PHPStan インストール
– 以下のコマンドを実行する
“`bash
# パッケージ最新化
sudo apt update
# PHPStan インストール
composer global require phpstan/phpstan
“`## 2.VSCode と連携
– VSCode の拡張
PHPでnull判定関数(isset, empty, is_null)の違い
## はじめに
実務で「変数に配列がセットされてるけど、空配列であることを判定」する必要がありました。
PHPでは配列の空判定が出来る関数としてisset, empty, is_nullがありますが、違いがよくわからずに苦労しました。
理解を深めるために違いをまとめたので記事にしました!## 対象者
この記事は下記のような人を対象にしています。– 駆け出しエンジニア
– プログラミング初学者
– null?空文字?なにそれ美味しいの?な人
– isset, empty, is_null…聞いたことあるけど、全部同じじゃないの?と思ってる人## PHPのnull判定関数(isset, empty, is_null)の違い早見表
まずは結論から。|| 値 | if($var) | isset | empty | is_null |
|—-| —- | —- | —- | —- | —- |
|1| $var=1 | true | true | false | false |
|2| $var=””; |
word pressにてgoogle vision apiを使い画像の検索機能を作成する
word press(wp)環境下で、Google Cloud Vision Apiを使用して苦労した話
https://zenn.dev/crinoid/articles/f41a4a09753a71#11.-web_detection
こういった記事を見つけ、画像を検索するシステムを作成しようと思った。
公式:https://cloud.google.com/vision/docs/detecting-web?hl=ja#vision_web_detection-python
#wpにて、apiを使用する
まず、apiの登録をする。こちらは結構情報があるので割愛。
downloadしたjsonを用意する。(image.json)### vision clientを使う
結構情報が少なく苦労した部分ですね。特にPHPの情報が少ない….
参考:
https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/v0.165.0/vision/visionclient?method=annotate※vis
wpにてdebugする
“`wp-config.php
define( ‘WP_DEBUG’, true );
//ここをtrueにすることにより、デバッグ機能が動くif ( WP_DEBUG ) {
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );
@ini_set( ‘display_errors’, 0 );
}
//ここを記述することにより、debug.logにエラーなどのlogが表示される。
そのため、検証が可能になる。
“`参考:
https://www.nxworld.net/wp-debug-log.html
【Laravel】バージョンを確認するときのコマンド
#はじめに
現在自分が使っているLaravelのバージョンを確認する方法を見ていきましょう。#Laravelのバージョン確認方法
“`php:ターミナル
php artisan –version
“`“`php:ターミナル
php artisan -V
“``Laravel Framework 5.8.38`のようにバージョンが表示されればOKです!
オブジェクト指向プログラミング入門 for PHP programmers (3)〜継承編
## この記事について
この記事は[オブジェクト指向プログラミング入門 for PHP programmers (2)〜オブジェクト編 – Qiita](https://qiita.com/nunulk/items/286cf0da2d55d4c28ae4)の続編です。
前回「ひとつのアクション対してロジックが複数存在するケース」のところで続きを書きますと宣言していたので、書きました。
本記事では、基底クラス、抽象基底クラス、インターフェイス、トレイトあたりを扱います。
前回同様**「実際の設計・実装」とあまり乖離してない例**で解説してみようとする試みです。
## はじめに
今回は以下のトピックを取り上げます。
* 継承
* インターフェイス
* トレイトこれらのトピックを説明しようとすると長くなってしまうので、本文中でその都度説明していこうと思います。
### 環境
* PHP: 8.0.10
### 目次
1. 継承
2. インターフェイス
3. トレイト
4. 合成と委譲## 1. 継承
`extends` キーワードを用いて、クラス間でデータや
DeepL API の使用方法
auth_key と text, source_lang, target_lang を指定して GET or POST するだけ
参考: https://www.deepl.com/docs-api/introduction/## シェルスクリプト
“`bash:deepl.sh
#!/bin/sh
DEEPL_API_URL=”https://api-free.deepl.com/v2/translate”
YOUR_API_KEY=”__DEEPL_API_KEY_HERE__”
SOURCE_TEXT=”
I’m a lumberjack and I’m OK.
I sleep at night, I work during the day.He’s a lumberjack and he’s OK.
He sleeps all night and he works all day.I cut down trees, I eat my lunch.
I go to the lavatory.
On Wednesdays I go shopping and have
【初心者向け】LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第4回: ログイン&動画登録】
(この記事は作成中です。)
こんにちは。
ITエンジニアの濱辺(ハマベ)です。今回は、ログイン&お気に入り動画登録機能を実装していきます。
↓第3回はこちら
[LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第3回】](https://qiita.com/dogabon20/items/4133b65637dc7f60530d)↓こちらの画面定義書のものを作っていきます。
Youtube-Curation 画面定義所 (googleスプレッドシート)## ログイン機能の実装
ログイン機能についても、Laravelに標準で備わっているファイルがあります。
基本機能は最初から用意されているんですね。#### Route設定
下記3つのrouteを記述しましょう。
“`web.php
Route::get(‘login’, ‘Auth\LoginController@showLoginForm’)->name(‘login’);
Route::post(‘login’, ‘Auth\LoginController@login’)-
【第九回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー
#前回までのあらすじ
[【第八回】コロナ禍だから何かできることを](https://qiita.com/STYLE-D/items/c32e9098a3948e8f32f2)####実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。
![メイン.00_00_51_12.Still002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/cf85391e-aef8-5a59-0a1d-63d8e15412ce.jpeg)今回が最後なので、まとめていきたいます。
#イメージ動画
まずは、第1回でも公開したイメージ動画です。
【Laravel】楽天レシピAPIからレシピを取得する方法
#はじめに
献立アプリを作る際に、楽天レシピAPIからレシピ(1カテゴリにつきランキング上位4つのレシピ)を取得したので、そのときのコードを備忘録として残しておきます。#Bladeの`body`タグ内に記述
“`php:welcome.blade.php
@php
$json = json_decode(‘APIテストフォームでパラメータ(categoryId=10といった感じ)を指定し、GETをクリックしたら出てくるデータをここにコピペ’, true);use App\Models\Menu;
$array = $json[‘result’];
for($i=0; $irecipe_category_id = 10;
$menu->user_id = 1;
$menu->step = ”;
$menu->seasonin
Laravel8 マイページを見られるユーザーを限定する(アクセス制限)
## やりたいこと
– マイページを自分(特定のユーザー)以外がアクセスできないようにしたい。
– 未ログイン状態からのアクセスがあればログイン画面にリダイレクトしたい。
– ログイン済みであっても他人のマイページは閲覧できないようにしたい。## 環境
PHP7
Laravel8## 前提
1. マイページそのものは作成しておく
1. マイページのURLにパラメータとしてユーザーIDが表示される状態になっている### コントローラー
コントローラーでは、if文を使ってパラメーターに入るユーザーIDとアクセスしようとしているユーザーのユーザーIDが一致しないと閲覧できないようにした。
“`PHP:app/Http/Controllers/RecordUsersController.php
【PHP】配列ポインタ操作関数はIteratorを無視する
# 配列ポインタ操作関数にオブジェクトを突っ込む
やたらたくさんある[PHPの配列関数](https://www.php.net/manual/ja/book.array.php)ですが、大半は配列の全ての値に対して一律に処理を行う関数です。
キーと値を入れ替える[array_flip](https://www.php.net/manual/ja/function.array-flip.php)、特定のカラムを取り出す[array_column](https://www.php.net/manual/ja/function.array-column.php)、任意の関数を適用する[array_walk](https://www.php.net/manual/ja/function.array-walk.php)などですね。ところでこの中に一部、配列のポインタを直接触る関数群があります。
キーを取得する[key](https://www.php.net/manual/ja/function.key.php)、値を取得する[current](https://www.php.net/m
laravel5.5 会員の退会機能 論理削除(ソフトデリート)の実装
## はじめに
laravel5.5を使用しており、最新のバージョンではありません。## 論理削除の流れ
退会したユーザのデータをDBから完全に削除せず、
復元が可能であるような方法を論理削除と言います。ユーザが’退会する’というボタンをクリック
↓
ユーザは登録した情報でログインができなくなる
↓
DBには、ユーザが会員登録したデータは残っている状態## 前提
– laravelの環境構築を終えている
– MAMPを使用
– DBの接続を終えている
– ユーザのログイン機能は実装済み## 実装手順
ログイン機能が実装済みの方は1から読み進めてください。[0.ログイン機能の実装](#0-ログイン機能の実装)
[1.データベースの編集](#1-データベースの編集)
[2.userモデルの編集](#2-userモデルの編集)
[3.seederでデータを入れてみる](#3-seederでデータを入れてみる)
[4.ルーティングの追加](#4-ルーティングの追加)
[5.viewの編集](#5-viewの編集)
[6.コントローラーの作成](#6-コントローラーの作成)
laravel facebookログインをローカル環境でテストしてみる。
## 初めに
Facebook,Twitterログインをlaravelに実装したいけど、
それぞれの管理画面で見ると、localhostでは実装できないようになっている。
過去の記事では、できてたようですけど、厳しくなったらしい。
https必須とも記載ありました。ngrokを使えば、HTTPSでも提供してくれるしできるんじゃね?と思い、試してみました。
SNSログイン完了後に情報を取得するまでが目的です。## 結論
ngorkで発行されたURLをそれぞれのSNSの設定画面 コールバックURLを登録し、
.envに記載することでローカル環境でテストできました。## 注意点
ngrok の無料プランは接続する度、払い出されるアドレスは変更されるので、
SNSの管理画面のリダイレクトuriと .envの APP_URLは都度変更が必要です。
めんどうであれば、有料プランに変更しましょう。サーバーに公開する以外で他に簡単な方法あれば教えてください。