PHPコーディング

PHPの三項演算子

2018年11月14日
プログラミング言語によらず、三項演算子は使ったことがないのですが、使ってみようかと調べてみました。
三項演算子って開発プロジェクトでも使ったことがないんですよね。わかりにくいから使わない方針だったのでしょうか。一度もお目にかかったことがない気がします。

使ったことがない、つまり使う習慣がない、つまりいつまで経ってもパット見てわかるようにならないので、ますます使わない、という循環になっていました。

変数自体が存在しない場合変数を初期化(空文字を代入)、
nullの場合も空文字代入あるいはそのままでもOK、
存在する場合はそのまま、
というコーディング(デフォルト値の設定)をできるだけ短く書きたいのです。

$a = $b ? $b : $c;(あるいはPHP 5.3以上なら $a = $b ?: $c;)
 $bがtrueなら$bを、falseなら$cを$aに代入します。

このソースは$bが存在しない場合Noticeが発生してしまいます。

$bが存在していないケースもある場合、
$a = $b ?? $c;
 $bがtrueなら$bを、存在しないかfalseなら$cを$aに代入します。

これでいけるじゃないと思ったのですが、この三項演算子はPHP7から導入されました。
PHP5では動きません。

自分で使うのならPHP7固定で良いのですが、不特定多数の方が使われるので、できればPHP5でも動くようにしたいです。

ならば
$a = isset($b) ? $b : "";
 $bが存在していてnullでないなら$bを、存在していないかnullなら空文字を$aに代入

ううん、実際には深い配列もあるし、短くないなぁ。
書き直す手間を考えると使うメリットはほとんどないので、使わないことにしました。

変数と配列の宣言を完璧にできれば悩むこともないのですけどね。
できるだけ宣言して、忘れてもPHPは動くので、PHPの試用に少し甘えることにしました。

使わないことにしましたが、勉強になりました。ですが使う機会がなければ次に使おうとした時はきれいに忘れているでしょう。

PHP: 比較演算子 - Manual

PayPalオートメール

発見!

2018年11月13日
片頭痛から復活(多分)です。

バグを見つけたので、立て続けに【PayPalオートメール】のバージョンアップです。

全然違うことでソースを見直していて、バグを見つけました。今まで何度も見ているのに気が付きませんでした。

複数人のプロジェクトなら別の視点があるので気が付きやすいのですが、一人だとどうしても視点が固定されてしまいます。
一旦頭をクリアにして、別視点からソースを眺めるよう努めなくてはいけませんね。

銀行振込サンクスメール

【銀行振込サンクスメール】の通信をSSLへ

2018年11月08日
銀行振込サンクスメール】の通信もSSLに移行しようとして気が付きました。バージョンアップしなくてもツールを販売し始めたときからすでにSSLにしていました。
全く覚えていません。記憶喪失でしょうか(笑)。

しかも【Webページコントローラー】の通信をSSLへで使うのを止めた【cURL】関数でSSLにしていました。orz
ソースのメンテナンス性が少し下がるというだけで、SSLで通信できれば全く問題ありません。

1つ前のバージョンアップのご案内がまだだったので、まとめてご案内です。PHP7への対応もしています。

PayPal毎度ありがとうメール

【PayPal毎度ありがとうメール】の通信をSSLへ

2018年11月06日
次々いきます。
PayPal毎度ありがとうメール】の通信もSSLに移行しました。

PayPalオートメール】と同じで、今回移行したのはPayPal以外との通信部分です。PayPalとの通信は既にSSLになっています。大切な情報を通信するので当然です。今回は重要ではないちょっとした通信をSSLにしました。

これ以外にもソースをより良く修正しています。

PayPalオートメール

【PayPalオートメール】の通信をSSLへ

2018年11月05日
【Webページコントローラー】の通信をSSLへに続き、【PayPalオートメール】の通信もSSLに移行しました。

今回移行したのはPayPal以外との通信部分です。PayPalとの通信は既にSSLになっています。大切な情報を通信するので当然です。今回は重要ではないちょっとした通信をSSLにしました。

ビジネス・SOHO

来年のスケジュール帳を買いました

2018年11月04日
ずっと愛用しているダイソーのスケジュール帳があるのですが、どうやら来年用は出ないようなので、同じタイプの別のスケジュール帳を買いました。やはりダイソーです。

