[Laravel] 電話を連携したアプリ開発サンプル (Twilio)

面白そうなサンプルなので覚書リンク。

Hello, Laravel? Communicating with PHP through Phone Calls! — SitePoint
https://www.sitepoint.com/hello-laravel-communicating-php-phone-calls/
June 19, 2017

Hello, Laravel? Communicating with PHP through SMS! — SitePoint
https://www.sitepoint.com/hello-laravel-communicating-php-sms/
June 23, 2017

  • 電話を連携したアプリ開発サンプル
  • 電話してZipcodeを入力すると天気予報が得られる
  • さらにSMS(テキストメッセージ)を使って操作できるよう拡張
  • 電話のハンドリングはTwilioというSaaSを使う
  • バックエンドはLaravelで書く

参考サイト

Twilio – Communication APIs for SMS, Voice, Video and Authentication
https://www.twilio.com/

Twilio PHP SDK
https://www.twilio.com/docs/libraries/php

Guzzle, PHP HTTP client
http://docs.guzzlephp.org/en/stable/

National Weather Service (NWS) API
https://forecast-v3.weather.gov/documentation

GeoJSON
http://geojson.org/

GeoNames
http://www.geonames.org/

ngrok – secure introspectable tunnels to localhost
https://ngrok.com/

[Git] non-fast-forward updates were rejected 対処法

ローカルのリポジトリをプッシュしようとしたらエラー。

プッシュする前にリモートリの変更をマージしろと言われたので以下で対処。

[Laravel] Laravel Duskを使ってブラウザテストを書く

セットアップ

実行

tests/Browserディレクトリにテストを配置

テストの書き方は公式&参考サイトを参照。

Browser Tests (Laravel Dusk) – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/5.5/dusk

Using Laravel Dusk to Test ToDo App
https://www.cloudways.com/blog/laravel-dusk-testing-todo-app/

参考サイト

▼Laravel 5.4以降の参考記事

Laravel 5.4 で手軽にテストを書こう! | 株式会社インフィニットループ技術ブログ
https://www.infiniteloop.co.jp/blog/2017/05/laravel-5-testing/
2017年05月12日

SPAのブラウザーテストが捗る!Laravel Duskの使い方 – WPJ
https://www.webprofessional.jp/laravel-dusk-intuitive-and-easy-browser-testing-for-all/
2017/03/27

▼Laravel 5.4より前の参考記事

LaravelでControllerのテストをする | takayukii.blog
http://takayukii.me/post/20160827872
8月 27, 2016

Laravelでテストコードを書くためのチュートリアル – Qiita
https://qiita.com/niisan-tokyo/items/264d4e8584ed58536bf4
2016-08-06

▼テストを書くことについて参考記事

[PHPerでも]テストコードの意義を確認する[書きましょう] – Qiita
https://qiita.com/niisan-tokyo/items/ff793e271fd35b1a20bb
2016-07-30

[Vagrant] already locked for a session エラー対処法

このところVagrantが不調で、以下のエラーが頻繁に出る。

とりあえずロックを解除するには以下のコマンドを実行すれば良い。

参考サイト

VM in virtualbox is already locked for a session (or being unlocked) – Stack Overflow
https://stackoverflow.com/questions/35169724/vm-in-virtualbox-is-already-locked-for-a-session-or-being-unlocked

[仕事術] 人生をうまくやるには「考えない」ことが大切? そのために必要な「ラクする」技術とは

煽ったタイトルだけど、要は無駄は極力排除するということ。

人生をうまくやるには「考えない」ことが大切? そのために必要な「ラクする」技術とは | ライフハッカー[日本版]
https://www.lifehacker.jp/2017/08/170829_book_to_read.html
2017.08.29

会議は始まる前のシミュレーションが9割
現実的に、ラクすることが難しいのが会議。複数の人が集まるだけに、なかなかコントロールしづらいわけです。とはいえ、ここでも時間の使い方を工夫することでこれまで以上に効率よくラクに振る舞うことができるといいます。重要なのは、あらかじめ「こうなるな」という理想形をイメージしておくこと。そうすれば、ムダな時間を費やさずに済むというのです。

