タグ

ブックマーク / qiita.com/shinkuFencer (4)

  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案
  • composerのrequireコマンドでパッケージを後から追加する - Qiita

    開発途中でcomposerのパッケージを追加で入れる場面があった際に composer.jsonに追記して composer update でもいいのですが そうすると関係無いライブラリの更新まで入ってしまうので そうしたくない場合もあると思います。 その場合はコマンドでやるとcomposer側がよしなにやってくれるので そのやり方のメモです 追加方法 パッケージを後追いで追加したい コマンドでやる場合は composer require {パッケージ名} で行います。 仮に入れたいパッケージ名が hoge/huga の場合 この場合は当該パッケージのみを入れ込み、またcomposer.jsonにも追記してくれます。 なお、hoge/hugeにあたるパッケージ名の一覧は Packagistから探す。 バージョン指定してパッケージを後追いで追加したい 古いバージョンのモジュールを使う必要があ

    composerのrequireコマンドでパッケージを後から追加する - Qiita
  • PHPで出来てしまうが控えたほうががいい書き方 - Qiita

    正常系は上手く動くし問題ない!と思ってもケースによっては危なかったり あんまりよくない書き方ってあると思います。 そういうような控えたほうががいいような書き方をケース別にまとめたものです。 まばらには書かれているんですが、一つの場所にはまとまってないのでメモがてら。 ==での比較 違う言語から戻ってくると間違って書いてしまいがちな判定。 問題点 == の場合は 型の相互変換をかけてから比較するので 意図しない比較が行われる可能性がある PHP: 型の相互変換 - Manual コード例と解説 以下のようなコードがあるとします。

    PHPで出来てしまうが控えたほうががいい書き方 - Qiita
    kathew
    kathew 2019/01/28
    empty()なりisset()なりは変数自体の存在チェックも行うために、判定内の変数名をタイポしてても致命的エラーが発生せずに処理が進んで、不具合の原因究明に多少手こずることがあるのは困り物
  • Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い - Qiita

    RubyOnRailsを触れる過程でMVCという概念を学び その後、他のフレームワークでMVCやMVP、MVVMというものを知ったのですが Railsで語られるMVCと他で語られるMVCのニュアンスが若干違うので そこを基点にMVCの違い、そしてMVP、MVVMとは何なのかをまとめてみました。 MVC(Model,View,Controller) 定義としてのMVC 上記でも挙げた通りMVCは使う場面やフレームワークによって ニュアンスが異なっています。 そのため根的な「MVC」の一般的な定義は一体どんなものなのかを見てみました。 Wikipediaからまとめると以下のとおり。 アプリケーションソフトウェアの内部データを ユーザーが直接参照・編集する情報から分離する。 そのためにアプリケーションソフトウェアを 「Model」「View」「Controller」の3つに分割する。 ・Mod

    Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い - Qiita
  • 1