ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2018年3月19日月曜日

PHPUnit を Composer でインストールする。それだけ。

PHPUnit を Composer でインストールする。それだけ。

21:00 by Jumpei Tanaka

PHPUnit を初めてインストールしました。 あまりにも当たり前すぎて、ググった記事にはない内容もあるので記録しておきます。 前提 Windows 環境です(Unix/Mac 環境でもほぼ同じですが) PHPUnit を Composer でインストール インストール方法はいくつかありますが、composer を使います。 以下の composer.json を準備して、 { "require-dev": { "phpunit/phpunit": "7.0.*" } } インストール。 composer install 実行ファイルが以下の場所に出来ます(※これを探しました笑) project_root/vendor/bin/phpunit.bat project_root/vendor/bin/ に PATH を通して (画像は RapidEE を使ってます) Version 確認コマンドが働いたらインストール確認まで完了。 phpunit.bat --verion Version 確認コマンドの実行結果。オッケー。 PS C:\Git\60_GitLab\sample_project> phpunit.bat --version PHPUnit 5.0.10 by Sebastian Bergmann and contributors. 以上。 参考 https://phpunit.readthedocs.io/ja/latest/installation.html ...

2018年3月18日日曜日

Selenium + Chrome の環境が一瞬で構築できたというアレ。

Selenium + Chrome の環境が一瞬で構築できたというアレ。

21:00 by Jumpei Tanaka

前提 さて Selenium を試してみようか! と思った時点で、こんな環境でした。 Windows10 64bit Chrome はもちろんインストール済 php もインストール済 そしてパスが通っている composer もインストール済 そしてパスが通っている ブラウザのオートメーションと言えば昔は… 余談ですが、昔やったときは VB かなんかで IE を CreateObject して、なんか色々頑張ってやる感じで、まぁブラウザの操作自動化しても良いけどクソ面倒くさいよ。むしろ AutoHotKey とかでキー操作を自動化したほうが早いわ。ぐらいに思っていましたが…、時代は大分前進していたようで。 Selenium で Chrome を自在に動かす。しかも一瞬で。 さて、早速準備ですがやることはこれだけです。 PHP 用ドライバを DL Windows 用 Chrome ドライバを DL PHP 用ドライバを DL composer.json にこう書いてインストールするだけです。 { "require": { "facebook/webdriver": "1.5.*" } } ※最新版の Version は GitHub で確認してください インストール。どん。 composer install 以上。...

2018年3月10日土曜日

PHP のシステムから SendGrid を使ってみました。

PHP のシステムから SendGrid を使ってみました。

21:00 by Jumpei Tanaka

