読者です 読者をやめる 読者になる 読者になる

ECサイト運営開発記

PHPフレームワーク Laravelの使い方を中心とした通販サイトの開発日記

それはついてくる 映画「イットフォローズ」 ややネタバレあり

キネカ大森にて、怖いと評判のホラー映画「イット フォローズ(原題:It follows)」を見てきた。「それはついてくる」というタイトル通りの映画だったが、「それ」とは一体何なのか?

「イット フォローズ」 の簡単な説明

大学生に通う主人公の女性ジェイが好意を抱いているボーイフレンドとデートをするところから始まります。デートを重ね、いい雰囲気になり車の中で体を重ね、ジェイが幸せな気分に浸っていると、クロロホルムらしき物を嗅がされて、気絶させられます。目覚めたジェイはなぜか車いすに乗せられ手は拘束された状態。状況が理解できないジェイに対して、ボーイフレンドが事情を説明します。すると、意外な事実を告げられます。要約すると以下の通り。

  1. 君にあるものを移した
  2. 移された人間は「それ」に付きまとわれるようになる。
  3. 「それ」は移された人間と移した人間にしか見えない。
  4. 「それ」は人間のように見えるが人間ではない。
  5. 「それ」はその時々で姿を変える。
  6. 「それ」は走って追いかけてはこない。
  7. 「それは」ゆっくりと歩いてくる。だから、出来るだけ車で移動して時間を稼げ。
  8. 「それ」に捕まったら死ぬ。
  9. 誰かとセックスすれば、「それ」を移すことができる。
  10. もし、移した人間が「それ」に殺されてしまったら、1つ前の人間に戻ってくる。
  11. だから、逃げて。超逃げて。

こうして「それ」を移す事に成功したボーイフレンドはジェイの元から姿を消し、ジェイは状況を完全には把握できずに、自分についてくる「それ」に怯える日々を過ごします。やがて、自身の置かれた状況を完全に理解した彼女は生き残るために一体どんな行動を取るのか?

といった具合で、呪いのビデオ「リング」のセックス版といったところ。ただし、誰かに「それ」を移した後も全く安心できないというのがリングとは違う点。なので、移す相手に事前または事後にきちんと説明しておかなければならないのもポイント。じゃないと、すぐに死なれてしまって、また戻ってきてしまうという理不尽な設定。こうして設定だけ箇条書きで書くと非常にバカバカしく思うかもしれないが、この映画見てみると結構怖い。昨今のゾンビ映画のように全速力で追いかけてくることもなければ、怖い顔の殺人鬼が刃物で追い回してくることもない。ただ、一見普通の人間が無言でこっちに向かって歩いくるだけの映像が上記の設定と恐怖を煽るBGMが加わるだけでえらく不気味になってしまう不思議な映画。 

90分の映画でしたが、なかなか緊張感のある映画でDVD買ってもいいかなって思えるような内容でしたし、もう一度、改めて見なおしてみたいです。

結末は書きません。気になる人はいずれレンタルされるであろうDVD等で確認して下さい。もしくは、都内ではキネカ大森で4/15日金曜日まで上映していますので、時間がある方はぜひどうぞ。

Laravel5でAWSのSQSを使う 複数のキューを処理する方法

Laravel5でAWSのQueueサービスであるSQSに2つのキューを作成して、処理を実行させる。

[下準備]

  • AWSの管理画面にログイン
    • SQSに移動して、2つのキューを作成する
      • 注文メールの送信処理をするORDER_MAIL_QUEUEというキューを作成。
      • 商品在庫が少ないことを管理者に警告するALERT_MAIL_QUEUEを作成。
        • ユーザーにアクセス権を与えて終了


[Laravel]

  • .envファイルを編集
    • QUEUE_DRIVERの値をsqsに変更
  • config/queue.phpを編集
    • connectionsの項目に、sqsドライバーを使用したコネクションを2つ定義する
      • コネクション名は自由
      • keyとsecretはIAMのアクセスキーを指定。
      • queueにはキューのプロパティの項目に表示されているURLを指定。
      • regionは使用しているリュージョン。
