wordpressとLine公式アカウントの連携をLineAutoPostを使ってカスタム投稿タイプにも反映させてみた

WordPressで特定の情報を登録した際に、Line公式アカウントと連携して通知を送信したかったので、Line Auto Postを使わせてもらいました。
使い方はコチラを参考にさせていただきました。

ただ、今回は「投稿(post)」ではなくて、カスタム投稿タイプ(custom post type)で作成した記事の投稿で通知したかったのでfunction.phpを次のようにカスタマイズしてみました。

/* =======================================
 * カスタムポストタイプでLineAutoPostを使えるようにカスタマイズ
 */
function init_lineAutoPost_ex(){
$objLineAutoPost = new LineAutoPost();
$postTypeList = array('job-apply');	//カスタムポストタイプの一覧
foreach($postTypeList as $postType  )
add_meta_box(
	    // チェックボックスのID
	    LineAutoPost::PARAMETER__SEND_CHECKBOX,
	    // チェックボックスのラベル名
	    'LINEメッセージ送信',
	    // チェックボックスを表示するコールバック関数
	    [$objLineAutoPost, 'show_send_checkbox'],
	    // 投稿画面に表示
	    $postType,
	    // 投稿画面の右サイドに表示
	    'advanced',
	    // 優先度(最優先)
	    'high'
	);
}
add_action('add_meta_boxes', 'init_lineAutoPost_ex' );

laravel artisanコマンド

分類 コマンド 説明
php artisan list コマンドの一覧を表示する
php artisan make:controller -h コマンドのヘルプを表示する
php artisan key:generate encryption key を設定する
php artisan route:list route(経路)の状態を表示する
model php artisan make:model User app/モデルクラスをひな形から生成する
model php artisan make:model User –migration クラスのほかにmigrationファイルも生成する
migration php artisan make:migration create_users_table resource
migration php artisan migrate 未実行のmigrateファイルを実行する
migration php artisan migrate:refresh 追加済みのテーブルを削除して再構築する
migration php artisan migrate:refresh –seed refleshに加え、seederを実行する(databaseSeederに依存)
migration php artisan migrate:rollback 1つ前の状態に戻す
seeder php artisan make:seeder UsersTableSeeder seederファイルを作成
seeder php artisan db:seed seederを実行する
seeder php artisan db:seed –class=UsersTableSeeder 特定のseederを実行する
controller php artisan make:controller HogeController コントローラのひな形を生成する
server php artisan serve
request php artisan make:request UserRegistPost リクエストクラスを生成
provider php artisan make:provider RiakServiceProvider プロバイダクラスを生成
cashe php artisan config:clear キャッシュをクリアする
php artisan make:middleware CheckAge ミドルウェアクラスを生成する
auth php artisan make:auth ユーザ認証のひな形を生成する

composerの概要

composerはPHPにおけるパッケージ管理ツールです。

類似のツールとして
LinuxのYum
PHPのpear
NodeJSのnpm
があげられます。

リポジトリと呼ばれるパッケージが登録されたサーバから、パッケージのダウンロード・インストールを行ってくれます。
また、ダウンロードしたパッケージに必要な依存パッケージも一緒に落としてくれるなど環境作成を楽にしてくれるツールです。

◆composerのインストール(Windows+Xampp環境)
PHPへのpathが通っているコマンドプロンプト(PowerShell)で次のコマンドを実行します。
※composer.pharがphp.exeに依存しているので「xampp\php」で操作するとpathを通しやすくて良いんじゃないかと。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

正常に終了すると
カレントにcomposer.pharが作成されます。

composer.pharはcomposer本体で、PHPプログラムをphar圧縮したものです。
使用する際は

php composer.phar [コマンド]

のように使います

◆composer-setup.phpやcomposer.pharについて
composer-setup.phpがやってることはcomposer.pharをダウンロードしてるだけ。
そしてcomposer.pharは独立したPHPプログラムなのでコピペして好きなところに置いていいっぽい。

もっと言えば、composer.pharがあればわざわざインストールしなくてもcomposer.pharをコピペして使って問題なさそうですね

◆composer.pharを使いやすく(linuxっぽく)
composer.pharをダウンロードして設置しただけだと、composerを実行する際に

php composer.phar [コマンド]

のように書く必要があります。

Linux環境では

composer [コマンド]

で実行できるため、いろいろなサイトで学習するにあたって読み替えが必要になったりしますし、このほうが入力が少なくて便利ですよね。

これを実現する設定をしていきたいと思います。
composer.pharを設置したディレクトリに
composer.batを作成し、次の内容をコピーしてください。

@ECHO OFF
php "%~dp0composer.phar" %*

以上です。