メール送信機能を追加する機会があったのですが、サーバに何も設定されておらず、Dev や Staging など複数台のサーバに作業するのは面倒だなぁと。。 じゃぁ SendGrid を使って見ようということでやってみたら、驚くべき楽さで出来たという話です。。 API KEY を取得する composer で library を install サンプルのママでメールが届く 正味30分もかかららず終わりました。。 サーバをアレアレ弄ってるとあっという間に1時間くらいたつので、ダンチです。 API 経由であれば、送信に失敗したときのエラーもしっかり返してくれるので、mail() や mb_send_mail() よりも優しい。。 API KEY を取得する 早速やった内容ですが、 API KEY は SendGrid の管理画面で取得します。 KEY 毎に細かく権限を設定できるようです。 【Create & View】を押下すると Key が表示されます。 こんな感じ。 1回きりしか表示されません。【Done】を押下するとその後は「*****」とマスクされた状態でしか見れません。忘れたら削除するのみ。 composer で library を install GitHub repository の README にあるように、composer が使えるので composer.json に以下の記述をして、composer install するだけ。 { "require": {...

2018年2月26日月曜日

Steam に OpenID で接続する

Steam に OpenID で接続する

21:00 by Jumpei Tanaka

Steam Web API の続きです。 自分のアカウントで Sign in する機能を忘れていたので実装してみました。 ↓こういうやつ Steam には OpenID で接続します。 https://steamcommunity.com/dev 接続には、ここで紹介されていた LightOpenID を使います。 以前に作成した対戦履歴を表示するコードを、以下のように変更しました。 Steam ID をセッションから取得する 無ければ Sign in させる API Key を環境変数から取得する session_start(); if (!isset($_SESSION['steam_id'])) { // Require sign in. echo " <div style='text-align:center'> <p><a href='/auth.php'><img src='http://steamcommunity-a.akamaihd.net/public/images/signinthroughsteam/sits_02.png' width='109' height='66' border='0'></a></p> <p>Please sign in.</p> </div> "; } else { // https://gist.github.com/almirsarajcic/4664387 function convert_steamid_64bit_to_32bit($id) {...

2018年2月25日日曜日

Steam Web API で Dota2 の対戦履歴を表示する

Steam Web API で Dota2 の対戦履歴を表示する

21:00 by Jumpei Tanaka

Steam Web API の続きです。 自分の Dota2 の対戦履歴を取得するところまでやってみました。 使う API は以下の2つ。 GetHeroes GetMatchHistory あと、画像を取得するのに CDN を利用します。 http://cdn.dota2.com/apps/dota2/images/heroes/<name>_<suffix> CDN の使い方はこちらに書いてありますが、1例を。 http://cdn.dota2.com/apps/dota2/images/heroes/pangolier_lg.png これらを組み合わせて、対戦履歴を表示してみました。 コードはこんな感じに。 // https://gist.github.com/almirsarajcic/4664387 function convert_steamid_64bit_to_32bit($id) { $result = substr($id, 3) - 61197960265728; return (string) $result; } function convert_steamid_32bit_to_64bit($id) { $result = '765'.($id + 61197960265728); return (string) $result; } $key = "YOUR_API_KEY"; // Set Your API key here. $steamid =...

2018年2月20日火曜日

Steam Web API で求められる account_id とは

Steam Web API で求められる account_id とは

21:00 by Jumpei Tanaka

Steam Web API の一覧をみていると、必須 paramter に account_id というのが結構でてきます。 これは Steam ID でも API KEY でもないのですが、パッと探しても情報がでてきずらいのでメモしておきます。 account_id とは 「32-bit account ID」 とか 「STEAMID32」とか呼ばれていますが、要するに STEAM ID が 64-bit の ID STEAM ID の 32-bit 版 が account_id ということです。 生成方法 で、その STEAMID64 と STEAM32 を相互変換する式があって、その方法がこちら。 STEAMID64 - 76561197960265728 = STEAMID32 STEAMID32 + 76561197960265728 = STEAMID64 OR STEAMID32 = The right-most 32-bits of...

2018年2月19日月曜日

Steam に Web API があったので試してみた

Steam に Web API があったので試してみた

5:10 by Jumpei Tanaka

Dota 2 をやっていると、何か自分の対戦履歴が自動で反映されている Web サイトがあったりするわけです(超便利)。 https://www.dotabuff.com 気になったので調べてみたら、やはり Web API があるようで。 https://wiki.teamfortress.com/wiki/WebAPI#Dota_2 試してみました。 API Key を取得する ここで、API Key を取得します。 https://steamcommunity.com/dev/apikey 取得するとキーの所にキーが表示されます。 ドメイン名は、公開予定も無いのでとりあえず適当で大丈夫でした。 自分のプロフィールを取得してみる 手始めに、プロフィールを取得してみます。 https://wiki.teamfortress.com/wiki/WebAPI/GetPlayerSummaries $key = "YOUR_KEY"; $steamid = "76561197961028586"; $curl = curl_init("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key={$key}&steamids={$steamid}"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($curl); var_dump($response); curl_close($curl); こんな感じに出力されます。 { "response": { "players": [ { "steamid": "76561197961028586", "communityvisibilitystate": 3, "profilestate": 1, "personaname": "TANAKA", "lastlogoff": 1518968667, "profileurl":...