開発効率がグンとアップする!PhpStormの便利ショートカット20選
PHPerKaigiの山本さんの発表を聞いて、開発するときはなるべくショートカットを使うように意識しています!
そこで今回はPhpStormでよく使っている便利ショートカットをご紹介します!
ナビゲーション
やりたいこと | ショートカット |
---|---|
クラス名で検索 | Cmd + O |
ファイル名で検索 | Shift + Cmd + O |
ファイル内検索 | Shift + Cmd + F |
最近開いたファイル | Cmd + E |
最近編集した箇所 | Shift + Cmd + E |
指定行にジャンプ | Cmd + L |
定義箇所にジャンプ | Cmd + B |
定義利用箇所を検索 | Opt + Cmd + F7 |
ファンクションが使われてるか確認して削除 | Cmd + Fn + Delete |
ファイル内の定義一覧 | Cmd + F12 |
コード
やりたいこと | ショートカット |
---|---|
セミコロンをつける | Shift + Cmd + Enter |
リネーム | Shift + F6 |
コードのフォーマット | Opt + Cmd + L |
ライブテンプレートの挿入 | Cmd + J |
行の複製 | Cmd + D |
行の削除 | Cmd + Delete |
Git
やりたいこと | ショートカット |
---|---|
Pull | Cmd + T |
Commit | Cmd + K |
Push | Shift +Cmd + K |
Revert | Opt + Cmd + Z |
その他にも山本さんの発表ではPhpStormの便利な使い方を紹介されていましたのでご覧ください↓
ショートカットを使いこなすのに最初は時間がかかりますが、「習うより慣れろ」ってことで日々使えばすぐに慣れますよ〜
マウスだと深い構造のリンクをクリックするのに手間だったのですが、ショートカットを覚えたらかなり楽になりました!
他にも便利なショートカット知ってるぞ!という方は是非教えてください!
AWS認定ポータルのアカウントを移行する
所属が変わるとAWSの認定証の移行が必要になりますよね。
認定証を移行するには、AWSの認定ポータルのアカウントを変更しなければいけません。
認定ポータルへのログイン方法はAPNパートナーとそれ以外では異なります。
本記事はAPNアカウントから個人アカウントへの移行方法をまとめています。
個人アカウントの作成
下記のURLから新規でAmazon.co.jpの個人アカウントを作成します。
https://www.aws.training/Account/LogOnOptions
「Sign In」をクリックします。
(「サインイン」もありますが、「Sign In」との違いはちょっとわからないです・・)
「Amazonアカウントを作成」をクリックします。
必要な項目を入力し、「Amazonアカウントを作成」をクリックします。
入力したメールアドレスに、アカウントを認証するためのコードが送られてきますので、入力してください。
これで、Amazon.co.jpの個人アカウントが作成できました!
AWSトレーニングおよび認定チームへ問い合わせ
下記URLからAWSのトレーニング・認定チームへ問い合わせを行います。
https://aws.amazon.com/jp/contact-us/aws-training/
必要な項目を入力し、「送信」をクリックします。
記載する内容は英語で書く必要がありますので注意してください!
問い合わせの詳細には、「APNアカウントから個人アカウントに移行したい。それぞれのログインアドレスは○○です。」と記載すれば大丈夫です!以下にサンプルを載せたので参考にしてください。
【問い合わせ内容のサンプル】
Google翻訳で作ったので、変な英語かもしれないですが、一応これで対応してくれました
I want to migrate my AWS certificate.
Since I used to be an APN partner, I used to log in from the APN portal. The APN account is <APNのアカウント番号>. The login address is <旧アカウントのログインアドレス>.
Since I am not an APN partner, I have created a new personal account. The personal account login address is <新アカウントのログインアドレス>.
Please move from APN account to personal account.
問い合わせ後は、1〜2日ほどで連絡がきます。
問い合わせの窓口が上記以外にもあって、アカウント移行するのにちょっと時間がかかったので備忘録として残しておきました。
今回はAPNアカウントから個人アカウントへの移行方法についてまとめましたが、個人アカウントからAPNアカウントへの移行をする場合もあるかと思います。その場合は、まずAWSのトレーニング・認定チーム(https://aws.amazon.com/jp/contact-us/aws-training/)へ問い合わせを行ってみてください。
【Laravel】データベースにテーブルを作成する
前回まででLaravelの初期画面表示とデータベースへの接続確認ができたので、今回はデータベースにテーブルを作成します!
まだLaradockでのセットアップが終わっていない方は前回のこちらの記事を参考にしてください。 coxcox.hatenablog.com
マイグレーションファイルを作成する
マイグレーションファイルの作成はworkspaceコンテナ上で行います。
$ cd laradock $ docker-compose exec --user=laradock workspace bash
データベースを管理するためのマイグレーションファイルを作成します。
/var/www$ php artisan make:migration <マイグレーションファイル名> --create=<テーブル名>
実際のコマンドはこんな感じです。
/var/www$ php artisan make:migration create_tasks_table --create=tasks
コマンド実行後、Laravelプロジェクト内の「database/migaration」配下にマイグレーションファイルが作成されます。
ファイルを開くとup()とdown() 2つのメソッドがあります。
- up() ・・新しいテーブル、カラム、インデックスをデータベースに追加します
- down() ・・upメソッドが行った操作を元に戻します
今回はtitle
とdeadline
カラムを追加してみます。
database/migaration/xxx_create_tasks_table.php
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateTasksTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('tasks', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('title'); // 追加 $table->date('deadline'); // 追加 $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('tasks'); } }
データベースへの接続設定を変更する
別ターミナルを開いて、Laravelプロジェクト内の.envファイルを書き換えます。
$ cd <Laravelプロジェクト> $ vim .env DB_CONNECTION=mysql DB_HOST=mysql // Laradockのmysqlを指定する DB_PORT=3306 DB_DATABASE=laravel // Laradockの.envファイルで設定したデータベースを指定する DB_USERNAME=root // Laradockの.envファイルで設定したユーザー名を指定する DB_PASSWORD=root // Laradockの.envファイルで設定したパスワードを指定する
マイグレーションファイルを実行する
最後にworkspaceコンテナ上でマイグレーションファイルを実行してテーブルを作成します。
/var/www$ php artisan migrate Migration table created successfully.
データベースに接続してtasksテーブルが作成されているのが確認できました!
ここまでで環境の準備ができたので、次はいよいよLaravelの勉強で簡単なタスク管理を行うWebアプリを作ってみようと思います!
【Google Apps Script】claspを使ってローカル環境で開発する
Google Apps Script(GAS)のエディタで直接スクリプトを書くことももちろんできますが、インデントや補完がうまくできないので辛いです。。
そこで、ローカル環境で開発を行う方法について調べてみました!
Node.jsのインストール
Node.js が必要になります。インストールはこちらから↓
claspのインストール
Google公式のCLIツールである「clasp」をインストールします。
$ sudo npm install @google/clasp -g
一般ユーザーで実行するとエラーになるので注意!
npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator (though this is not recommended).
Googleアカウントへのアクセス許可
$ clasp login
コマンドを実行すると、ブラウザで認証確認画面が表示されるので「許可」してください。
ログインに成功すると、.clasprc.jsonというファイルが生成されます。
Authorization successful. Default credentials saved to: ~/.clasprc.json (/xxxx/.clasprc.json).
ちなみにログアウトを行うと上記ファイルが削除されます。
$ clasp logout
Google Apps Script APIを許可する
G Suite Developer Hub(https://script.google.com/home/usersettings)の「設定」メニューからGoogle Apps Script APIを「オン」にします。
オンにしないとpushした時にエラーになるので注意!
User has not enabled the Apps Script API. Enable it by visiting https://script.google.com/home/usersettings then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
GASの作成
今回はGASを作成するときの3つのパターンについて記載しています。
スプレッドシートから新規で作成する場合
プロジェクト名を指定して、スプレッドシートとGASファイルを作成します。
ここで指定する<プロジェクト名>はスプレッドシート名とGASのプロジェクト名が同一になります。
$ cd <任意の作業ディレクトリ> $ clasp create <プロジェクト名> --type sheets Created new Google Sheet: https://drive.google.com/open?id=xxxxxx → スプレッドシートのURL Created new Google Sheets Add-on script: https://script.google.com/d/xxxxx/edit → GASのURL Cloned 1 file. └─ appsscript.json
既にあるGASファイルを使用する場合
スクリプトエディタメニューの「ファイル」>「プロジェクトのプロパティ」>「情報」タブ内に記載されているスクリプトIDをコピーします。
スクリプトIDを指定してスクリプトファイルをクローンしてきます。
$ cd <任意の作業ディレクトリ> $ clasp clone <スクリプトID> Cloned 2 files. └─ appsscript.json └─ test.js
スプレッドシートは用意していて、GASファイルをこれから作成する場合
スプレッドシート開いて、URL内のIDをコピーします。
https://docs.google.com/spreadsheets/d/<スプレッドシートのID>/edit#gid=0
スプレッドシートを指定して、GASファイルを作成します。
clasp create
を実行したら Clone which script?
と聞かれるので standalone
を選択して Enterキー を押下します。
ここで sheets
を選択してしまうと、新規でスプレッドシートが作成されてしまうので注意!
$ cd <任意の作業ディレクトリ> $ clasp create --parentId <スプレッドシートのID> --title <プロジェクト名> ? Clone which script? (Use arrow keys) ❯ standalone docs sheets slides forms webapp api
--title
は指定しなくても実行はできますが、指定しなかった場合は、作業ディレクトリがプロジェクト名になります。
上記のclasp create
や clasp clone
を実行すると、.clasp.jsonというファイルが生成されるのですが、
もし、下記のエラーが発生した場合は.clasp.jsonがホームディレクトリ内で既に作成されてしまっていますので削除してください。(私自身これにハマりました・・)
Nested clasp projects are not supported.
GASファイルをpushする
最後にローカルで開発したGASファイルをpushします。
$ cd <任意の作業ディレクトリ> $ clasp push └─ appsscript.json └─ test.js Pushed 2 files.
claspは git コマンドのような感じで使えるのでとっても扱いやすいです!
今回はスプレッドシートでのGASの使い方をご紹介しましたが、このほかにもGoogleドキュメントやプレゼンテーションでも利用できるようなので、幅広い使い方ができそうです!
Laradock(Docker)でLaravelの開発環境を構築する
先日ローカル環境にLaravelを構築したのですが・・
coxcox.hatenablog.com
今後MySQLも必要になるし、必要なものを全部ローカルで準備するのも大変だなぁと思いDocker上にLaravelの開発環境を作ってみました!
今回はLaradockというLaravelの開発に必要な環境をDocker上で動かせるものを使いました。
Laradockのクローン
プロジェクト用のディレクトリを作成し、その配下にLaradockをクローンします。
$ mkdir <プロジェクトフォルダ> $ cd <プロジェクトフォルダ> $ git clone https://github.com/Laradock/laradock.git
MySQLの環境設定変更
laradockディレクトリにある env-example をコピーして .env ファイルを作成します。
$ cd laradock $ cp env-example .env
.env ファイルを開いて MYSQL の設定を任意の値に変更します。
$ vim .env 215行目あたり ### MYSQL ################################################# MYSQL_VERSION=5.7 MYSQL_DATABASE=laravel MYSQL_USER=root MYSQL_PASSWORD=root MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=root
コンテナの起動
nginx / mysql / workspace のコンテナを起動します。
(初回起動は時間がかかるので気長にお待ちください・・)
$ docker-compose up -d nginx mysql workspace Creating laradock_docker-in-docker_1 ... done Creating laradock_mysql_1 ... done Creating laradock_workspace_1 ... done Creating laradock_php-fpm_1 ... done Creating laradock_nginx_1 ... done
ここでブラウザから「http://localhost」にアクセスしてみます。
この時点では404が出ますが問題ありません!次の手順に進みましょう〜
Laravelプロジェクトの作成
Laravelプロジェクトはworkspaceコンテナに作成します。
workspaceコンテナにログインします。
$ docker-compose exec --user=laradock workspace bash /var/www$
workspaceコンテナ上でLaravelプロジェクトを作成します。
/var/www$ composer create-project --prefer-dist laravel/laravel <Laravelプロジェクト名>
workspaceコンテナからログアウトします。
/var/www$ exit
Laravelプロジェクトを作成すると以下のようなディレクトリ構成になったと思います。
<プロジェクトフォルダ> ├ laradock └ <Laravelプロジェクト>
アプリケーションパスの変更
laradockからアプリケーションフォルダ(workspaceコンテナで作成したLaravelプロジェクト)が参照できるように.env ファイルを修正します。
$ vim .env 5行目あたり ### Paths ################################################# APP_CODE_PATH_HOST=../<プロジェクト名>
コンテナの再起動
.envファイルを修正した際にはコンテナの再起動が必要になります。
$ docker-compose up -d nginx mysql workspace
再度ブラウザから「http://localhost」にアクセスしてみます。
Laravelの初期画面が表示されればOKです!
DBへの接続確認
mysqlコンテナも起動したのでMySQL Workbenchから接続確認をしてみます。
.envファイルのMySQLで設定した内容を入力した後「Test Connection」をクリックします。
以下のように Successfully made the MySQL connection となればOKです!
今回Laradockを使ってDocker上にLaravelを構築してみましたが、とっても簡単に開発環境を作ることができました!
Laravelの開発環境を用意したいという方は是非このLaradock使ってみてはどうですか?
【イベントレポート】 JAWS-UG 横浜支部 #15 に参加してきました!
3/20(水)に行われた JAWS-UG 横浜支部 #15 のイベントレポートです!
今回はMedia-JAWSとのコラボ企画!
その名も・・「Media-JAWS #0 〜メディア✕AWSスペシャル〜」 ということで、会場も放送局のようなセッティングに!
Media-JAWSというだけあって本格的なライブ配信も行われましたよ〜
そもそもMedia-JAWSって??
Media-JAWSは、メディアの世界でAWSをどのようにして活用しているか情報を共有していくためのコミュニティとして設立予定です。 今回は設立前のプレイベントとして、メディア✕AWSの内容で勉強会が開催されました!
AWSを利用したライブ配信構成まとめ:アイレット 土田さん
社会人4年目+インフラエンジニア=土田さんからは事例を交えながらライブ配信の構成についてお話してもらいました。
- ライブ配信を行う際の構成としては3つ
- ①AWSベーシック構成(EC2, CloudFront, S3など)→ そこまで要件に厳しくないお客さん向け
- ②AWS+有償製品(Wowzaなど)→ いろんなデバイスで配信したいなどの要件があるお客さん向け
- ③AWS Media Services フルマネージドサービス → 未実装の機能はある(自動フェイルオーバーの機能がない)が案件の引き合いは増えている
さっぽろ雪まつり配信におけるMediaLive失敗談:北海道テレビ 三浦さん
なんと今日のために北海道から駆けつけてくれた三浦さん。 さっぽろ雪まつりを5G 4Kでライブ配信したときの失敗談についてお話してくださいました。
- MediaLiveでは4K配信できず。。jstreamを使って実現した。
- jstreamを使って配信をすることに決まったあと、MediaLiveのチャンネルを削除するのを忘れてとんでもなき請求が来てしまった・・
- ライブ配信を行うのに雪をショベルカーで掘って、パイプの中に配線を通している映像には驚きました!
Media ServicesとAIを利用した字幕付きライブ配信:テレビ東京 段野さん
今回のMedia/JAWSの発起人である段野さんから字幕付き配信のお話をしてもらいました。
- リアルタイム字幕には「Closed Caption」と「リアルタイム変換」の2種類がある
- Closed Caption:特定のインターバルごとにまとめて字幕を表示する
- リアルタイム変換:字幕生成したタイミングで随時表示する
- 目指すカタチは、Closed Captionで表示し、クラウドで処理を完結させ、字幕変換はAIで!
- 字幕付き配信のデモでは、少し誤訳があるものの、ほぼしゃべってる内容に差がありませんでした!日産のゴーン社長が「5分」と訳されるなど、誤訳も面白く、会場は笑いに包まれていました。
www.slideshare.net
あなたの知らない怖い話 ~メディアコンテンツに迫る魔の手~:IMAGICA Lab. 蜂須賀さん
身の毛もよだつお話をしてくださったのは蜂須賀さん。 メディアコンテンツのセキュリティに関するお話をしてくださいました。
- S3に置くファイル名はファイルの中身が特定されないものにする
- 配信を行う際は、CloudFrontで署名付きURLで
- 画面録画に対する対策としては透かしを入れるなどして漏えいしたユーザーを特定できるようにする
- メディア限定のセキュリティというわけではなく、IT・AWSに関わっている人ならやってしまいがちなことが多く耳の痛い話ばかりでした、、
www.slideshare.net
DXGWは海外映像配信で使えるのか?MediaConnectの事例を交えながら:NTT東日本 里見さん
里見さんからは通信キャリアの方ならではの海外にコンテンツ配信するときのお話をしてくださいました。
- ダイレクトコネクトGW(直接海外へ配信する)よりも、VPC Peeringで海外に配信したほうが安定している
- MediaConnectの検証がまだ未完了とのことで次回のMedia-JAWSでの発表に期待!
- ダイレクトコネクトを使った検証は通信キャリアの方ならではのお話で大変貴重でした
もっと詳しく聞きたい!という方はこちら
Togetterはこちら
参加していただいた方も半分くらいはメディア業界で働いているというJAWS-UGでも珍しい顔ぶれとなりました。 次回のMedia-JAWSは4月下旬を予定しているそうなので、興味のあるかたは是非ご参加ください!
【Google Apps Script】 資格試験の練習問題をSlackに投稿するBotを作ってみた!
弊社の技術部でAWSのソリューションアーキテクト-アソシエイト全員合格を目指そう!ということで、毎日試験の練習問題をSlackに投稿するBotを作ってみました! 完成イメージはこんな感じです↓
今回、試験問題はGoogleスプレッドシートに記載して、Slackに試験問題を投稿するスクリプトはGoogle Apps Scriptで書いてみました。
Google Apps Script(GAS)とは?
Googleが提供しているスクリプト作成・実行ができるサービスです。 言語のベースはJavaScriptです。
試験問題の作成
試験問題は下記のような形でスプレッドシートに記載していきます。
A列 | B列 | C列〜 |
---|---|---|
日付 | 問題 | 選択肢 |
GAS上でスクリプト作成
「ツール」>「スクリプトエディタ」を開きます。
エディタに下記のコードを貼り付けて保存します。 任意の値の箇所は環境に合わせて変更してください!
いざ、実行!
メニューから関数を選択して「実行」をクリックします。
実行するとSlackに投稿されました! 問題文にリアクションをつけてしまうと、自分で解答を考える前にみんながどれを選んでいるのかわかってしまう・・ということで、問題文を投稿したスレッドで解答を選べるようにしました!
日次でSlackへ自動投稿
最後にSlackへ自動投稿するためのトリガーを作成していきます。 トリガー作成もブラウザから設定できるので難しくありません!
メニューから「現在のプロジェクトのトリガー」をクリックします。
別画面が開くので、画面右下の「トリガーを追加」をクリックします。
トリガーの設定をしていきます。 今回は毎日Slackへ投稿したいので下記のような設定をしました。
「保存」をクリックすると、一覧画面に表示されます。
これで設定は完了しました! とっても簡単ですね!!
ハマったところ
スプレッドシートから値を取得してSlackに投稿すると文字化けする
スプレッドシートから取得した値を表示しようとするとこんな表示になることがあります。
そんな時は、下記のようにやるとちゃんと文字列として表示されるようになります。
<変数名>.toString().replace(/,/g , "\n");
また今回は、上記のようにやらなくても文字列と変数を結合することで文字化けせずに表示できました。
57行目 var message = '*問題*' + '\n\n' + questions + '\n\n' + '*選択肢*' + '\n\n';
Slackの数字絵文字は英語表記でないと文字列になる
通常、Slackの絵文字で :1: と入力するとと出ますが、スクリプト内で「:1:」を生成しても、絵文字にしてくれません・・。
仕方がないので今回は数字の英語配列を作成することで対応しました。
2行目 // 選択肢のリアクション 3行目 var reaction = ['one', 'two', 'three', 'four', 'five', 'six'];
何かいい方法があれば是非コメントください!!
GASを今回初めて使ってみましたが、簡単に作成することができました。 これを応用してWeb APIで取得した値をスプレッドシートに書き込んで、集計するなんてことも簡単にできそうですね!