動作確認のために次のコマンドを実行してみてください。

composer -V

composerのバージョンが表示されればOKです。

◆composer.batを理解する

composer.batを準備すると、なぜ

composer [コマンド]

とすることができるのか?を解説してきます。

まず、コマンドプロンプトの挙動として
実行可能ファイルの拡張子(.exe,.com,.batなど)は省略できる。
っという性質があります。

なので、コマンドプロンプトに記述する「composer」とは「composer.bat」を意味します。

composer.batの中の意味は
「%~dp0composer.phar」とはcomposer.batがあるディレクトリのcomposer.phar
「%*」は、composer.batに渡されたパラメータを意味します。

php.exeでcomposer.pharを実行し、comoper.batに渡された引数を丸投げしてます。

composer -V
を実行すると次のように変換されるわけですね
php c:\xampp\php\composer.phar -V

PDTで常にデバッグが起動されてうざかった

いつも愛用させていただいている MargeDoc ProjectさんのPleiades All in One Eclipse(Eclipse 2019-09)環境を新規に構築
PDTを起動した状態でPHPが動くたびにデバッグパースペクティブが開き、最初の行でブレイクしてくれてうざかった

なんでかな~?っと思って調べてみたら
php.iniの設定が

xdebug.remote_autostart = 1

になっていて、この設定だとデバッガーが勝手に起動してくれるんだそう
ある意味便利なんだけど、けっこううざいのでOFFにします

xdebug.remote_autostart = off

ってすればOK

ブラウザで横に入る謎の白線は高さの丸めだった

web制作で画像と画像の切れ間に原因不明の白い線が入ることがある

border、padding、marginや、要素の何かが押して隙間ができてしまっているんじゃないかといろいろ調べても原因がわからないことがしばしば
いまさらながら気付いたんですけど、この白線は「高さの少数を丸めた結果にできる空地」でした。

heightに割合(%やvh)の指定をすると少数で指定されますが
ディスプレーはpixcel単位で発色するので整数で出力することになります。

結果として、たまに上部要素の下に1px分の空白地帯ができてしまうようで、
コーディングミスではなく、ブラウザやモニタの仕様ってことになります。

っとはいえ、デザイナさんとしてはメッチャ気になる部分だと思います。
どうしても!っという場合はjavascriptなどで高さを整数にしてあげれば線が消えるみたいです。

XAMPPのPHPをバージョンアップ(5.6→7.3)

XAMPPのPHPをバージョンアップする(5.5→7.2)を参考にさせていただきました。

変更の目的

うちの環境はmargedocさんのPDT(full)で、PDTとxampp(インストール不要zip版)が抱き合わせになってるやつを使ってます。
執筆時点の最新版でバンドルされてるPHPのバージョンが5.6系だったのですが、EC-CUBE4の実行環境を作りたくて、PHP7.3系にしたかった。

概要

  1. PHP7.3のダウンロード
  2. PHP7.3の導入
  3. xamppの設定ファイル調整
  4. xdebugの更新

詳細

PHP7.3のダウンロード

PHPの公式ダウンロードページから任意のバージョンをダウンロードします。
うちの環境(xampp)は64bitなのでVC15 x64 Thread Safe をダウンロード
もし、XAMPPの32bit版を利用している場合はVC15 x86 Thread Safe をダウンロードしてください。

PHP7.3の導入

xampp/phpを適当な名前に変更
※今回は元のバージョンにちなんでphp_56

ダウンロードしたPHPを解凍してフォルダ名を”php”に変更しxamppフォルダに移動

php_56フォルダからphp.iniをphpフォルダにコピー

xamppの設定ファイル調整

この作業をせずにxamppを起動しようとするとapacheがこけるので気づくと思うけど
xampp/apache/conf/extra/httpd-xampp.conf
の設定がphp5用になってるので修正が必要

#LoadFile "[プロジェクトのパス]/xampp/php/php5ts.dll"
LoadFile "[プロジェクトのパス]/xampp/php/php7ts.dll"
#LoadModule php5_module "[プロジェクトのパス]/xampp/php/php5apache2_4.dll"
LoadModule php7_module "[プロジェクトのパス]/xampp/php/php7apache2_4.dll"

モジュール名をここで変えてしまったので

#<IfModule php5_module>
<IfModule php7_module>

※複数あり

のように修正

xdebugのダウンロード

PHPのバージョンが変わったのでxdebugもバージョンアップする必要があります

xdebug公式から任意のバージョンのdllを落とします。
※今回はphp7.3系で VC15 TSのx64なのでPHP 7.3 VC15 TS (64 bit) をダウンロード

ダウンロードしたファイルをphp_xdebug.dllにリネームして”xampp/php/ext/”配下にコピー