- 1. phpでWordpressの動画をランダム再生する方法
- 2. WSL2のUbuntuでPHPStanを使う(VSCode)
- 3. PHPでnull判定関数(isset, empty, is_null)の違い
- 4. word pressにてgoogle vision apiを使い画像の検索機能を作成する
- 5. wpにてdebugする
- 6. 【Laravel】バージョンを確認するときのコマンド
- 7. オブジェクト指向プログラミング入門 for PHP programmers (3)〜継承編
- 8. DeepL API の使用方法
- 9. 【初心者向け】LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第4回: ログイン&動画登録】
- 10. 【第九回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー
- 11. php-webdriver(selenium webdriver)でWeb-DevToolsのBlockedURLsを設定する方法
- 12. 【Laravel】楽天レシピAPIからレシピを取得する方法
- 13. Laravel8 マイページを見られるユーザーを限定する(アクセス制限)
- 14. 【PHP】配列ポインタ操作関数はIteratorを無視する
- 15. laravel5.5 会員の退会機能 論理削除(ソフトデリート)の実装
- 16. laravel facebookログインをローカル環境でテストしてみる。
- 17. PHPで画像サイズを変更してみた
- 18. Access to XMLHttpRequest_at ○○ from Origin ‘○○’ has been blocked by CORS policy ..エラーが出た
- 19. composerコマンドのオプションをデフォルトにしたい
- 20. composerのロングオプションはコマンドによって違うこともある
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は都度変更が必要です。
めんどうであれば、有料プランに変更しましょう。サーバーに公開する以外で他に簡単な方法あれば教えてください。
PHPで画像サイズを変更してみた
Linuxのconvertコマンドを知らず、
convertコマンド1行で出来ることを苦戦しながらPHPで実装したので、
せっかくなのでメモとして残します。業務での目的としては1000×1000の画像を、
上下に余白をつけて1000×1200にするというようなものでしたが、
Qiita用に少し修正して上下左右に余白をつける例にしてみました。
# 余白をつける方針
画像にどう余白をつけるかというと、
余白用の画像を作成して、その上に元の画像を重ねるという方針です。
# サンプル
ファイル名や余白の幅は固定になっているので、
参考にする場合は適宜修正していただければと思います。“`ruby:resizeImage.php
Access to XMLHttpRequest_at ○○ from Origin ‘○○’ has been blocked by CORS policy ..エラーが出た
## 状況
APIを叩いて外部のアプリケーションリソースにアクセスしようとしたら以下のようなエラーが出た。“`
Access to XMLHttpRequest_at ○ from Origin ‘’ has been blocked by CORS policy …
“`
## 環境
環境: Laravel 6.x
ブラウザ: chrome## 解決方法
Corsヘッダーを設定する。
(Laravel7.0よりこのパッケージは初期テンプレートにバンドルされ、初期状態で利用可能となった。)## 手順
[1.パッケージのインストール](#1-パッケージのインストール)
[2.Middlewareを追加する](#2-Middlewareを追加する)
[3.設定ファイルをpublishする](#3-設定ファイルをpublishする)
[4.項目を設定する](#4-項目を設定する)## 1. パッケージのインストール
“`
composer require fruitcake/laravel-cors
“`
上記コマンドを実行し、composer でパッケー
composerコマンドのオプションをデフォルトにしたい
# オプションを毎回付けるのが面倒
面倒な上に忘れがち。“`bash
$ composer install -o
$ composer dump-autoload -o
“`# デフォルトでオプションを付ける
“composer.json“の“config“から設定できます。“`composer.json
{
“config”: {
“optimize-autoloader”: true
}
}
“`設定後は自動でオプションが適用されます。
“`bash
# オプションなしでOK
$ composer install
$ composer dump-autoload
“`設定方法の詳細は[公式ドキュメント](https://getcomposer.org/doc/06-config.md#optimize-autoloader)に掲載されています。
composerのロングオプションはコマンドによって違うこともある
# ロングオプションに注意!
autoloadのoptimizeオプションは“install“と“dump-autoload“でロングオプションの表記が違います。詰みました。
“`bash
$ composer install –optimize-autoloader
$ composer dump-autoload –optimize
“`ショートオプション“-o“は共通です。
“`bash
$ composer install -o
$ composer dump-autoload -o
“`他にもこういうオプションがあるのだろうか…
詰んだら[公式ドキュメント](https://getcomposer.org/doc/03-cli.md)へ。普段はショートオプション使いですがw
ロングオプションの方がコマンドの意図が分かり易いので、覚えておいて損はないと思います!