文房具店や本屋に行ってスケジュール帳コーナーを見たのですが、なかなかこれというものはありませんでした。
欲しいタイプはあるにはありましたが、みんな1000円超え、正直そこまで使わないのです。

以前は100均の大きさが同じ別タイプのスケジュール帳を2冊買って、合本して使っていたことがあります。
来年は合本しようかと思ったのですが、それでも欲しいタイプのスケジュール帳にすることはできませんでした。

で、結局ダイソーのスケジュール帳になりました。一応欲しいタイプの手帳なのでこれでいきます。
 
面白みはない黒のカバーが付いています。手帳とカバーは外せることを確認して買いました。どうせ表紙は好きにやり直すので、これでOKです。

1ページ目に1年分のカレンダーがあり、次に年間計画があります。

大切なのはここからで、月曜始まりのマンスリーがあり、


月曜始まりの週間レフト、


最後にメモのページです。


いつもマンスリーはやるべきこと、ウィークリーはやったこと、ウィークリーの右のページはその日の出来事や今後の注意事項など好きに記入します。ウィークリーの上の空いた部分には心に残った言葉なども書留たりします。
特に右ページはあまりきちんとは書きません。書かない日があっても(いや書かない日の方が多いかな)OKとして、ゆるく続けています。きっちりするより、ゆるくでも長く続けることを大切にしています。

メモのページは販売しているツールのバージョンアップや新しいツールの構想など、付箋を貼って使っています。
いよいよツールを修正したり作ったりするときは、付箋をマンスリーに貼り直してToDoとします。

栞がない手帳の時は、プラスチック付箋を貼ってインデックスにしています。

ブログ

またTwitterAPIで遊んでしまった

2018年11月03日
TwitterAPIのどツボにハマって遊んでしまいましたでブログ更新時に、更新お知らせ写真付きツイートができるようにしました。
あのときは静止画だけでとりあえずは終了したのですが、やっぱりビデオも投稿できた方が便利だなと思うようになってしまいました。
ブログ更新後、ツイッターから動画をアップしてツイートしてみたのですが、やっぱり面倒なんです。しかもちょっとではなくて、かなり面倒に感じるんです。

前回と同じで、以前からお世話になっている、
GitHub - abraham/twitteroauth: The most popular PHP library for use with the Twitter OAuth REST API.
を利用させていただきました。

いざアップロード!できません。

Overview — Twitter Developers
どうやらチャンクに分けてアップロードをするようです。もしかすると、分けなくてもできるのかもしれませんがTwitterが推奨しているようですしチャンク分けしてみました。

修正して再度アップロード。
どうやらアップロードはできているようですが、エラーになります。

【Duration too long, maximum:30000, actual:xxxxxx】

調べたら、動画が30秒を超えているということらしいです。
Overview — Twitter Developersにビデオは15MBとありますが、秒でも引っかかるのでしょうか。
試しに短い動画でやってみたら無事ツイートできました。

更に調べると、【media_category】を【tweet_video】を引き渡してやると30秒以上の動画が扱えるようです。

引き渡してアップロードしてみます。

今度は【Not valid video】だって。アップロードしたのは確かにビデオなんですけどね。
返ってきたメッセージを見てみると、【pending】が出ている、でも動画のアップロードはできているのかな、と思います。

返ってきたメディアID(media_id)を直書きで指定してツイートすると、ツイートできました。
何度かやってみたのですが、どうやら動画が使えるようになるのに数分かかっているみたいです。この当たりはTwitterサーバーの混み具合にもよるのかもしれません。

仕方ないので動画アップロードとツイートは処理を分けました。
確かアップロードしたファイルは1時間有効だったはずなので、メディアIDを記録しておいて、後からメディアIDとツイート内容をセットにしてツイートを投げます。

作っておきながらなんですが、ツイッターのアカウントの関係で動画はアップロードしないかもしれません(なら作るなよ・・・)。まだ色々悩み中です。


覚書 ---- TwitterAPIからの動画の投稿
Overview — Twitter Developers
Media Best Practices — Twitter Developers
API Reference — Twitter Developers

チャンク分けする
30秒を超えている場合は、media_category:tweet_video を指定
アップロードした動画が使えるようになるまで待つ
2018年06月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード
Tweet