<?php

return [

    // .envファイル内でQUEUE_DRIVERの値をsqsに変更していれば、無編集でOK。
    'default' => env('QUEUE_DRIVER', 'sync'),


    'connections' => [

        /* 省略 */

        'order_mail_queue' => [
            'driver' => 'sqs',
            'key'    => '******************',
            'secret' => '***********************',
            'queue'  => 'https://sqs.ap-northeast-1.amazonaws.com/hogehoge/ORDER_MAIL_QUEUE',
            'region' => 'ap-northeast-1',
        ],

        'alert_mail_queue' => [
            'driver' => 'sqs',
            'key'    => '******************',
            'secret' => '***********************',
            'queue'  => 'https://sqs.ap-northeast-1.amazonaws.com/hogehoge/ALERT_MAIL_QUEUE',
            'region' => 'ap-northeast-1',
        ],


    ],


]
  • コマンドラインから2つのキューに処理させるジョブを作成する
    • php artisan make:job OrderMailJob
    • php artisan make:job AlertMailJob
  • app/Jobs/ディレクトリに2つのジョブが作成されていることを確認して、各ジョブに処理内容を記述する
<?php

    /** OrderMailJob **/

    protected $order;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($orderNumber)
    {
        $this->order=Order::find($orderNumber);
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {

        // 注文メールを送信
        echo $this->order->order_name."さん あなたに注文メールを送りました!";

        // 以下送信処理省略

    }
<?php

    /** AlertMailJob **/

    protected $item;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($itemId)
    {
        $this->item=Item::find($itemId);
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {

        // 在庫警告メールを送信
        echo "店長" .$item->item_name."の在庫がやばいです!補充して下さい!";

        // 以下送信処理省略

    }
  • ジョブをキューの最後尾に追加する。
    • 今回はサンプルとして、route.phpに記述。
    • localhost/job/にアクセスして、それぞれのキューにジョブを追加する。
      • コンストラクタの引数に注文番号と商品IDを渡したインスタンス作成して、第3引数にコネクション名を指定すればいいだけ。
        • 第2引数は配列でパラメータを渡すことができるが、第一引数にオブジェクトを渡した場合は無視される仕様
<?php


Route::get("/job",function(){

  \Queue::push(new \App\Jobs\OrderMailJob("ORDER_0001"),null,"order_mail_queue");
  \Queue::push(new \App\Jobs\AlertMailJob("ITM_0001"),null,"alert_mail_queue");

});
    • キューに並んでいるジョブを処理してみる
      • php artisan queue:listen コネクション名 で指定したコネクションでキューに溜まったジョブを処理することができる。
        • php artisan queue:listen order_mail_queue
        • php artisan queue:listen alert_mail_queue
    • コンソールに文字列が表示されていれば成功。

ASUS JapanがVivoBookの新型を発表するも、EeeBookとの違いがわからない

ASUS日本法人がVivoBookの新型を3月に発売すると発表。Windows10搭載モデルのVivoBookはたぶん初めてなので「どんな物か?」GBと期待して、ニュースを読んでみると、落胆の内容。

現在、発売中のEeeBook X205TAとほとんど変わらないものだった。

そもそも、前モデルまでのVivoBookの特徴は以下の様な具合。

  • 11.6インチ / 約1.3kg
  • 1,366×768ドットのマルチタッチ液晶
  • HDD500GB
  • CPU Intel Core i3 / i5
  • メモリ4GB
  • バッテリー駆動 約5時間

といった内容で、価格は5万円台。価格にしてはなかなかいい商品だと思っている。そんなVivoBookの新型の発表なだけにどんな物を出してくるかとおもいきや、現在、量販店でも売られている格安ノートパソコンEeeBook X205TAとほぼ一緒の内容で出してきた。

 VivoBook E200HAEeeBook X205TA
OS Windows 10 Home Windows 10 Home
液晶 11.6型1,366×768ドット液晶ディスプレイ(非タッチパネル) 11.6型1,366×768ドット液晶ディスプレイ(非タッチパネル)
CPU Atom x5-Z8300 Atom Z3735F
RAM DDR3L-1600 2GB DDR3L-1333 2GB
ストレージ 32GB eMMC + microSD32GB付 32GB eMMC + microSD32GB付
バッテリー駆動時間 約12時間 約12時間
重量 980g 980g
ダークブルー/ホワイト/ゴールド ダークブルー/ホワイト/レッド

ASUSさん、もう少し違いVivoBook、EeeBook、ZenBookモデルの違いを明確にしないといけないと思います。Atom搭載の静音PCでも、RAM4GBとSSD(eMMC)64GB or 128GBのモデルがあっていいと思うんです。

 

pc.watch.impress.co.jp

 

『クリード チャンプを継ぐ男』 の感想(ややネタバレあり)

映画ロッキーシリーズの新章として銘打たれた作品「クリード チャンプを継ぐ男」が予想よりいい映画だったので、簡単に紹介。

 


「クリード チャンプを継ぐ男」特別映像

この映画を見る前に
  • ロッキーシリーズは見てなくてもたぶん大丈夫だけど、1~4までのあらすじは知っておいたほうがより楽しめる。5~6に関しては見なくて全く問題ない。
クリードに至るまで(ロッキー1~4まで)のあらすじ
  • ロッキー1:ボクサーとしても3流で周りからも若干軽蔑されてたロッキー・バルボアに急遽舞い込んだ世界王者アポロ・クリードとの試合。エイドリアンとの恋愛話も平行しつつ、世界戦へ。結果は判定負けに終わったが、予想以上のファイトに観客全員がロッキーの健闘を讃えた。
  • ロッキー2:ロッキーとの試合内容に納得がいっていないアポロはロッキーとの再戦を要求。燃え尽き症候群気味のロッキーだったが、アポロからの度重なる挑発とエイドリアンとの結婚&息子の誕生をきっかけに奮起し、再度アポロ・クリードと対戦。結果は、ロッキーのKO勝ちで見事に世界王者に。
  • ロッキー3:宿敵アポロに勝利したロッキーは国民的英雄に。世界王座も10度防衛し順風満帆の人生。引き際を考えていたロッキーに世界ランク1位のクラバー・ラングがロッキーに対戦を要求。ロッキーは対戦に応じようとするが、今までロッキーを支えてきたトレーナーのミッキーは要求を拒否。獰猛な野獣のようなクラバーと戦えばロッキーは絶対に勝てないからだ。しかし、クラバーとの試合を最後の試合にしたいという事で、試合が決定。試合開始直前、ミッキーが発作を起こし倒れてしまう支えを失ったロッキーはクラバー相手に手も足も出ず、ボコボコにKOされてしまう。その様子を解説席で見ていた宿敵のアポロ・クリードがロッキーに発破をかける。ミッキーに代わって、アポロはロッキーにボクシング技術を徹底的に基礎から叩き込み、ロッキーが苦手としていたフットワークと軽快なジャブを中心としたアウトボクシングやディフェンステクニックを習得させた。結果、クラバーと再戦し見事KOで勝利。親友関係になったロッキーとアポロは後日、誰もいなくなったジムのリング上で非公式の3度目の対戦を行う両者が距離を取りパンチを繰り出した瞬間に映画は終わる。
  • ロッキー4:旧ソ連がプロボクシングに加盟。アマチュアの世界で名を挙げていたイワン・ドラゴがアメリカでエキシビジョン・マッチを行いたいと表明。ドラゴを見たアポロは眠っていた闘争本能が蘇り、5年ぶりに現役復帰を決意。ロッキーもアポロの熱意に負け、セコンドとしてアポロを支えることに。しかし、結果は明白。長期間のブランクに加え、ドラゴの圧倒的なパワーになす術なく、サンドバック状態。アポロはタオルを投げようとするロッキーに対して、止めるなと懇願し、ロッキーのタオル投入が遅れ、ドラゴの強烈なパンチをもらったアポロはリングで絶命する。試合後、ロッキーはドラゴとの対戦を決意。圧倒的な肉体と科学的なトレーニングに加えてドーピングで更に強化されていく殺人マシンのドラゴに対して、雪山を走ったり汚いジム環境で地味できついトレーニングをして試合に臨むロッキーの対比。ソ連の政府関係者が見つめる完全アウェーの敵地に、かつて、アポロのトレーナーだったデュークと共に乗り込む。1Rからめった打ちにされるロッキーだが、驚異的な打たれ強さで徐々に挽回していく。そんなロッキーにソ連の観客までもがロッキーを応援するという事態に、ソ連政府関係者の顔から笑みがなくなっていく。最終ラウンドまでもつれた試合だったが、結果はもちろん、ロッキーのKO勝利。試合終了後のインタビューでアメリカとソ連の政治的な事情も踏まえたロッキーの言葉にソ連の観客も政府関係者もロッキーに拍手を送って映画が終わる。しかし、試合後にアポロの墓参りなどのシーンなどはなく終わっていたのが少し残念だった。

 この流れがあり、今作の「クリード チャンプを継ぐ男」につながっていく。

クリードの登場人物

今作のクリードは主に以下の5人を中心に構成される。

  • アドニス・ジョンソン(主人公):ロッキー4でアポロの目覚めた闘争本能はアポロに愛人を作らせるだけでなく、子供残してしまっていた。それが今作の主人公のアドニス・ジョンソン(ジョンソンは産みの母親の姓)。アポロがリング上で死ぬ前に残した子供でアポロとは一度も面識がない上に、母親もすぐに死んでしまったため、孤児として施設や里親を転々とする。アポロの妻のメアリーに引き取られてから、英才教育を受け、証券会社のエリートサラリーマンになる。しかし、サラリーマンをやりながら、週末はメキシコの小さなリングで団体非公認のボクシング試合に出場。特別なボクシングトレーニングは受けておらず、全て独学ながらもメキシコでは15戦無敗なのでアポロのDNAはちゃんと引き継がれている。
  • メアリー・アン・クリード:アポロの妻。アポロに実は愛人と隠し子がいるとしったメアリーはアドニスを探し出し、自分の息子として家に迎え入れる。今までろくな人生を歩んでこなかったアドニスに愛情を注ぎ、教育し大学まで行かせて、アドニスが証券会社のサラリーマンとして働けるレベルにまで育てる。本編での出番は序盤だけで後半は試合を見守るだけの存在ではあるが、この人がいなかったら、そもそも始まっていない話なので、一番の重要人物でもある。
  • ビアンカ(ヒロイン):今作のヒロイン。アドニスがアメリカで本格的に始めようと決意した拠点に選んだフィラデルフィアのアパートの下の階に住む歌手の女性。進行性の難聴を抱えており、将来的には耳が聞こえなくなるため、手話を勉強中。階下の騒音でアドニスと揉めるが、やがて恋仲になる。歌も美味いし、美人。
  • ロッキー・バルボア:アポロの盟友。当初、アポロのジムでトレーニングをするつもりだったアドニスだったが、アポロの死を理由に入門を断られてしまう。そこで思いついたのがロッキー。ロッキーはすでにボクシング界から完全に退いており、亡き妻の名前エイドリアンというレストランのオーナーとして働いていた。突然、現れたアポロの息子のアドニスに困惑しつつも、アドニスに何かを感じたロッキーはアドニスにボクシングを教えていくことに。
  • リッキー・コンラン(今作の敵役):素行が悪く度々問題を起こしては逮捕される問題児のイギリス人世界王者。作中では、PFP1位(階級差をなくした場合のランキング)として紹介されている。試合前の会見で対戦相手を罵倒し殴り、顎を骨折させて試合が流れてしまう。作中で一番の悪でアホでもあるが、超極悪人というわけでもない。役者は現役のプロボクサーでメジャー団体の地域タイトルなどの獲得経験もある。ライトヘビー級のランキング1位までいったこともある。コンランのキャラクターはメイウェザー(米国)とリッキー・ハットン(英国)を合わせたような感じか?

クリードのよかった所

  • ロッキーが出しゃばらない。主役はあくまでもアドニスに終始していたこと。
  • アドニスかっこいい。ヒロインのビアンカもかわいい。
  • アドニスは育ちのいいエリートではあるが、逆にそれが彼のモヤモヤとした気持ちになっている点がよく描かれていた。
  • スマホ世代の現代っ子のアドニスと黒電話世代ロッキーの対比がなんか面白かった。
    • ロッキーにしつこくボクシングを教えてくれと懇願するアドニスに練習メニューを書いた紙をアドニスに渡すとアドニスがスマホでその紙を撮影して、礼を言って立ち去ろうとする。
      ロッキー「紙は持って行かなくていいのか?」
      アドニス「携帯で撮影した。」
      ロッキー「無くしたり壊したりしたら?」
      アドニス「クラウドにあるから大丈夫。」
      ロッキー「雲?曇ってなんだ?」
  • Youtubeで一度も会ったことのないアポロとロッキーの試合を観て、シャドーボクシングをするシーン
  • ボクシングの描写は今までとは別格。対戦相手のボクサーたちも本物の現役選手がいるだけに本当によくできていた。アドニス役の俳優も相当巧い。
  • ショルダーブロック、アームブロック、パーリング、ダッキングスウェイバックなどパンチを受け流すディフェンスアクションが歴代シリーズよりも多く使われており、現実のボクシングにかなり近づいていた。
  • HBOの協力もあったためか、本場のボクシングの雰囲気と臨場感はとてもよくできていた。実況もとても良かった。
  • 音楽全般

クリードのよくなかった点

  • 世界王者に挑戦するためには、世界ランキング15位内(団体にもよって違いはある)に入らなければならないが、メキシコで15戦してるとはいえ、アメリカでは1戦しかしていないアドニスが世界タイトルに挑戦できる理由がやや説明不足。ダイジェストでもいいので、3戦くらい試合を重ねた描写でもあれば少しは説得力が上がった気がする。ご都合主義的な部分は仕方がないにしても、もう少し、こだわってもよかったのでは?
  • アドニスの線が少し細すぎる印象。本当に前日計量でライトヘビー級?ミドル級の設定でも良かったのでは?
  • 敵役のコンランが少し魅力不足。もっと、PFP1位というデータを見せるだけでなく、コンランの強さを表現したファイトシーンをもっと沢山見せておくべきだったと思う。アドニスがiPadで映像見るだけではやや物足りない。

という具合で、クリードの感想をまとめてみた。1月で上映終了する劇場が多いので、まだ、見ていない方は今月中に見ることをおすすめする。


『クリード チャンプを継ぐ男』予告

 

 

【銀座】おろちょんラーメン 激辛【ど・みそ】

f:id:nohohon_x:20151217151018j:plain

銀座で激辛味噌ラーメンが食べられるということで、有楽町に立ち寄るついでに、ど・みそ京橋本店まで足を運んでみた。味噌オロチョンラーメンの激辛を注文。激辛ということだったが、蒙古タンメン中本の北極や鬼金棒の辛シビ増しと比べると物足りなさを感じる。平均的な辛味噌よりもちょっと辛い程度。カウンターには、山椒や七味があるので、物足りない人は入れたほうがいいと思った。

 

関連ランキング:ラーメン | 銀座一丁目駅京橋駅宝町駅

【使用感】Surface Pro4 は上の下くらいのマシン

SurfacePro2のACケーブルが断線してしまい、やむなく、SurfacePro4を購入することに。使用して、1ヶ月経つので、購入してみて良かった点、不満な点などを記述していこうと思います。

f:id:nohohon_x:20151112130414j:plain

購入したSurface Pro4の主なスペック
  • 256GB / Intel Core i5 - 8GB RAMモデル
  • タブレット本体重量:786g
  • 12.3 インチ PixelSense™ ディスプレイ、解像度: 2736 x 1824 (267 PPI)
  • Windows 10 Proプリインストール
  • Surface ペン付属 / キーボードカバー別売

というような具合。タイプカバーも一緒に購入して、大体、22万円ほどで決して安い買い物ではない。

Surface Pro4の良かった点
  • 8GBモデルであれば、大体のことはできてしまう。
  • 12.3インチでありながら、2736 x 1824の高解像度なので、作業領域も広い。初期設定状態で文字の小ささも気にならないレベルで作業できる。
  • 起動もそこそこ早い。
  • SurfaceペンとOneNoteの相性はかなりいい。Evernoteいらないかも。
  • SurfacePro2に比べればかなり静か(ファイルの同期作業中にファンが回ることがある)
  • タイプカバーが打ちやすい上に、タッチパッドの領域も大きいので、Pro2よりも使いやすい。
  • キックスタンドがPro3と同じく無段階。
  • 顔認証はかなり楽。
Surface Pro4の気に入らないところ
  • Surfaceペンでスクロールができない。ペンを持ったままの操作だとついやってしまう。
  • タッチジェスチャはまだ、Macbookには劣る。
    • 3本指でアプリの切り替えなどはできるが、仮想デスクトップ間の移動はできないため、エディタ←→ブラウザ間の移動でMacほどの気持ちよさはない。
    • タッチパッド領域外からのスワイプで仮想デスクトップの移動ができればうれしい。
  • タイプカバーを外すとキーボードは使えない。接続にも対応してくれるとうれしい。デザイナーズキーボードのようなBluetooth&充電式のキーボードがいい。
  • Windows10がまだ不安定?
  • やっぱり、ちょっと高い。

以上こんな感じ。

Bootstrap4とLaravel5.1でネットショップをリニューアルした

カレンダーの通販サイト E-カレンダー.comをリニューアルしたので、記録とし、まとめておこうと思います。

以下、リニューアル前の環境。

[リニューアル前]

  • サーバーはGMOクラウドPublicのVPS
  • Apache1.3系、PHP5.3、MySQL5系のよくある環境。
  • WebアプリケーションフレームワークはZendFramework
  • キャッシュはファイルキャッシュ
  • HTML5とTwitterBootstrap2を使用してデザイン。

[リニューアル後]

  • GMOクラウドPuiblic VPSで変わらず
  • Apache2.3、PHP5.5へアップグレード
  • データベースはAWS上のRDSインスタンス
    • 商品情報の読み込みなどはREST叩いてJSONデータを取得する形式。
    • 注文や問い合わせの処理なども同様に、AWSのEC2インスタンスにRESTで命令を出す
    • ショッピングカートのセッションはAWS上のRedisサーバーに保存する。
  • WebアプリケーションフレームワークはLaravel5.1を使用
  • JSONデータのキャッシュはファイルキャッシュ
  • HTML5とTwitterBootstrap4 Alphaを使用

なぜ、Laravel5.1に?

ZendFrameworkを全く触らなくなって、最新のバージョンで開発する気が全く起きなかった。
乗り換えるフレームワークとしてCakePHPやCodeIgniterなども検討したが、Composerによるパッケージ管理システムが気に入ってしまい、
それからはずっとLaravelを勉強し、今回のリニューアルを機に本格的に採用。

以下、Laravelの良い点。

  • Composerでパッケージの管理がとても楽。依存関係もきっちり解決してくれる。
    • ライブラリの追加がとっても楽。
  • 従来通りのMVCパターンで開発できる(構築方法を強要されない)
  • 開発環境と本番環境で設定ファイルを複数作る必要がない。.envファイルに本番環境用との差分を記述すればいいだけ。
  • Eloquentはやっぱり便利。
  • Redisとの相性がいい。
  • Bladeテンプレートが簡単。
  • AWSとの相性がいい。
  • ドキュメントがわかりやすい。

と、まぁ、おおよそこんな具合。習得までの時間はさほどかからず、慣れてしまえばなんてことはなく、とても素晴らしいフレームワークだと思う。5.0系になって、ディレクトリ構造が見直され今まで存在していたmodelsディレクトリが削除されるなど、少し戸惑った部分はあったが、自分で作って、モデルファイルを入れておけば、従来通りのMVCパターンで構築できる。

Composerで便利だったパッケージ

  • illuminate/html
    • ViewファイルでのFormヘルパ
// テキストボックス
{!!Form::text("name")!!}

// エラーで入力画面に戻った場合
{!!Form::text("name",Input::old("name"))!!}

// セレクトボックス
{!!Form::select("pref",Config::get("site.pref")))!!}
  • jenssegers/agent
    • デバイス情報やブラウザの情報がわかるパッケージ
    • FacebookのSocial PluginはIEの古いバージョンには非対応なため、Baldeテンプレート内で、バージョンの判定を行う。
      • Bootstrap4未対応のIE8.0対策
//ブラウザのバージョン
Agent::version(Agent::browser());

//スマートフォンかタブレットかの判定も可能
Agent::isMobile();
Agent::isTablet();
  • webpay/webpay
    • クレジットカード決済WebPayの公式パッケージ
      • カードの情報からトークンを作成して、決済を行うサンプル
<?php

// トークンの作成
$webpay = new WebPay('secret_key');
$token=$webpay->token->create(array(
   "card"=>
    array("number"=>"*********",
     "exp_month"=>01,
     "exp_year"=>2016,
     "cvc"=>"123",
     "name"=>"HOGE HOGE")
));

// 決済
$webpay->charge->create(array(
   "amount"=>500,
   "currency"=>"jpy",
   "card"=> $token
   "description"=>"これで決済完了!"
));

  • predis/predis
    • Redisを利用する際に必須のパッケージ
      • パッケージをインストールして、config/session.phpのdriverをredisに変更するだけ
<?php

'driver' => 'redis',

?>
  • league/flysystem-aws-s3-v2
    • 商品画像をS3ストレージに保存する際に利用。
    • 以下ローカルファイルをS3にアップロードするサンプル
// ローカルのディスクから画像データを取得
$local=Storage::disk("local");
$data=$localDisk->get("images/item/sample.jpg");

// S3ディスクにアクセスしてアップロード
$s3=Storage::disk("s3");
$s3->put("images/item/sample.jpg",$data);
Laravelの悪い点
  • PHP5.5.9以上じゃないと動かない
  • 名前空間がいちいち面倒くさい
    • コントローラーの中でモデルクラスで商品検索をする場合
      • use App\Models\Item;を宣言して、アクションメソッドの中でItem::search("name")と記述する または↓;
      • App\Models\Item::search("name")と名前空間からメソッドまで全書きをする。
      • Laravelで用意してくれているコアクラスもいちいち、useしなくちゃいけない。
        • しかし、Laravelの設計思想的にこれは逃れられそうにないので、習慣として割り切るしかない。
  • オートロードに時間がかかる?
    • その他のフレームワークにも言えることだが、フレームワークが巨大になるとこういう話がどうしても出てくる。
      • 将来的に別のVPSサービスに移行予定なので、SSDプランの物を選んで解決できればいいかな?