「残業しない人」ブランディングで時間を作り出す
「○○さんは残業をしない人」だとまわりに思わせておくと、なにかとラクだといいます。そうすれば夕方以降、なにか急ぎで仕事が発生したとしても、頼まれる機会が少なくなるからだというのです。周囲の評価が気になるのであれば、朝早く出社して企画をひとつでも多く考えたり、数字を上げるための策を練るなど、「遅くまで残業すること以外の方法」で活躍すればよいという発想。

[仕事術] ソフトウェアを書くことについて私が学んだ7つの教訓

そう、シンプルに考えよう。

ソフトウェアを書くことについて私が学んだ7つの教訓 | TechCrunch Japan
http://jp.techcrunch.com/2017/08/29/20170827one-morning-when-gregor-samsa-woke-from-troubled-reams-he-found-himself-transformed-in-his-bed-into-a-manager/
2017年8月29日

1. ルールはない。公案があるだけだ
2. 信頼することで信頼を獲得する
3. シンプルであることは、エレガントであることよりもはるかに重要だ
4. 勢いに着目しよう
5. あなたのような人たちとではなく、あなたを補完する人たちと働こう
6. どんな決断であっても決断しないよりは良い
7. 謙虚であれ、しかし堂々とせよ

[チーム術] ビジネススクールでは教えてくれない、管理職への10のアドバイス

迷った時に決断できるよう、自分なりの指標を決めておくといい。

ビジネススクールでは教えてくれない、管理職への10のアドバイス | BUSINESS INSIDER JAPAN
https://www.businessinsider.jp/post-100783
Aug. 27, 2017

1. 部下とは躊躇せずに仲良くしてよい
2. 人間関係の対立を仲裁してはいけない
3. ハイパフォーマーの望ましくない勤務態度には目をつむろう
4. 叱咤して緊迫感を与えよう
5. 皆がやりたがらない仕事には有志を募ろう
6. より多くの時間を投資すべき相手はトップパフォーマー
7. 解雇は、最も思いやりのある行為だと考えよう
8. 伝聞や噂、風評を追跡してはいけない
9. レガシー社員を放置してはいけない
10. 自分の代わりができる人材を採用しよう

[Laravel] Debugbarを使う

インストール

Laravel 5.5だとPackage Auto-Discovery機能によりサービスプロバイダの手動追加は不要。APP_DEBUGがtrueであれば有効になる。5.5未満だと手動設定が必要。

参考サイト

GitHub – barryvdh/laravel-debugbar: Laravel Debugbar (Integrates PHP Debug Bar)
https://github.com/barryvdh/laravel-debugbar

[Laravel] Eloquentを使ってPHPのコードを書くには

ORMに慣れていると素のPHPコードでDBを扱うのは面倒くさい。そういう案件に関わりそうだったので、Eloquentを使ってPHPコードを書いている事例を調べてみた。

結局はやらずに済んだのだけど、今後のために覚書リンク。

LaravelのEloquentを使う – Qiita
https://qiita.com/mapyo/items/da9caa3610f85401bb5a
2015-04-19 (PHP 5.3対応販)

LaravelのORM、Eloquentを単品で使用してみる – Qiita
https://qiita.com/IganinTea/items/16bad23bd4e4cbed337a
2016-12-09

素のPHPでEloquentを使う(illuminate/databaseパッケージの単体利用) – akamist blog
https://akamist.com/blog/archives/1041
2017年11月15日

[Laravel] 画像アップロード

以下は超シンプルな実装。storage/app以下のimagesディレクトリ(存在しなければ作成される)に、生成されたユニークIDをファイル名として保存される。

ストレージディレクトリの公開

以下のコマンドでpublic/storageからstorage/app/publicへシンボリックリンクが生成される。

そうしておいて、storage/app/public以下へファイルをアップロードすると、public/storage経由でフロントエンドからアクセスできるようになる。

バリデーションメモ

画像、3MB未満、最小120×120、最大400×400の例

参考サイト

File Storage – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/5.5/filesystem#file-uploads

ファイルのアップロード – ララジャパン
http://www.larajapan.com/tag/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89/